這節(jié)課邢滑,來學(xué)習(xí)如何控制單位數(shù)碼管來顯示數(shù)字潮酒。
電路原理
要使用一個電子元器件设预,首先是要掌握它的電路原理圖构蹬,來看一下單位數(shù)碼管的電路原理圖:
我們選擇的是5611B型號的單位數(shù)碼管
可以看到上面第一行的第一個圖是正面的尺寸圖
第一行的第二個圖是側(cè)面的尺寸圖
第一行的第3個圖是數(shù)碼管的每個管子的定義,從最上面的A管依次到中間的G管则酝,還有小數(shù)點(diǎn)的DP管
通過組合A管到G管的不同亮起來和熄滅殉簸,就可以顯示出數(shù)字信息
例如,讓FGBC這四個管亮起來沽讹,就能顯示數(shù)字4了
第二行的第一個圖還是另外一個側(cè)面的尺寸圖
第二行的第二個圖是關(guān)于引腳的編號般卑,從正面看過去,讓小數(shù)點(diǎn)放在右下角妥泉,下面從左到右為1到5號引腳
上面從右向左是6到10號引腳
這10個引腳的編號很重要椭微,因?yàn)樾枰私饷總€引腳的功能定義,才能決定如何通過引腳輸入電壓信號
第三行的圖是電路原理圖
上面一層是3號引腳或者8號引腳
中間一層是A管到DP管盲链,也就是數(shù)碼管的8個管子
下面一層是10個引腳剩余的8個引腳
解釋一下這個電路原理圖
當(dāng)中的A管到DP管蝇率,大家可以當(dāng)作每個管都是一個led燈一樣的,有正極和負(fù)極
正極輸入高電壓刽沾,負(fù)極輸入GND本慕,就可以讓數(shù)碼管的單個管子亮起來
比如3號引腳輸入高電壓,7號引腳輸入低電壓GND侧漓,A管的2端產(chǎn)生電壓差锅尘,就可以讓A管亮起來
但是如果7號引腳如果也輸入高電壓,A管的2端沒有電壓差,A管就會熄滅
假如3號引腳輸入低電壓藤违,那么無論7號引腳是高電壓還是低電壓浪腐,都無法讓A管亮起來
比如3號引腳輸入高電壓,2號引腳輸入低電壓GND顿乒,D管的2端產(chǎn)生電壓差议街,就可以讓D管亮起來
但是如果2號引腳如果也輸入高電壓,D管的2端沒有電壓差璧榄,D管就會熄滅
假如3號引腳輸入低電壓特漩,那么無論2號引腳是高電壓還是低電壓,都無法讓D管亮起來
其它的管子都是一樣的原理
這里要特別說明一下骨杂,數(shù)碼管有2種型號涂身,一種叫共陽數(shù)碼管,另一種叫共陰數(shù)碼管
區(qū)別在于公共端是陽極還是陰極
我們看上面的電路圖搓蚪,3或8號引腳是公共端蛤售,是接到數(shù)碼管的正極陽極,所以我們這里的就是共陽數(shù)碼管
假如將A管到DP管的正極和負(fù)極對掉的話陕凹,就變成了共陰數(shù)碼管了悍抑。
一個燈A管接線
我們先來讓A管亮起來鳄炉,按照如下規(guī)則接線:
樹莓派GPIO的7號口杜耙,用杜邦線連接到單位數(shù)碼管的3號引腳
樹莓派GPIO的11號口,用杜邦線連接到單位數(shù)碼管的7號引腳
實(shí)際接線圖如下:
編寫程序讓一個燈A管亮起來
編寫代碼如下:
運(yùn)行結(jié)果如下:
可以看到燈A管亮了3秒鐘后熄滅
程序解釋說明
首先將7號口設(shè)置為低電壓拂盯,將11號口設(shè)置為高電壓佑女,確保led燈是熄滅狀態(tài)
然后設(shè)置7號口為高電壓,就讓數(shù)碼管的3號引腳變?yōu)楦唠妷?/p>
然后設(shè)置11號口為低電壓谈竿,就讓數(shù)碼管的7號引腳變?yōu)榈碗妷?/p>
這樣燈管A就會亮起來
休眠3秒后团驱,將7號口設(shè)置為低電壓,燈管A熄滅
全部燈管接線
樹莓派GPIO的12號口空凸,用杜邦線連接到單位數(shù)碼管的6號引腳
樹莓派GPIO的13號口嚎花,用杜邦線連接到單位數(shù)碼管的4號引腳
樹莓派GPIO的15號口,用杜邦線連接到單位數(shù)碼管的2號引腳
樹莓派GPIO的16號口呀洲,用杜邦線連接到單位數(shù)碼管的1號引腳
樹莓派GPIO的18號口紊选,用杜邦線連接到單位數(shù)碼管的9號引腳
樹莓派GPIO的21號口,用杜邦線連接到單位數(shù)碼管的10號引腳
樹莓派GPIO的22號口道逗,用杜邦線連接到單位數(shù)碼管的5號引腳
實(shí)際接線圖如下:
顯示數(shù)字1
要顯示數(shù)字1兵罢,需要將燈管B和C亮起來,其它燈管熄滅
那么需要將GPIO的12號口和13號口設(shè)置為低電壓滓窍,其它口設(shè)置為高電壓卖词,就可以顯示數(shù)字1了
編寫代碼如下:
運(yùn)行結(jié)果如下:
顯示所有數(shù)字
參照數(shù)字1的方法,可以編寫數(shù)字2到數(shù)字9的程序如下:
運(yùn)行結(jié)果可以看到吏夯,數(shù)字從1到9每個數(shù)字顯示3秒后熄滅此蜈。
大家認(rèn)真學(xué)習(xí)代碼的寫法即横,注意這里沒有在每個數(shù)字亮3秒之后,設(shè)置為熄滅的動作裆赵,是因?yàn)榻又枰@示下一個數(shù)字令境。
另外其中的GPIO.setwarnings(False)這一句代碼的用途是不顯示相關(guān)的一些警告信息。試試看不寫這行代碼有什么效果顾瞪。
課后作業(yè)
1.循環(huán)顯示數(shù)字從0到9舔庶,間隔1秒,然后再從0到9陈醒,循環(huán)顯示3次惕橙。注意要將每個數(shù)字的顯示程序做成函數(shù)調(diào)用。
2.數(shù)字倒計(jì)時顯示钉跷,從9倒計(jì)時到0弥鹦,間隔1秒,可以利用前面做好的單個數(shù)字的顯示函數(shù)程序爷辙。