找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10697|回復: 0
打印 上一主題 下一主題
收起左側(cè)

STM32的流水燈程序

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:99082 發(fā)表于 2015-12-10 01:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
記得小時候有玩具電動車,車玩壞了就拆了,最高興的就是能拆出電機和燈泡,玩這兩樣東西的樂趣不比玩玩具車少。

用干電池就能讓小燈泡亮起來,也能讓電機轉(zhuǎn)起來,雖然現(xiàn)象很簡單,但卻融入了自己的控制和想象,這是很有意思的。想讓一個燈泡亮起來,給一個適當?shù)碾妷壕涂梢,這是中學物理都學過的。其實小燈泡的工作電壓是2-3V,干電池的電壓是1.5V,所以小時候小孩子玩的時候用一節(jié)電池或兩節(jié)電池小燈泡都會亮。而且暗和亮的程度不一樣,電機轉(zhuǎn)動的狀態(tài)也不一樣,這就對電學有個直觀的認識。

現(xiàn)在燈泡越來越少了,越來越多被LED取代。LED就是Lighting Emitting Diode的縮寫,即發(fā)光二極管。LED只能往一個方向?qū)?/strong>,即給LED加上正向偏壓,當電流流過時,電子與空穴在其內(nèi)復合而發(fā)出單色光,這叫電致發(fā)光效應,而光線的波長、顏色跟其所采用的半導體材料種類與摻入的元素雜質(zhì)有關(guān)。

LED的工作電壓大概2V左右,不同的材料不同型號的LED電壓稍稍會有些偏差,但對實際使用的影響不大。


--為什么要跑流水燈


流水燈實驗是學單片機的經(jīng)典例程,可以說是單片機學習中的"HELLO WORLD"。

那么怎么通過STM32把一個LED點亮呢?想讓LED發(fā)光當然需要給LED加一個正向偏壓。STM32的引腳輸出電壓高電壓為3.3V,低電壓為0V。想要用STM32控制LED的亮和滅,這里有兩種方式可以把給一個LED加上正向偏壓:第一種方法就是把LED的負極和電路的地(0V)相連,當STM32輸出低電平時,LED兩端沒有電勢差。當STM32輸出高電平時,LED正極就加上了3.3V的電壓,這樣LED就亮了,但是這時候LED可能亮的有點不正常,因為LED的工作電壓約為2V,所以這時候LED可能是特別亮,但可能亮了一段時間就會燒壞。為了LED能長期正常工作,所以要讓LED在2V的工作電壓,所以加一個電阻起保護作用,電阻選470歐或510歐。

第二種方法就是將LED的正極連著3.3V的電源上,負極連在STM32的引腳上,當STM32的引腳輸出低電平時LED就會亮。

為什么要通過流水燈的形式來完成實驗呢?因為能自由的控制一個燈泡的亮和滅、能自由的控制一個燈亮的時長和滅的時長,這樣也就證明已經(jīng)掌握了一個STM32的IO口高低電平的輸出,這就已經(jīng)可以做很多事情了。


--怎么控制小燈的亮滅


當然是寫程序控制了,先從思路上理順一遍就是:


以下邊電路圖中3個LED為例:


先讓第一個燈亮(因為圖中LED采用的是上一段介紹的第二種電路,所以應該讓和LED1相連的STM32引腳輸出0V低電平),亮一會(這個通過延時函數(shù)來實現(xiàn));把第一個熄滅(同理,讓引腳輸出高電平即可熄滅),接著(在程序上編程語句的執(zhí)行肯定有先后之分,因為沒有延時函數(shù),STM32工作頻率很高,所以就是“同時”)把第二個燈點亮,亮一會;把第二個燈熄滅,接著點亮第三個燈,亮一會;把三個燈熄滅,接著把第一個燈點亮...(這個省略號就是周而復始循環(huán)的意思,在程序?qū)崿F(xiàn)的時候,我們用一個循環(huán)函數(shù)就可以實現(xiàn)。)


這周就是在思路上、電路上介紹例程,下周主要介紹程序的編寫。


以下是本系列教程文章列表:歡迎大家踴躍討論,有問題可在51黑論壇回帖提出.


STM32教程(1)-大學里沒碰見像STM32一樣吸引我的姑娘:http://www.torrancerestoration.com/bbs/dpj-41167-1.html
STM32教程(2)-各種應用和外設簡單介紹:http://www.torrancerestoration.com/bbs/dpj-41168-1.html
STM32教程(3)-芯片引腳性質(zhì)介紹:http://www.torrancerestoration.com/bbs/dpj-41169-1.html
STM32教程(4)-最小系統(tǒng)的設計:http://www.torrancerestoration.com/bbs/dpj-41170-1.html
STM32教程(5)-庫:http://www.torrancerestoration.com/bbs/dpj-41171-1.html
STM32教程(6)-STM32的流水燈程序:http://www.torrancerestoration.com/bbs/dpj-41162-1.html

STM32編程基礎(1)-Keil編程軟件的安裝:http://www.torrancerestoration.com/bbs/dpj-41163-1.html
STM32編程基礎(2)-Keil庫的修改:http://www.torrancerestoration.com/bbs/dpj-41164-1.html
STM32編程基礎(3)-Keil建立工程模版:http://www.torrancerestoration.com/bbs/dpj-41165-1.html
STM32編程基礎(4)-Keil工程設置http://www.torrancerestoration.com/bbs/dpj-41166-1.html
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表