這節(jié)課,來(lái)學(xué)習(xí)如何控制單位數(shù)碼管來(lái)顯示數(shù)字。
電路原理
要使用一個(gè)電子元器件,首先是要掌握它的電路原理圖,來(lái)看一下單位數(shù)碼管的電路原理圖:
我們選擇的是5611B型號(hào)的單位數(shù)碼管
可以看到上面第一行的第一個(gè)圖是正面的尺寸圖
第一行的第二個(gè)圖是側(cè)面的尺寸圖
第一行的第3個(gè)圖是數(shù)碼管的每個(gè)管子的定義,從最上面的A管依次到中間的G管,還有小數(shù)點(diǎn)的DP管
通過(guò)組合A管到G管的不同亮起來(lái)和熄滅,就可以顯示出數(shù)字信息
例如,讓FGBC這四個(gè)管亮起來(lái),就能顯示數(shù)字4了
第二行的第一個(gè)圖還是另外一個(gè)側(cè)面的尺寸圖
第二行的第二個(gè)圖是關(guān)于引腳的編號(hào),從正面看過(guò)去,讓小數(shù)點(diǎn)放在右下角,下面從左到右為1到5號(hào)引腳
上面從右向左是6到10號(hào)引腳
這10個(gè)引腳的編號(hào)很重要,因?yàn)樾枰私饷總€(gè)引腳的功能定義,才能決定如何通過(guò)引腳輸入電壓信號(hào)
第三行的圖是電路原理圖
上面一層是3號(hào)引腳或者8號(hào)引腳
中間一層是A管到DP管,也就是數(shù)碼管的8個(gè)管子
下面一層是10個(gè)引腳剩余的8個(gè)引腳
解釋一下這個(gè)電路原理圖
當(dāng)中的A管到DP管,大家可以當(dāng)作每個(gè)管都是一個(gè)led燈一樣的,有正極和負(fù)極
正極輸入高電壓,負(fù)極輸入GND,就可以讓數(shù)碼管的單個(gè)管子亮起來(lái)
比如3號(hào)引腳輸入高電壓,7號(hào)引腳輸入低電壓GND,A管的2端產(chǎn)生電壓差,就可以讓A管亮起來(lái)
但是如果7號(hào)引腳如果也輸入高電壓,A管的2端沒(méi)有電壓差,A管就會(huì)熄滅
假如3號(hào)引腳輸入低電壓,那么無(wú)論7號(hào)引腳是高電壓還是低電壓,都無(wú)法讓A管亮起來(lái)
比如3號(hào)引腳輸入高電壓,2號(hào)引腳輸入低電壓GND,D管的2端產(chǎn)生電壓差,就可以讓D管亮起來(lái)
但是如果2號(hào)引腳如果也輸入高電壓,D管的2端沒(méi)有電壓差,D管就會(huì)熄滅
假如3號(hào)引腳輸入低電壓,那么無(wú)論2號(hào)引腳是高電壓還是低電壓,都無(wú)法讓D管亮起來(lái)
其它的管子都是一樣的原理
這里要特別說(shuō)明一下,數(shù)碼管有2種型號(hào),一種叫共陽(yáng)數(shù)碼管,另一種叫共陰數(shù)碼管
區(qū)別在于公共端是陽(yáng)極還是陰極
我們看上面的電路圖,3或8號(hào)引腳是公共端,是接到數(shù)碼管的正極陽(yáng)極,所以我們這里的就是共陽(yáng)數(shù)碼管
假如將A管到DP管的正極和負(fù)極對(duì)掉的話,就變成了共陰數(shù)碼管了。
一個(gè)燈A管接線
我們先來(lái)讓A管亮起來(lái),按照如下規(guī)則接線:
樹(shù)莓派GPIO的7號(hào)口,用杜邦線連接到單位數(shù)碼管的3號(hào)引腳
樹(shù)莓派GPIO的11號(hào)口,用杜邦線連接到單位數(shù)碼管的7號(hào)引腳
實(shí)際接線圖如下:
編寫(xiě)程序讓一個(gè)燈A管亮起來(lái)
編寫(xiě)代碼如下:
運(yùn)行結(jié)果如下:
可以看到燈A管亮了3秒鐘后熄滅
程序解釋說(shuō)明
首先將7號(hào)口設(shè)置為低電壓,將11號(hào)口設(shè)置為高電壓,確保led燈是熄滅狀態(tài)
然后設(shè)置7號(hào)口為高電壓,就讓數(shù)碼管的3號(hào)引腳變?yōu)楦唠妷?/p>
然后設(shè)置11號(hào)口為低電壓,就讓數(shù)碼管的7號(hào)引腳變?yōu)榈碗妷?/p>
這樣燈管A就會(huì)亮起來(lái)
休眠3秒后,將7號(hào)口設(shè)置為低電壓,燈管A熄滅
全部燈管接線
樹(shù)莓派GPIO的12號(hào)口,用杜邦線連接到單位數(shù)碼管的6號(hào)引腳
樹(shù)莓派GPIO的13號(hào)口,用杜邦線連接到單位數(shù)碼管的4號(hào)引腳
樹(shù)莓派GPIO的15號(hào)口,用杜邦線連接到單位數(shù)碼管的2號(hào)引腳
樹(shù)莓派GPIO的16號(hào)口,用杜邦線連接到單位數(shù)碼管的1號(hào)引腳
樹(shù)莓派GPIO的18號(hào)口,用杜邦線連接到單位數(shù)碼管的9號(hào)引腳
樹(shù)莓派GPIO的21號(hào)口,用杜邦線連接到單位數(shù)碼管的10號(hào)引腳
樹(shù)莓派GPIO的22號(hào)口,用杜邦線連接到單位數(shù)碼管的5號(hào)引腳
實(shí)際接線圖如下:
顯示數(shù)字1
要顯示數(shù)字1,需要將燈管B和C亮起來(lái),其它燈管熄滅
那么需要將GPIO的12號(hào)口和13號(hào)口設(shè)置為低電壓,其它口設(shè)置為高電壓,就可以顯示數(shù)字1了
編寫(xiě)代碼如下:
運(yùn)行結(jié)果如下:
顯示所有數(shù)字
參照數(shù)字1的方法,可以編寫(xiě)數(shù)字2到數(shù)字9的程序如下:
運(yùn)行結(jié)果可以看到,數(shù)字從1到9每個(gè)數(shù)字顯示3秒后熄滅。
大家認(rèn)真學(xué)習(xí)代碼的寫(xiě)法,注意這里沒(méi)有在每個(gè)數(shù)字亮3秒之后,設(shè)置為熄滅的動(dòng)作,是因?yàn)榻又枰@示下一個(gè)數(shù)字。
另外其中的GPIO.setwarnings(False)這一句代碼的用途是不顯示相關(guān)的一些警告信息。試試看不寫(xiě)這行代碼有什么效果。
課后作業(yè)
1.循環(huán)顯示數(shù)字從0到9,間隔1秒,然后再?gòu)?到9,循環(huán)顯示3次。注意要將每個(gè)數(shù)字的顯示程序做成函數(shù)調(diào)用。
2.數(shù)字倒計(jì)時(shí)顯示,從9倒計(jì)時(shí)到0,間隔1秒,可以利用前面做好的單個(gè)數(shù)字的顯示函數(shù)程序。