熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2022-9-15 09:29
正文摘要:我的單片機(jī)原理圖是這樣的,想用兩個(gè)io控制三個(gè)LED顯示,但是LED口輸入狀態(tài)時(shí),并沒有辦法讓兩個(gè)LED同時(shí)熄滅,反而同時(shí)點(diǎn)亮,實(shí)際加大了LED后面電阻也很難熄滅LED |
最符合樓主要求的就是充分利用高阻,一個(gè)I/O口驅(qū)動(dòng)2個(gè)LED,兩個(gè)口可以驅(qū)動(dòng)4個(gè)LED。在樓主另一個(gè)板塊同樣的提問已經(jīng)有方案了,可是有價(jià)值的都沒有回復(fù)不知完成的怎么樣了。其實(shí)最主要的就是在高阻時(shí)要保證2個(gè)LED都不亮,2個(gè)二極管是為了更可靠保證高阻時(shí)不亮,加大電阻是沒用的,前邊已經(jīng)說了IO口要有高阻和推挽方式,要用壓降大的發(fā)光管,壓降不夠加二極管,下圖是經(jīng)過驗(yàn)證的。
![]() |
3個(gè)IO,控制3個(gè)LED和一個(gè)按鍵。樓主非要用一個(gè)IO控制按鍵,2個(gè)IO控制3個(gè)LED,自討苦吃。IO復(fù)用是有講究的,不是隨意,明顯用一個(gè)IO控制一個(gè)LED和一個(gè)按鍵,其他2個(gè)IO控制2個(gè)LED才是正解。![]() |
188610329 發(fā)表于 2022-9-19 14:59 加上電阻就好了 |
12#樓的同志很有想法,充滿智慧。值得學(xué)習(xí) |
lkc8210 發(fā)表于 2022-9-19 14:33 5V供電, 3個(gè)LED都是紅色 LED 的話, 全高阻,3燈都會(huì)亮, 雖然亮的比較暗 |
逍遙111111 發(fā)表于 2022-9-15 11:42 妙啊,動(dòng)態(tài)輸出就可以任意控制LED的亮滅 |
1.jpeg (134.75 KB, 下載次數(shù): 119)
用芯片控制,I2C通信,想控制多少個(gè)燈都可以,一個(gè)或多個(gè)燈隨便亮。![]() |
songb11 發(fā)表于 2022-9-15 14:52 我是想實(shí)現(xiàn),1亮2滅,12亮,12滅 |
如果你不介意多用兩個(gè)三極管的話,可以用兩個(gè)三極管通過與邏輯控制一個(gè)LED,另外兩個(gè)LED用電平本身控制。電路圖如下:![]() Q1和Q2是兩個(gè)NPN三極管,如果兩個(gè)IO同時(shí)高電平,LED1和LED2兩側(cè)電平相同,不亮,此時(shí)Q1和Q2飽和,LED3亮;如果兩個(gè)IO中只有一個(gè)高電平,那么可以對(duì)應(yīng)地導(dǎo)通LED1或LED2,此時(shí)Q1和Q2中也只有一個(gè)導(dǎo)通,LED3不亮;如果兩個(gè)IO都是低電平,那么三個(gè)LED自然都不會(huì)亮。這樣一來,我們就可以單獨(dú)地控制三個(gè)LED的亮滅了,進(jìn)而可以通過頻閃的原理控制三個(gè)LED的8種組合狀態(tài)。 我簡(jiǎn)單搭了個(gè)小電路,用兩個(gè)IO控制三個(gè)LED的流水燈,實(shí)現(xiàn)8個(gè)LED狀態(tài)的循環(huán)轉(zhuǎn)移(000→001→010→...→111→000→001→...),驗(yàn)證了上面電路的有效性。IO使用了STC8G1K08A-8PIN 的P3.2和P3.3,電阻均為1kΩ,兩個(gè)三極管均使用S8050。代碼以及實(shí)現(xiàn)效果如下: 代碼:
實(shí)現(xiàn)效果: ![]() 效果還不錯(cuò)的,就是要加兩個(gè)三極管,不知道你能不能接受。 ![]() 證明一下,只用了兩個(gè)引腳哦,哈哈~ |
每個(gè)IO可以控制2個(gè)LED,2個(gè)電阻接VCC、GND,分壓點(diǎn)接兩個(gè)LED背靠背,LED另一端接IO。 IO高電平亮LED1,低電平亮LED2,高阻則兩個(gè)都不亮,方波驅(qū)動(dòng)則兩個(gè)同時(shí)亮,PWM驅(qū)動(dòng)還可以獨(dú)立調(diào)光。 所以,2個(gè)IO可以獨(dú)立控制4個(gè)LED互不干擾。 |
電路結(jié)構(gòu)是可以的,有的充電器跳燈就是這樣的結(jié)構(gòu),要調(diào)節(jié)LED輸入電壓大于一個(gè)LED小于兩個(gè)LED,所以只串電阻沒啥用,還得串二極管,或用穩(wěn)壓管穩(wěn)壓芯片之類的。 |
用盡量少的IO口控制盡量多的LED通常采用查理復(fù)用方法。計(jì)算公式N *(N - 1)= 個(gè)LED。這顯然不能滿足樓主“兩個(gè)IO口控制三個(gè)LED”的要求。解決這個(gè)問題有多種方法,沙發(fā)提供的方法最簡(jiǎn)單,但前提條件是IO口要能設(shè)置為推挽模式。 |
你的問題是不是想問:一個(gè)IO實(shí)現(xiàn)兩個(gè)LED的三種狀態(tài)[1亮2滅、2亮1滅、1 2都滅]控制? |
首先你要搞清楚你想要得到或?qū)崿F(xiàn)一個(gè)怎樣的亮燈結(jié)果,再考慮設(shè)計(jì)電路。 就你貼出來的電路而言D6就獨(dú)占了一個(gè)IO,D2\D3共享一個(gè)IO。對(duì)于獨(dú)占來說LED亮滅自由控制,而你這個(gè)共享就要看你想實(shí)現(xiàn)怎樣的一個(gè)LED亮滅邏輯了,如IO為三態(tài)就可想你現(xiàn)在這個(gè)下的LED幾種狀態(tài)了 |
這玩意搞個(gè)編碼器可以嗎 |
同時(shí)熄滅,同時(shí)亮兩個(gè)LED并聯(lián)不可以嗎 |
可以用邏輯矛盾的方式 |
樓主沒有看到51板塊8樓的解決方案嗎?高阻不亮是經(jīng)過驗(yàn)證的。 |
這個(gè)電路再加幾個(gè)電阻不知道行不行得通,電阻位置不合適的話處于00狀態(tài)的話應(yīng)該3個(gè)燈都可能亮吧.... |
25012ba8ab373196cd5ba13012a7d4f.jpg (115.4 KB, 下載次數(shù): 124)
Powered by 單片機(jī)教程網(wǎng)