本帖最后由 bodasister 于 2016-11-21 16:58 編輯
聲光控開關(guān)在我們?nèi)粘I钪幸呀?jīng)非常普遍了,幾乎每個小區(qū)的樓道里都能有聲光控開關(guān)的影子。現(xiàn)在也逐漸出現(xiàn)了聲光控的小夜燈,晚上起夜再也不用擔(dān)心太黑、刺眼、找不到開關(guān)了!下面就教大家用Python開發(fā)板——TPYBoard來做一個簡易的聲光控小燈吧! 詳細的教程實例請參考TPYBoard官網(wǎng)網(wǎng)站:http://www.micropython.net.cn
QQ圖片20161119144607.jpg (359.38 KB, 下載次數(shù): 81)
下載附件
2016-11-21 16:52 上傳
視頻演示請參考QQ交流群:157816561 https://v.qq.com/x/page/f0348ry1xyi.html
這次用的到主要MCU依然是能跑Python的開發(fā)板TPYBoard,這款DIY套件在TPYBoard官網(wǎng)上有售,感興趣的朋友可以買回來DIY哦! 購買網(wǎng)址
150723_ig4Y_2849130.png (175.96 KB, 下載次數(shù): 63)
下載附件
2016-11-21 16:54 上傳
1.實驗?zāi)康?/font> 1. 學(xué)習(xí)在PC機系統(tǒng)中擴展簡單I/O 接口的方法。 2. 進一步學(xué)習(xí)編制數(shù)據(jù)輸出程序的設(shè)計方法。 3. 學(xué)習(xí)光敏傳感器模塊的工作原理。 4. 學(xué)習(xí)聲音傳感器模塊的工作原理。 5. 學(xué)習(xí)TPYboard與聲音傳感器與光敏傳感器的接線方法以及利用聲音與光控制發(fā)光二極管亮滅。 2.所需元器件 TPYBoard板子一塊 聲音傳感器一個 光敏傳感器一個 面包板一塊 發(fā)光二極管若干 數(shù)據(jù)線一條 杜邦線若干 3.光敏傳感器模塊工作原理 1.光敏電阻模塊對環(huán)境光線最敏感,一般用來檢測周圍環(huán)境的光線的亮度,觸發(fā)單片機或繼電器模塊等; 2.模塊在環(huán)境光線亮度達不到設(shè)定閾值時,DO端輸出高電平,當(dāng)外界環(huán)境光線亮度超過設(shè)定閾值時,DO端輸出低電平; 3.DO輸出端可以與單片機直接相連,通過單片機來檢測高低電平,由此來檢測環(huán)境的光線亮度改變;
4.DO輸出端可以直接驅(qū)動本店繼電器模塊,由此可以組成一個光控開關(guān)。
1479545872307793.png (226.34 KB, 下載次數(shù): 72)
下載附件
2016-11-21 16:55 上傳
光敏傳感器 4.聲音傳感器模塊工作原理 1.聲音模塊對環(huán)境聲音強度最敏感,一般用來檢測周圍環(huán)境的聲音強度。 2.模塊在環(huán)境聲音強度達不到設(shè)定閾值時,OUT輸出高電平,當(dāng)外界環(huán)境聲音強度超過設(shè)定閾值時,模塊OUT輸出低電平; 3.小板數(shù)字量輸出OUT可以與單片機直接相連,通過單片機來檢測高低電平,由此來檢測環(huán)境的聲音;
4.小板數(shù)字量輸出OUT可以直接驅(qū)動本店繼電器模塊,由此可以組成一個聲控開關(guān);
1479545901165245.png (148.8 KB, 下載次數(shù): 88)
下載附件
2016-11-21 16:56 上傳
5.硬件接線方法 上面我們已經(jīng)知道光敏傳感器跟聲音傳感器的工作原理,以及三根針腳的作用,那么我們只需講電源正極與電源負(fù)極跟我們TPYBoard的3.3V跟GND連接起來,然后將光敏傳感器與聲音傳感器的信號輸出針腳連接到我們TPYBoard,本人聲音傳感器信號輸出引腳連接的是TPYBoard的Y1針腳,光敏傳感器信號輸出引腳連接TOYBoard的Y2針腳,這樣傳感器就連接完畢,然后我們將發(fā)光數(shù)碼管的正極插入面包板正極上,負(fù)極插入面包板的縱向插孔里(a,b,c,d,e,f,g,h,i,j),然后用杜邦線將負(fù)極連接到TPYBoard的GND上,燈的正極連接到我們TOYBoard的X1針腳,然后我們聲音大小以及光亮強度來控制X1針腳輸出高電平或者低電平來控制發(fā)光二極管的亮滅,接線ok后,編寫main.py,這樣我們的DIY聲光電控開關(guān)就完成了。
6.源代碼 - <font color="#444444"><font color="#3d464d"># main.py -- put your code here!
- import pyb
- from pyb import Pin
- voice = Pin('Y1',Pin.IN)
- light = Pin('Y2',Pin.IN)
- led = pyb.Pin("X1",pyb.Pin.OUT_PP)
- while 1:
- if light.value()==1:
- if voice.value()==1:
- led.value(0)
- pyb.LED(2).off()
- pyb.LED(3).off()
- pyb.LED(4).on()
- else:
- pyb.LED(3).off()
- pyb.LED(4).off()
- led.value(1)
- pyb.LED(2).on()
- pyb.delay(5000)
- else:
- pyb.LED(3).on()
- pyb.LED(2).off()
- pyb.LED(4).off()
- led.value(0)</font></font>
復(fù)制代碼
|