|
前言
就像學(xué)軟件要了解些組成、編譯等知識(shí)一樣,玩硬件如果只用人家封裝好的模塊,而不了解它們的內(nèi)部機(jī)制,感覺(jué)也有點(diǎn)不自在~其實(shí),在很長(zhǎng)時(shí)間以前就覺(jué)得該在模擬電路方面深入點(diǎn)了,可是總是找不到切入點(diǎn),拿無(wú)線電的知識(shí)發(fā)現(xiàn)根本無(wú)法涉足,最近正好由于做一個(gè)軟硬件結(jié)合的“玩具”而引發(fā)了必須自己設(shè)計(jì)傳感器的需求,所以就趁勢(shì)在模擬電路的海洋里遨游下吧,嘿嘿~下面是今天(不,是昨天)做的關(guān)于這方面的調(diào)查和研究,哈哈,課太多又要把最新版的Ubuntu想方法裝進(jìn)我的老掉牙的只有40G大小的移動(dòng)硬盤(pán)里,結(jié)果就忙到了現(xiàn)在~
第一步、淘寶上看看有沒(méi)有現(xiàn)成的超聲波模塊散件:
ps:比較便宜的一個(gè),采用芯片,右邊像排阻的東西!網(wǎng)上有人說(shuō)這種芯片來(lái)做超聲波接收芯片有點(diǎn)誤人子弟~,不過(guò)想做成收發(fā)單獨(dú)的東西,用他們的產(chǎn)品只能模仿學(xué)習(xí)一下電路!
PS:這幾款和上面一款類(lèi)似~還有比較坑的幾款就是直接采用超聲波測(cè)距模塊~
PS:怎么像樓主在幫人家做廣告呢~哈哈~
第二步、查閱相關(guān)資料,看看怎么DIY:
下面是從一個(gè)同學(xué)的畢業(yè)設(shè)計(jì)的論文中看到的,他沒(méi)有采用上述淘寶賣(mài)家普遍采用的接收模塊,而是用普通的模擬電路知識(shí)設(shè)計(jì)的。由于protues這個(gè)軟件無(wú)法 模擬出超聲波的真正的收發(fā),所以下面的各個(gè)元件的參數(shù)我無(wú)法確是否正確,下圖就先僅作框架參考~(一會(huì)要仔細(xì)分析那個(gè)同學(xué)畢業(yè)設(shè)計(jì)給的方法到底行不 行!),這里先大致說(shuō)一下,左下部分為超聲波發(fā)送模塊,通過(guò)一根線和MCU的P3.6腳相連,想通過(guò)單片機(jī)在該腳產(chǎn)生40KHz的矩形波然后通過(guò)多個(gè) 74HC04進(jìn)行放大從而驅(qū)動(dòng)超聲波發(fā)送模塊,右下部分的接收模塊包含接收、濾波、比較等運(yùn)算,最后能根據(jù)接收到的超聲波是否為40KHz而產(chǎn)生一個(gè)信號(hào) 從而引發(fā)單片機(jī)中斷。
此外,我還發(fā)現(xiàn),用80c52+12MHz的晶振,產(chǎn)生40KHz的矩形波在protues里模擬很不正常!這里for(a=0;a<200; a++){ P36=!P36; delays();}就是每隔一定時(shí)間讓P36腳的電壓翻轉(zhuǎn)實(shí)現(xiàn)輸出矩形波的效果,顯然設(shè)這里的delays()的延時(shí)為t,那么產(chǎn)生的矩形波的周期就是 2*t,若果需要40Khz的矩形波則delay()延時(shí)t就大約為12.5us,而如下面代碼中我采用的是delays()延時(shí)10次,結(jié)果產(chǎn)生的波形 如下圖所示:以MCU的12Mhz來(lái)算,這10次i--應(yīng)該不會(huì)占用那么多的機(jī)器周期吧!(這個(gè)確實(shí)很令人疑惑)
復(fù)制代碼
1 #include<reg51.h>
2 #define uchar unsigned char
3 #define ulong unsigned long
4 #define uint unsigned int
5 sbit P36=P3^6;
6 sbit P32=P3^2;
7 uchar data tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
8 bit again;
9 void delays();
10 void main()
11 {
12 uchar a;//一次發(fā)送方波數(shù)
13 TMOD=0x01;//T0計(jì)數(shù)方式1
14 TH0=0;
15 TL0=0;
16 IT0=1;//INT0負(fù)脈沖觸發(fā)
17 EA=1;//開(kāi)總中斷
18 EX0=1;//開(kāi)外部INT0中斷
19
20 again=1;
21 while(1)
22 {
23 while(again==1)
24 {
25 P36=0;
26 TR0=1;//T0開(kāi)始計(jì)數(shù)
27 for(a=0;a<200;a++)//產(chǎn)生100個(gè)40Khz方波
28 {
29 P36=!P36;
30 delays();
31 }
32 //again=0;
33 }
34 }
35 }
36 void intersvro(void)interrupt 0 using 1 //INT0中斷服務(wù)程序
37 {
38 uint bwei,swei,gwei;
39 uchar DH,DL;
40 ulong COUNT;
41 ulong num;
42 TR0=0;//停止計(jì)數(shù)
43 DH=TH0;
44 DL=TL0;
45 COUNT=TH0*256+TL0;
46 num=(344*COUNT)/20000;
47 bwei=num/100;
48 swei=num%100/10;
49 gwei=num%10;
50 P1=tab[bwei];
51 P0=tab[swei];
52 P2=tab[gwei];
53 TH0=0;
54 TL0=0;
55 }
56 void delays()
57 {
58 int i=10;
59 while(i--);
60 }
復(fù)制代碼
鑒于上述的疑惑,我暫且把它歸結(jié)為protues仿真效果不好,要實(shí)測(cè)!但是感覺(jué)還是不怎么甘心呢,于是就拿555做個(gè)多諧振蕩器來(lái)試著產(chǎn)生40Khz的矩形波試試:結(jié)果發(fā)現(xiàn)結(jié)果還是挺接近的~那么看樣還是80C52的問(wèn)題了!在此過(guò)程中又萌發(fā)一個(gè)利用555產(chǎn)生這個(gè)40kHz的矩形波,然后MCU只是給出使能信號(hào)使555工作就行了,這樣一方面可以減輕MCU的工作量,另一方面又會(huì)產(chǎn)生比較標(biāo)準(zhǔn)的40KHz的矩形波,哈哈,不錯(cuò),不錯(cuò)!(這里T=(R1+2*R2)*C*Ln2 占空比Q=(R1+R2)/(R1+2*R2) D1是為了產(chǎn)生對(duì)稱(chēng)的方波)。
最后,還是對(duì)那個(gè)接收部分不放心,于是還得拿出模擬電路的書(shū)仔細(xì)分析一下~這里我從LM741研究起,在網(wǎng)上找了些資料包括說(shuō)明文檔甚至是英文的說(shuō)的都不是很好,于是往書(shū)里找資料,發(fā)現(xiàn)竟然是當(dāng)時(shí)學(xué)的一個(gè)芯片。!進(jìn)而發(fā)現(xiàn)上述的接收部分的核心非常類(lèi)似于有源濾波器,可是由于模擬電路知識(shí)差不多考完就忘了,當(dāng)初那些復(fù)雜的公式還是強(qiáng)記的,所以上面那個(gè)電路雖不復(fù)雜但是還是牽連很多知識(shí)的!準(zhǔn)備有空好好重學(xué)一下它了!
經(jīng)過(guò)這些調(diào)查和學(xué)習(xí)發(fā)現(xiàn),如果不用特殊的模塊(淘寶上商家賣(mài)的那種采用紅外線驅(qū)動(dòng)芯片來(lái)驅(qū)動(dòng)超聲波)也能用簡(jiǎn)單的運(yùn)放電路做出來(lái),可能用運(yùn)放做出來(lái)的簡(jiǎn)單的電路存在精度不是很高的問(wèn)題吧~接下來(lái)準(zhǔn)備再仔細(xì)研究一下芯片式的和普通運(yùn)放式的,然后采購(gòu)些元件,具體做了~
小結(jié):
時(shí)間過(guò)得真是快,還沒(méi)干點(diǎn)什么事它就沒(méi)有了!有時(shí)候驀然回首,會(huì)被它的無(wú)情嚇到!今天就大致了解了下超聲波模塊,在產(chǎn)品方面千篇一律細(xì)分可分成兩種陣營(yíng)(直接模塊上的二次開(kāi)發(fā)與開(kāi)發(fā)模塊一體開(kāi)發(fā)),還是如當(dāng)初的想法,這些都不適合改造以滿(mǎn)足自己的需求;在技術(shù)方面,發(fā)現(xiàn)有采用集成芯片的和采用普通運(yùn)放的,客觀來(lái)說(shuō)他們各有利弊吧,而感覺(jué)自己的模電知識(shí)略顯薄弱,要加把勁啦! |
評(píng)分
-
查看全部評(píng)分
|