單片機小製作,LED小燈瓶

2021-01-15 電子工程師小李

有一天在網上看到一個製作——LED電子螢火蟲,我感覺電路很有特點,於是就想仿製一個。那個LED電子螢火蟲用的是ATtiny13單片機來控制,我也正好有。而且硬體製作比較簡單,成本也不高,10元錢都不到,就能DIY一個。雖然簡單,但是製作卻需要耐心和細心,畢竟需要連接12個LED,焊接的工作量不少,我自己用了一個下午才完成,而程序更是陸陸續續地寫了幾個小時。

估計你會很好奇地問,一共才6個可用I/O引腳的 ATtiny13,怎麼能驅動12個LED呢?其實,我要告訴你,它不僅可以點亮每個LED,而且還能控制每個LED的亮度呢!這才是本次製作的精華。在製作的過程中,發生了一點小小的意外。由於我購買的JST充電線和原來的充電器引腳相反,致使我原本打算使用的小型鋰電池損壞,不能充電。在萬般無奈的情況下,我只好更換體積更大的鋰電池了。

主要材料

圖6.1 製作所需的主要材料

這次的主要元器件就是ATtiny13單片機和12個LED。當然還有雙絞線、洞洞板、電池、空瓶子、電阻等其他輔助材料,如圖6.1所示。

本製作使用的是8個引腳的ATtiny13單片機,這款單片機現在的價格很便宜,4元左右就能買到。ATtiny13 是AVR 單片機,它有1KB 的 Flash、64B 的EEPROM、64B 的SRAM、6 個通用I/O口線、32個通用工作寄存器、1個具有比較模式的8位定時器/計數器、片內/外中斷、4路10位ADC、具有片內振蕩器的可編程看門狗定時器,以及3種可以通過軟體進行選擇的省電模式。12個LED為普通的3mm發黃色光的LED。

製作過程

1 焊接單片機插座。

2 焊接兩個電阻。

3 雙絞線套入熱縮管後,焊接LED。焊接好後,用打火機加熱熱縮管,使其收縮固定。最後,別忘了再扭下熱縮管。

4 焊接好的12個LED。

5 雙絞線焊接到洞洞板上。

6 洞洞板和雙絞線焊接好的效果。

7 焊接JST插頭、鋰電池和開關。

8 在瓶子上開口。

9 用熱熔膠固定。

10 裝入瓶子中。

控制原理

為什麼6個I/O能控制12個LED呢?它們之間會不會相互影響呢?其實,這樣的連接方式不僅能控制每個LED,還能控制其亮度呢!之所以能這樣連接,是因為AVR單片機的每個I/O都是3態輸出。如果用普通51單片機,這樣連接是不行的。

那麼又是如何控制LED的亮度呢?控制亮度的關鍵是ATtiny13的兩路PWM,它們可以分別設置連接到PB0和PB1引腳上。在ATtiny13使用內部振蕩器的情況下,PWM的最高頻率可設置為47.5kHz。而且PWM的極性可以通過設置寄存器而改變,這使得12個LED亮度的控制更加簡單了。

先談談如何控制每個LED單獨的亮和滅。ATtiny13的每個I/O都有4種狀態,即輸出0狀態、輸出1狀態、高阻態(懸空態)、帶上拉電阻的高阻態。要使LED亮,必須要讓LED中流過正向的電流,如果要讓最左邊的LED亮,PB1輸出1、PB2輸出0即可。但是,其他不相關的引腳需要設置成高阻態。否則,如果PB0此時也為1的話,第2個LED也會亮。總之,為了保證其他LED不受到影響,在設置某個燈亮時,必須先把所有I/O設置成不帶上拉的高阻態。

能控制亮和滅有什麼了不起?呵呵,其實還能控制每個LED單獨的漸變,就是漸漸變亮,漸漸變暗。我舉個例子吧,如果要最左邊的LED漸漸變亮,就先設置PB2引腳為0電平,PB1引腳設置為高電平驅動的PWM波。然後,程序逐漸控制PB1的PWM狀態,通過調整PWM高電平的脈寬長度來實現亮度控制。當PWM高電平的時間長時,LED就變亮了。反之,LED就變暗了。

