用干電池就能讓小燈泡亮起來,也能讓電機轉(zhuǎn)起來,雖然現(xiàn)象很簡單,但卻融入了自己的控制和想象,這是很有意思的。想讓一個燈泡亮起來,給一個適當(dāng)?shù)碾妷壕涂梢裕@是中學(xué)物理都學(xué)過的。其實小燈泡的工作電壓是2-3V,干電池的電壓是1.5V,所以小時候小孩子玩的時候用一節(jié)電池或兩節(jié)電池小燈泡都會亮。而且暗和亮的程度不一樣,電機轉(zhuǎn)動的狀態(tài)也不一樣,這就對電學(xué)有個直觀的認識。
現(xiàn)在燈泡越來越少了,越來越多被LED取代。LED就是Lighting Emitting Diode的縮寫,即發(fā)光二極管。LED只能往一個方向?qū)?/strong>,即給LED加上正向偏壓,當(dāng)電流流過時,電子與空穴在其內(nèi)復(fù)合而發(fā)出單色光,這叫電致發(fā)光效應(yīng),而光線的波長、顏色跟其所采用的半導(dǎo)體材料種類與摻入的元素雜質(zhì)有關(guān)。
LED的工作電壓大概2V左右,不同的材料不同型號的LED電壓稍稍會有些偏差,但對實際使用的影響不大。
--為什么要跑流水燈
流水燈實驗是學(xué)單片機的經(jīng)典例程,可以說是單片機學(xué)習(xí)中的"HELLO WORLD"。
那么怎么通過STM32把一個LED點亮呢?想讓LED發(fā)光當(dāng)然需要給LED加一個正向偏壓。STM32的引腳輸出電壓高電壓為3.3V,低電壓為0V。想要用STM32控制LED的亮和滅,這里有兩種方式可以把給一個LED加上正向偏壓:第一種方法就是把LED的負極和電路的地(0V)相連,當(dāng)STM32輸出低電平時,LED兩端沒有電勢差。當(dāng)STM32輸出高電平時,LED正極就加上了3.3V的電壓,這樣LED就亮了,但是這時候LED可能亮的有點不正常,因為LED的工作電壓約為2V,所以這時候LED可能是特別亮,但可能亮了一段時間就會燒壞。為了LED能長期正常工作,所以要讓LED在2V的工作電壓,所以加一個電阻起保護作用,電阻選470歐或510歐。
第二種方法就是將LED的正極連著3.3V的電源上,負極連在STM32的引腳上,當(dāng)STM32的引腳輸出低電平時LED就會亮。
為什么要通過流水燈的形式來完成實驗?zāi)兀?span style="color: rgb(0, 176, 80); ">因為能自由的控制一個燈泡的亮和滅、能自由的控制一個燈亮的時長和滅的時長,這樣也就證明已經(jīng)掌握了一個STM32的IO口高低電平的輸出,這就已經(jīng)可以做很多事情了。
--怎么控制小燈的亮滅
當(dāng)然是寫程序控制了,先從思路上理順一遍就是:
以下邊電路圖中3個LED為例:
先讓第一個燈亮(因為圖中LED采用的是上一段介紹的第二種電路,所以應(yīng)該讓和LED1相連的STM32引腳輸出0V低電平),亮一會(這個通過延時函數(shù)來實現(xiàn));把第一個熄滅(同理,讓引腳輸出高電平即可熄滅),接著(在程序上編程語句的執(zhí)行肯定有先后之分,因為沒有延時函數(shù),STM32工作頻率很高,所以就是“同時”)把第二個燈點亮,亮一會;把第二個燈熄滅,接著點亮第三個燈,亮一會;把三個燈熄滅,接著把第一個燈點亮...(這個省略號就是周而復(fù)始循環(huán)的意思,在程序?qū)崿F(xiàn)的時候,我們用一個循環(huán)函數(shù)就可以實現(xiàn)。)
這周就是在思路上、電路上介紹例程,下周主要介紹程序的編寫。
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |