零基礎學HexRuino-LED閃爍實驗

2020-12-05 創客DIY樂園

LED閃爍實驗

一、學習目標

學習電阻的知識學習LED的相關知識學習數字I/O輸出指令:digitalWrite()二、預備知識

1.什麼是電阻器:

電阻器(Resistor)在日常生活中一般直接稱為電阻。是一個限流元件,將電阻接在電路中後,電阻器的阻值是固定的一般是兩個引腳,它可限制通過它所連支路的電流大小。阻值不能改變的稱為固定電阻器。阻值可變的稱為電位器或可變電阻器。

圖1-1電阻器實物圖

電器上的音量旋鈕通常使用的是可變電阻器或叫電位器。

在電路原理圖中,電阻和電位器的原理符號如下:

圖1-2電阻器原理符號

這兩種都是電阻的符號,一個是國內的標準,一個是國外的標準,現在都通用。另外電阻器不分極性,兩端都是一樣的可以互換。同樣的,電位器的原理符號也是兩種,如下圖所示:

圖1-3電位器原理符號

由於體積和抗磨損的原因,固定電阻器的值不再直接以印數字的方式標識了,而採用國際上標準的色環法標註。色環標註阻值的電阻分為四環和五環以及六色環,主要是精度的區別,四環標註的電阻阻值誤差為5%,而五環標註的電阻阻值誤差為1%,而六色環則是在五色環基礎上多了一個溫度係數。

圖1-4四色環和五色環電阻實物

電阻色環的計算在網上有很多,這裡只簡單的介紹下:

圖1-5電阻色環含義

色環顏色對應數值如下:

圖1-6電阻色環對照表

看著複雜,其實很簡單,我們舉個例子,如下圖的4色環電阻器照片(照片為網上隨便找的):

圖1-7四色環電阻示例

照片中為4色環電阻,色環密集的一頭為起始位置,顏色順序為棕,黑,棕,金。按照前面色環對照表,棕為1,黑為0。金銀兩色只用來標記誤差值。4色環電阻值為兩位,因此前兩環,棕,黑為有效數值:10,第三環為10的冪數,此環顏色為棕即1,也就是101,因此,此電阻阻值為:10 x 101 = 100Ω,誤差色環為金色,也就是±5%的誤差。

再看一個5色環的例子,如圖:

圖1-8五色環電阻示例

色環順序為:棕,黑,黑,棕,棕。由圖1.7電阻色環含義可知5色環中前三個色環為有效數值,棕,黑,黑,為100(參照圖1.8電阻色環對照表),第4環為10的指數,此環為棕色,即101,誤差為棕色,即±1%。則圖中電阻的值為:100x101 = 1000Ω 誤差±1%。通常1000Ω也寫成1kΩ。

2.什麼是發光二極體

發光二極體簡稱為 LED。由鎵(Ga)與砷(AS))磷(P)的化合物製成的二極體,當電子與空穴複合時能輻射出可見光,因而可以用來製成發光二極體,在電路及儀器中作為指示燈,或者組成文字或數字顯示。磷砷化鎵二極體發紅光,磷化鎵二極體發綠光, 碳化矽二極體發黃光。

圖1-9各種顏色的發光二極體

它是半導體二極體的一種,可以把電能轉化成光能;常簡寫為 LED。發光二極體與普通二極體一樣是由一個 PN 結組成,也具有單向導電性。當給發光二極體加上正向電壓後,從 P 區注入到 N 區的空穴和由 N 區注入到 P 區的電子,在 PN 結附近數微米內分別與 N 區的電子和 P 區的空穴複合,產生自發輻射的螢光。不同的半導體材料中電子和空穴所處的能量狀態不同。當電子和空穴複合時釋放出的能量多少不同,釋放出的能量越多,則發出的光的波長越短。常用的是發紅光、綠光或黃光的二極體。

發光二極體的兩根引線中較長的一根為正極,應連接電源正極。有的發光二極體的兩根引線一樣長,但管殼上有一凸起的小舌,靠近小舌的引線是正極。如下圖所示:

圖1-10發光二極體內部結構圖

LED的原理符號如下:

圖1-11發光二極體(LED)的原理符號

正極也稱為陽極,負極也稱為陰極。正常工作時,正極端的電壓必須大於負極端的電壓。

3.認識「電源地」

電源地(GND)並沒有實際器件,但它是電路原理圖必不可少的符號。它是所有電壓的基準點,為0V電壓。其他的標稱電壓如輸入電壓,輸出電壓,電源電壓等都是相對於「地(GND)」才有意義。它的原理符號如下:

圖1-12地(GND)的原理符號

同時,它又是一個網絡,原理圖中所有和地相連接的器件結點都是相互連通的。

4.LED電路工作原理

LED燈有兩種連線方法:當LED燈的陽極通過限流電阻與板子上的數字 I/O 口相連, 數字口輸出高電平時,LED導通,發光二極體發出亮光;數字口輸出低電平時,LED截止,發光二極體熄滅。如圖:

圖1-13發光二極體接線方法 1

當LED燈的陰極與板子上的數字I/O口相連時,數字口輸出高電平,LED截止,發光二極體熄滅;數字口輸出低電平,LED燈導通,發光二極體點亮。

圖1-14發光二極體接線方法 2

發光二極體的反向擊穿電壓約 5 伏。正向工作電壓為1.5~2.5V,其工作電流一般為5 ~20mA。它的正向伏安特性曲線很陡,使用時必須串聯限流電阻以控制通過管子的電流。限流電阻 R 可用下式計算:

R=(Vi-VF)/I ;

式中 Vi 為電源電壓,VF 為 LED 的正向壓降,I 為 LED 的工作電流,電流越大LED越亮,但如果電流超過LED自身能夠承受的範圍,則會損壞LED器件。而且,HexRuino的引腳輸入輸出的正常驅動電流為5mA,輸出高電平電壓3V左右,正好可以驅動這樣的LED器件。

注意:HexRuino的控制晶片的工作電壓是3.3V,因此HexRuino板上所有引腳輸出時的最大電壓不會超過3.3V。

所以在接線方法1中,HexRuino引腳輸出高電平電壓為3V,選擇2V為LED工作電壓,5mA(0.005A)為工作電流,則限流電阻R為:

R = (3 - 2) / 0.005 = 200Ω

正常情況下,我們可使用200Ω 的電阻作為限流電阻。

連線方案2中,由於Vi使用3.3V電源,比方案1中的3V很接近,因此限流電阻的取值依然可以使用200Ω。

三、實驗步驟

1.硬體連接

本實驗選擇了接線方法 1 連接發光二極體,將 200Ω 電阻的一端插在麵包板上,另一端和HexRuino的digital I/O 口A0相連接,電阻和發光二極體的正極通過導線相連,發光二極體的負端插在麵包板上與HexRuino板的 GND 相連。具體連接如圖:

圖1-15發光二極體的具體接線圖

接下來就可以通過控制A0腳的輸出達到控制LED的亮滅。

2.軟體編程

在HexRuino板上除了電源引腳外,所有的引腳都可用作數字I/O的輸出,其輸出命令為:

實驗一:

按照圖1.15發光二極體的具體接線圖連接好,將HexRuino通過USB線連接至電腦上。打開Espruino Web IDE開發環境,連接HexRuino設備。在左側交互窗口中輸入:

digitalWrite(A0, true)

如果硬體連接沒問題的話,應該看到LED燈亮起來了。

再次輸入:

digitalWrite(A0, false)

可看到LED燈熄滅。當然,用1代替true,0代替false也是一樣的。

圖1-16直接執行命令可立即看到結果

在此可以體會到,對於數字I/O模式的引腳,其輸出只能輸出0或1兩種狀態。如果沒有看到正常的結果,請再次檢查連線是否正確,指令輸入是否準確無誤。

實驗二:

接下來,我們需要將LED閃動起來,方法有兩種:

方法一:使用digitalPulse(pin, value, time)命令產生一系列脈衝信號,

命令:

現在實驗一下此指令,在左側交互窗口輸入:

digitalPulse(A0, 1, 1000)

可看到LED燈點亮1秒鐘(1000ms)後,熄滅。此命令實際上在數字I/O引腳上產生了一個時間寬度為1000毫秒(ms)的高電平脈衝:

圖1-17引腳A0的輸出波形

A0輸出為1的期間,LED持續發光,直至A0輸出為0的時候。

對於命令digitalPulse()中參數time其實是可以使用數組,比如[200, 200, 200,200]就是數組了,如果輸入命令:

digitalPulse(A0, 1, [200, 200, 200, 200])

就可以看到,LED持續亮200ms後,熄滅200ms,再次亮200ms,最後熄滅200ms,最終LED停在點亮狀態。其A0的輸出波形圖如下:

圖1-18 A0的輸出波形

需要說明的是,digitalPulse()命令執行後會立即返回,脈衝列表是有內部定時器回調函數執行完成的。

很顯然,方法一雖然可以讓LED閃動,但無法完成持續的周期閃動。那麼,現在我們就來使用方法二,完成周期性的持續閃動。

方法二:創建定時任務,按照一定周期切換LED的狀態。

創建一個定時任務的命令:

在方法一中,使用digitalPulse(A0, 1, 200)可以產生一個寬度200ms的高電平脈衝,LED在此期間點亮。如果再算上熄滅的時間200ms,那麼LED一亮一滅的時間為400ms,因此我們只需要創建一個400ms的定時任務,每次定時到期都執行digitalPulse(A0, 1, 200)命令,點亮LED燈200ms,其餘時間LED處於熄滅狀態。就可以周期性的讓LED閃動了,具體命令如下:

setInterval(digitalPulse, 400, A0, 1, 200)

按照前面的介紹,上面命令中400為定時任務觸發間隔400ms。調用的digitalPulse(A0, 1, 200)命令拆分成命令名digitalPulse以及其中的參數A0, 1, 200,分別帶入setInterval中。當然也可以使用如下的方式定時執行digitalPulse(A0, 1, 200)命令:

setInterval(digitalPulse(A0, 1, 200), 400)

執行後應該可以看到結果了,LED燈應該不停的閃爍,完全停不下來的節奏。

注意:使用setInterval()創建的定時任務如果不主動釋放,就會一直存在並運行下去。除非主動釋放或者斷電(復位)重啟。

因此,如果我們多次執行setInterval(digitalPulse, 400, A0, 1, 200) 這樣的命令,你會發現系統運行會越來越慢,最終系統也會報錯:

圖1-19多次執行setInterval()命令

多次執行setInterval()命令不會將之前的定時任務修改,只會創建新的定時任務。注意到每次執行setInterval()後返回的數字了嗎?這是每個新創建定時任務的索引號(或id)。使用這個id才能對相應的定時任務進行修改,或刪除。使用如下命令釋放(刪除)定時任務:

例如,使用clearInterval(1)刪除id=1的定時任務,而則刪除所有定時任務。

圖1-20使用clearInterval()刪除定時任務

其他清除定時任務的方法除了斷電復位外,還可通過左第3個快捷菜單按鈕中的clearInterval命令來實現:

圖1-21快捷菜單中的ClearInterval命令

最後,要想修改已存在的定時任務的觸發間隔,使用:

四、習題:

1 讓LED亮500ms,滅1s,循環閃動。

2 讓LED以如下波形描述的方式循環閃動:

答案:

1 亮500ms, 滅1s(1000ms),一個周期為1500ms,因此:

setInterval(digitalPulse(A0, 1, 500), 1500)

2 波形:

因此:

第一步:閃動波形

digitalPulse(A0, 1, [200, 200, 200, 200, 200])

第二步:創建定時任務

setInterval(digitalPulse(A0, 1, [200, 200, 200, 200, 200]), 2000)

相關焦點

  • 電子仿真:51單片機實現LED燈閃爍
    昨天看到一篇關於今日頭條CEO張一鳴的訪談,其中談到他的大學專業,張總最開始也是學電子的,但由於不能廣泛的接觸電子產品,更不能進行開創性實驗,因而最終轉學軟體。喜歡電子小夥伴的確實面臨著一個這樣的困境,不能很好的把自己想法以實物的方式展現出來。
  • 想知道led吸頂燈閃爍故障解決方法,應先排查led吸頂燈閃爍的原因
    led吸頂燈憑藉自身亮度高,造價便宜的優點,已經走進很多人的家庭裡面,雖然led吸頂燈已經是所有燈具裡面故障率最低的一種燈具了,但是故障率低不代表沒有故障,所以有時候led吸頂燈也會出現閃爍的問題,有時候還會一直閃不停,那這種問題應該怎麼解決呢,今天我們就來討論一下led吸頂燈閃爍故障解決方法
  • led射燈閃爍怎麼解決 led射燈使用注意事項
    很多用戶在使用led射燈之後遇到過led射燈閃爍的情況,通常造成led射燈閃爍的原因就是使用不當的情況所導致的。那麼led射燈閃爍怎麼解決呢?下面小編就來介紹還有led射燈使用注意事項。不了解的用戶們來簡單的了解一下吧。
  • 關於led射燈在閃爍時的解決辦法
    打開APP 關於led射燈在閃爍時的解決辦法 發表於 2019-08-01 15:49:22 很多用戶在使用led射燈之後遇到過led射燈閃爍的情況,通常造成led射燈閃爍的原因就是使用不當的情況所導致的。
  • Led燈閃爍是什麼原因 led燈壞了怎麼維修
    燈開的時候,會發出各種各色的光,非常的漂亮,許多人都忠愛led燈,那led燈閃爍是什麼原因,我們大家應該都會注意到,當我們把led燈關了之後,會發現led燈一閃一閃的,這是怎麼回事呢?led燈閃爍是什麼原因,許多人都對這個問題比較感興趣,led燈壞了怎麼維修,今天小編就為大家講講,一起學習吧!
  • led燈打開後不停閃爍是什麼原因 led燈如何選擇
    燈,而led燈它佔有很多優勢,也受到人們的喜愛。有很多人在安裝LED燈以後出現燈不停在閃爍,在晚上開啟使會覺得非常嚇人。那麼led燈打開後不停閃爍是什麼原因?led燈如何選擇?接下來我們跟著小編一起來了解吧!
  • led燈為什麼會閃爍 故障維修技巧有哪些
    打開APP led燈為什麼會閃爍 故障維修技巧有哪些 佚名 發表於 2019-12-13 08:50:56 如今的生活每個家庭都裝有LED燈,led燈開的時候,會發出各種各色的光,非常的漂亮,許多人都忠愛led燈,那led燈閃爍是什麼原因,我們大家應該都會注意到,當我們把led燈關了之後,會發現led燈一閃一閃的,這是怎麼回事呢?
  • led閃爍是什麼原因
    打開APP led閃爍是什麼原因 姚遠香 發表於 2019-07-29 14:32:57 LED燈閃爍,就屬於後一種情況:電容充電的過程中,燈是熄滅的——由於電容內部電流較小,導致充電速度很慢,所以用肉眼是可以看到電燈熄滅的。   當電容充滿電後,一次性釋放電能,會點亮電燈。但是由於儲存的電能較少,電燈很快就會熄滅——不停的重複充電、放電,肉眼看到的,就是燈閃爍。   電燈正常使用時看不到閃爍,是因為通過電容的電流較大,充電速度極快。
  • 不停閃爍的綠色LED燈
    這個電阻作用是使1500uF電容慢慢充電,這樣就可以通過改變電阻值而改變led燈的閃爍頻率。把發光二極體的負極插腳連接1500uF電容的負極端,把發光二極體的正極插腳連接三極體的集電極上,也就是三極體中間插腳。發光二極體玻璃封裝裡面大金屬塊一側是負極,小金屬塊一側是正極。在電阻另一端連接一段黑色電線,這是電源輸入負極。在電容正極端連接一段紅色電線,這是電源輸入正極。
  • led燈打開後不停閃爍怎麼處理最好?教你兩招就可以排查出原因
    led燈是目前很多家庭首選的燈具,但是led燈經常會出現led燈打開後不停閃爍的問題,十分煩人,今天就告訴大家遇到led燈打開後不停閃爍的問題應該怎麼處理。#led燈打開一直閃#一修房屋快修led燈維修首選要明白,led燈打開後不停閃爍的原因有兩種可能性,第一種是線路接觸不好,燈具開關或者接頭的地方有鬆動造成的,led
  • 為什麼LED燈會越用越暗?LED燈又為什麼會閃爍?
    LED燈為什麼會閃爍?LED燈閃爍是什麼原因。。。 LED燈閃爍,就屬於後一種情況:電容充電的過程中,燈是熄滅的——由於電容內部電流較小,導致充電速度很慢,所以用肉眼是可以看到電燈熄滅的。但是由於儲存的電能較少,電燈很快就會熄滅——不停的重複充電、放電,肉眼看到的,就是燈閃爍。 電燈正常使用時看不到閃爍,是因為通過電容的電流較大,充電速度極快。
  • 記一次HEX和RGB互換算法的思考及應用
    接下來我們來看看具體的算法實現:const hex2rgb = (hex: string = ''):string => {// 針對於傳入錯誤的hex,即長度不等於7或者不等於4的if(![4,7].includes(hex.length)) {throw new Error('格式錯誤')}let result = hex.slice(1)// 如果是顏色疊值, 統一轉換成6位顏色值if(result.length === 3) {result = result.split('').map(a =&
  • LED燈閃爍的妙用
    LED燈已經比較普及了,其好處眾人皆知,作為照明的光源和燈具,有許多指標對LED燈進行限制,閃爍是其中之一。
  • LED燈為什麼會閃爍?led燈閃爍是什麼原因
    LED燈閃爍,就屬於後一種情況:電容充電的過程中,燈是熄滅的——由於電容內部電流較小,導致充電速度很慢,所以用肉眼是可以看到電燈熄滅的。當電容充滿電後,一次性釋放電能,會點亮電燈。但是由於儲存的電能較少,電燈很快就會熄滅——不停的重複充電、放電,肉眼看到的,就是燈閃爍。電燈正常使用時看不到閃爍,是因為通過電容的電流較大,充電速度極快。
  • LED燈閃爍是怎麼回事
    打開APP LED燈閃爍是怎麼回事 太平洋電腦網 發表於 2018-12-31 15:16:00 使用LED等是家家戶戶的選擇,然而也有的人在安裝LED等之後,燈就會不停的閃爍。
  • 探究自閃爍發光二極體在物理實驗中的運用
    此事能成,就可以捨棄複雜的打點計時器和學生電源,學生就可以隨時隨地開展居家實驗了。當微主正發愁如何將智能硬體小型化和抗摔化的時候,李璐老師稱他的工作室裡有自閃爍發光二極體,只要用紐扣電池對自閃爍發光二極體供電,它自己就自動閃爍起來了,無需任何外加控制電路。
  • 如何解決LED「閃爍」的危害?
    打開APP 如何解決LED「閃爍」的危害?對於人眼來說,LED光源是持續的,但HDR相機卻捕捉到了亮和暗的屬性,並且在觀看視頻的時候出現『閃爍』。」 兩相結合來看,當帶有HDR相機的汽車在捕捉LED路牌和其他的車輛的LED光源時,將會在攝像頭傳回來的畫面裡出現信息缺失或者信息錯誤。這樣的情況下,人類還敢相信智能後視鏡甚至是自動駕駛嗎?
  • 【零基礎學英語應該從哪裡學起】英語老師推薦這幾個方法!
    【零基礎學英語應該從哪裡學起】英語老師推薦這幾個方法! 2020年11月27日 17:40作者:黃頁編輯:黃頁 【零基礎學英語應該從哪裡學起】
  • LED燈閃爍是什麼原因呢?
    -LED商業室內照明散熱解決方案專家-使用LED燈是家家戶戶的選擇,然而有的人在安裝LED燈之後,燈會不停的閃爍。
  • 用一個自閃爍發光二極體帶動三個led一起閃爍
    材料:一塊洞洞板、一個usb公頭、一個9014三極體、一個自閃爍發光二極體、三個綠色普通發光二極體。電路圖。用自閃爍發光二極體控制三極體基極的導通和截止,使三極體集電極間斷通過電流,三個綠色發光二極體也就不斷的發亮和熄滅。