那麼電路原理圖(見圖6.2)中第7個反過來接的LED怎麼實現亮度控制呢?原理還是一樣,只是PB2將剛才的0電平設置成1電平,原來PB1為高電平脈衝驅動的PWM波設置成低電平脈衝驅動的PWM波即可。同樣,要控制第7個LED的亮度,就控制PWM低電平的脈寬長度,當低電平的脈寬長度長時,LED就變亮了。反之,LED就變暗了。

圖6.2 控制電路原理圖

那麼能實現所有的LED同時發光嗎?製作過程中,這個功能的實現倒是困擾了我一會兒。後來,我想到了動態掃描。什麼是動態掃描?老式電視機不就是這個原理嗎?電視機通過磁場讓射線高速地掃描屏幕,從而產生一幅畫面。那麼,讓每個燈分別亮1ms左右,然後像電視機一樣不斷地掃描,看上去就都亮了。在此基礎上,再控制每個燈的亮度數值,就能實現整體亮度控制了。如果LED足夠多,單片機引腳也足夠多,還可能顯示一副灰度畫面呢!

3種效果的程序編寫

程序的PWM頻率設置為最高的37.5kHz。之所以選擇這麼高的頻率是為了不影響動態掃描。試想,如果PWM頻率為100Hz,那麼還怎麼動態掃描呢?在程序中,動態掃描實際的頻率為62Hz。這已經足夠騙過人的眼睛,讓我們看不到燈的閃爍。

在單片機的中斷代碼中,程序每過26s就會產生溢出中斷一次,通過變量count計數中斷次數。當中斷的次數達到50次時,就更換下一個LED,顯示它對應的亮度。LED的亮度存儲到led[ ]這個數組中,每個LED通過載入對應的亮度值,即通過改變PWM產生寄存器的OCR0A與OCR0B,來實際控制高低電平脈寬長度,最終實現亮度的控制。當然,每次通過PWM控制亮度,都要先根據LED的驅動電平方式,重新設置PWM的控制模式。在此之前,還要記得設置不相關的引腳為高阻態。

LED的3種效果控制程序能夠實現LED不斷地變換,只要調用就能分別實現如下功能:所有LED的呼吸效果、逐個點亮和熄滅LED、LED流水顯示的效果。從編程的思路上講,led[ ]數組存放了12個元素,每個元素所存內容,即對應每個LED燈亮度值。要改變某個LED燈亮度,都是通過設置led[ ]數組中對應元素的 PWM 緩衝數值來實現自動變換。要讓所有的燈全亮只需設置數組中的每個元素的數值都為255即可。如果要一半的亮度就設置為128。要讓某個燈單獨最亮,只要設置這個LED元素數值為255,其他的元素為0。如果任意LED要產生漸漸變亮的效果,那麼只要對應數組元素中的數值從0逐漸變為255即可。同理,漸漸變暗,數值就從255變成0。要實現什麼樣的效果,大家可以通過改變led[ ]數組來實現。

相關焦點

  • 基於單片機的彩燈小製作
    2.硬體設計  單片機控制三組小燈可以按控制單色依次點亮,還可以通過改變輸出脈衝不同的佔空比來控制輸出電壓,以控制該色LED的點亮,實現多色光LED漸變發光功能,使三種顏色的燈可以發出多種顏色,單片機控制P1口的某管腳按規定輸出高低電平,輸出高電平時由ULN2003輸出低電平,經ULN2003反向為高電平
  • 創意小製作-太陽能庭院燈
    說起庭院燈,大家的腦海裡馬上就會浮現出居民小區裡的路燈或花園、草坪上的夜間照明燈等。其實一些有私家花園、屋頂花園或庭院的住戶,也可以安裝外形美觀的庭院燈。動手製作一盞(或多盞)如圖2-1所示的太陽能庭院燈,把它如題圖所示布置在庭院或花園、草坪上,用於夜晚的弱光照明,既時尚美觀、實用有趣,又節能環保。
  • 電子仿真:51單片機實現LED燈閃爍
    物料清單筆者所選的是一個最基礎、簡單的單片機例子,需要的電子元器件自然不多,總共6種,清單如下單片機89C51一個電容3個電阻兩個>12M晶振一個黃色LED燈一個原理圖電路原理圖如下,除了LED燈之外,其餘的組成了單片機的最小系統,分別為晶振電路和復位電路,這個不需要我們去深究,因為它是單片機官方提前設計好的
  • 聲控LED球泡燈製作
    ,發出腳步聲或其它聲音時,樓道燈會自動點亮,提供照明,當人們進入家門或走出公寓,樓道燈延時一段時間後(延時長短可以調整)會自動熄滅。在白天,即使有聲音,樓道燈也不會亮,可以達到節能的目的。聲光控延時開關不僅適用於住宅區的樓道,同時也適用於生活小區、工廠、辦公樓、教學樓的樓道等公共場所,它具有體積小、外形美觀、製作容易、工作可靠等優點,適合廣大電子愛好者自製。下面我簡要的介紹一下目前最為簡單實用的LED聲控球泡燈。
  • DIY:工程師親自製作LED浪漫小夜燈(圖)
    這裡小編就來給他們平反,工程師們也浪漫,瞧,這一盞LED浪漫的小夜燈,不是給浪漫添了不少分數。工程師們還不趕快動起來,做一個送給心儀的她?  LED浪漫的小夜燈,總是女孩子房間必不可少的迷你電器,誰說工程師們就不懂浪漫呢?這些創意都是工程師親自製作,還不趕快來看看,送一個給心儀的她~!
  • 單片機驅動LED中上拉電阻的問題
    所以,如果與發光二極體驅動的下一級內阻要是比較小(小於10M)的話,那麼其輸出必然是3V左右。當然如果使用的前級驅動電路有內部上拉(如PCF8574T內部有100uA若上拉,51的P1或P2,P3口等)則另當別論。所以我說如果這樣用最好並聯一個10K的電阻.
  • led燈與平米參照表 如何選購LED燈
    相信大家都知道是led燈,它安裝在每個家庭中的角落中,它不僅小巧精緻,而且光照顏色也非常好。今天小編給大家介紹下led燈與平米參照表,如何選購LED燈?接下來我們跟著小編一起來看看吧!一、led燈與平米參照表1、首先led燈型號,使用功率不同它的價格也有所不同,像led日光燈管它有14瓦,9瓦,led燈泡有3瓦,6瓦,射燈有6瓦,12瓦,16瓦等。而有的廠商生產出來的商品它在使用功率上也不一定。
  • 滷素燈和led燈的區別 滷素燈和led燈有什麼區別
    受經濟因素影響,現在的車主對於車的要求從最初的代步,到現在的節能、舒適、安全等一系列高要求,所以現在的廠商也在車上下了大功夫,燈就是其中之一,以前的滷素燈,大都換成了led燈,所以兩種燈有什麼不同呢?下面讓我們來看看滷素燈和led燈的區別吧。
  • 美的(Midea) 智能光控人體感應led小夜燈充電節能臥室夜燈 4000k
    美的(Midea) 智能光控人體感應led小夜燈充電節能臥室夜燈 4000k 2017年09月27日 10:45作者:網絡編輯:網絡
  • 客廳大燈led燈條怎麼換 led燈的壽命是多長
    led燈具有節能性好、環保安全的優勢,但難免使用久了之後,也會發生一些故障,如led燈條損壞。遇到這種情況應及時檢修,防止影響到led燈的正常使用。那麼,下面小編就來介紹下客廳大燈led燈條怎麼換。客廳大燈led燈條怎麼換隻需要購買一樣瓦數的燈條更換即可,利用幾粒螺絲,將燈條固定好就可以,非常的簡單,但是通常燈條是不易損壞的,應先確定驅動是否有問題再購買燈條,否則更換之後也會燒壞或是沒亮。
  • Led燈閃爍是什麼原因 led燈壞了怎麼維修
    更多精彩諮詢請關注電工365(diangong365)電工之家QQ群:①群:468193845                           ②群:522898769導讀:如今的生活每個家庭都裝有LED燈,led燈開的時候,會發出各種各色的光,非常的漂亮,許多人都忠愛led燈,那led燈閃爍是什麼原因,我們大家應該都會注意到,當我們把led燈關了之後
  • 聲控LED旋律燈製作教程
    打開APP 聲控LED旋律燈製作教程 工程師吳畏 發表於 2018-09-18 08:39:00 (或小電鑽) 指甲剪 ❷電路圖 如果看不懂請看PCB板材 如下圖照著焊即可
  • led燈太亮了如何去掉一部分光源 LED燈優點有哪些
    燈具這個方面上情況一直都是有在進步的,因為多數人平時都很受燈具上面的影響,所以在燈具的研發設計之中,各類情況相較於之前也是變得更加容易去處理,當然在近期新出現的LED燈方面,因為是新鮮物品,所以對這當中有些因素掌控,多數人還沒有辦理的很好,那麼led燈太亮了如何去掉一部分光源?
  • 12平米臥室led燈30w會不會太亮 led燈優點有哪些
    近幾年來的社會一直都是非常穩定的,而在近這種情況下,不斷地也是在出現新科技,很多科技的發展進步上,其實都會帶來好處,像是在燈具上面,燈具對處於晚上的大家來講,是一種救贖般的存在,當然燈具亮度過高,也並不是一件特別好的事情,那麼12平米臥室led燈30w會不會太亮?
  • 如何用單片機點亮LED
    每個入門單片機的朋友,我想第一個程序幾乎都是點亮一顆LED燈了,這同軟體工程的「hello world」一樣經典,是很簡單,但卻有著很多回憶,依然記得學習單片機
  • led燈10w夠亮嗎 led燈的原理
    對於燈這方面它的類型比較多,除了有節能燈之外,還有led燈等一些類型,一般的話,我們會根據自己家裡的需求去選擇它的類型,在這裡大家要看一下led燈10w夠亮嗎,購買燈最主要考慮的就是亮度的問題,如果不亮的話安在家裡也沒有用,與此同時,關於led燈的原理是什麼。以下是詳細介紹。
  • 12w的led燈有多亮 LED燈優點有哪些
    不少家庭中現在使用的燈具都是LED燈,led作為新型的燈具,優點增加了不少,最為明顯的點就是在亮度方面,亮度增加的同時還節約了許多能源,而有些人家中安裝的燈具其實也不用太亮,畢竟太亮了對於人的眼睛來說也會有很多的損傷,那麼12w的led燈有多亮?LED燈優點有哪些?
  • led燈不亮了怎麼修?記住這一點立馬讓壞了led燈亮起來!
    一般情況下正常使用話,led燈使用一段時間會出現亮度不夠或者越來越暗的情況,還有的時候整個led燈都不亮了,到底是怎麼回事?應該怎麼維修呢?今天蜜罐蟻小編給大家介紹下led燈不亮常見維修方法。一、led燈不亮了一般都有哪些原因?
  • 5瓦的led燈有多亮 led燈如何選購
    室內裝修的話,大家要注意選擇合適的燈具,如今很多的朋友們在裝修房屋的時候,更多的會使用的led燈,這種燈具有節能的效果,而且裝飾的效果也很不錯,大家可以根據自己的需求來進行選購,那麼5瓦的led燈有多亮?led燈如何選購?針對這些問題,下面我們來具體的了解一下吧。
  • LED的歷史以及LED燈的種類區分
    LED燈有好多種,有led照明燈、led燈帶、led燈杯、led節能燈、led裝飾燈、led地埋燈、led輪廓燈、led投光燈......