文/孫浩文
Arduino是一款便捷靈活、方便上手的開源電子原型平臺(tái)。包含硬件(各種型號(hào)的Arduino板)和軟件(Arduino IDE)。Arduino能實(shí)現(xiàn)各種傳感器感知,其中包括控制燈光、馬達(dá)等裝置影響周圍的環(huán)境。板子上的自帶的微控制器可以通過Arduino的編程語言來實(shí)現(xiàn)程序加載,同時(shí)編譯成二進(jìn)制文件,燒錄進(jìn)微控制器。
流水燈控制技術(shù)的應(yīng)用已經(jīng)在霓虹燈廣告宣傳、智能照明、小區(qū)燈飾、舞臺(tái)設(shè)計(jì)的燈光和音響控制等諸多領(lǐng)域得到了廣泛應(yīng)用,使得人們的生活與工作環(huán)境得到質(zhì)量的提升。本文以Arduino平臺(tái)為基礎(chǔ),通過對(duì)I/O口的實(shí)時(shí)信號(hào)控制輸出來實(shí)現(xiàn)對(duì)6位LED流水燈在6種狀態(tài)之間任意切換的效果。
表1:元器件清單
圖1:基于Arduino的花式流水燈的硬件電路原理圖
圖2
流水燈是指一組在Arduino平臺(tái)的控制下,按照設(shè)定的規(guī)則和延時(shí)來實(shí)現(xiàn)對(duì)LED發(fā)光二級(jí)管的亮和滅控制。本文以Arduino平臺(tái)為依據(jù),控制各個(gè)數(shù)字I/O所接的LED發(fā)光二極管的狀態(tài)。本文共設(shè)定了6種對(duì)LED發(fā)光二級(jí)管的控制方法。
花樣子程序一:控制LED燈從左向右依次延時(shí)400ms點(diǎn)亮,再從右向左依次延時(shí)400ms熄滅,最后控制所有LED燈延時(shí)400ms閃爍兩次。
花樣子程序二:控制LED燈從左向右點(diǎn)亮第3、5位號(hào)燈亮,延時(shí)400ms后點(diǎn)亮第2、6位號(hào)燈亮,延時(shí)400ms后一號(hào)燈亮,延時(shí)400ms后一號(hào)燈熄滅,延時(shí)400ms后熄滅2、6號(hào)燈,延時(shí)400ms后熄滅3、5位號(hào)燈,延時(shí)400ms后控制所有LED燈閃爍兩次。
花樣子程序三:LED燈從左向右點(diǎn)亮1、5位號(hào)燈亮,延時(shí)400ms后燈亮2、4位號(hào)燈,同時(shí)熄滅1、5位號(hào)燈,延時(shí)400ms后點(diǎn)亮3號(hào)等,同時(shí)2、4號(hào)燈熄滅,延時(shí)400ms后3號(hào)燈亮,同時(shí)熄滅2、4號(hào)燈,延時(shí)400ms后點(diǎn)亮1、5位號(hào)燈,同時(shí)熄滅2、4號(hào)燈,延時(shí)400ms后點(diǎn)亮6號(hào)燈,延時(shí)400ms后點(diǎn)亮3號(hào)燈,延時(shí)400ms后點(diǎn)亮2號(hào)燈,同時(shí)熄滅3、6號(hào)燈,延時(shí)400ms后點(diǎn)亮1號(hào)燈,同時(shí)熄滅2號(hào)燈,延時(shí)400ms后所有LED燈閃爍兩次。
花樣子程序四: LED燈從右向左依次點(diǎn)亮,延時(shí)400ms后(從左向右數(shù))熄滅1、5號(hào)燈,延時(shí)400ms后熄滅2號(hào)燈,延時(shí)400ms后熄滅3號(hào)燈,延時(shí)400ms后熄滅4號(hào)燈,延時(shí)400ms后熄滅6號(hào)燈,延時(shí)400ms后所有LED燈閃爍兩次。
花樣子程序五:LED燈從右向左依次點(diǎn)亮,延時(shí)400ms后(從左向右數(shù))熄滅1、3號(hào)燈,延時(shí)400ms后熄滅2號(hào)燈,延時(shí)400ms后依次熄滅4、5、6號(hào)燈,延時(shí)400ms后所有LED燈閃爍兩次。
花樣子程序六:LED燈從右向左依次點(diǎn)亮,延時(shí)400ms后(從左向右數(shù))熄滅1、6號(hào)燈,延時(shí)400ms后熄滅2、4號(hào)燈,延時(shí)400ms后熄滅3號(hào)燈,延時(shí)400ms后熄滅5號(hào)燈,延時(shí)400ms后所有LED燈閃爍兩次。
基于Arduino平臺(tái)的流水燈的硬件電路由三部分組成,第一部分是Arduino開發(fā)系統(tǒng)、第二部分是輸出模塊6個(gè)發(fā)光二極管和電阻構(gòu)成的負(fù)載電路,第三部分是電源電路(本次使用USB供電模式)。在該本項(xiàng)目中,共用到表1所列的元器件。
通過Fritzing(圖形化Arduino電路開發(fā)軟件)。硬件設(shè)計(jì)的電路圖如圖1示。
電路輸出部分電路:6個(gè)發(fā)光二極管采用共陰極接法,陰極通過限流電阻R與Arduino開發(fā)系統(tǒng)電源地連接,陰極連接到開發(fā)系統(tǒng)的數(shù)字I/O口上,通過I/O輸出高低電平驅(qū)動(dòng)LED發(fā)光二級(jí)管的熄滅和點(diǎn)亮。
本文設(shè)計(jì)了6種流水燈控制子程序,LED發(fā)光二極管可以根據(jù)控制程序?qū)崿F(xiàn)不同狀態(tài)的轉(zhuǎn)換。具體設(shè)計(jì)的子程序如圖2所示。
本論文以arduino開發(fā)系統(tǒng)為平臺(tái),利用arduino系統(tǒng)的數(shù)字I/O實(shí)現(xiàn)對(duì)6個(gè)LED發(fā)光二極管的實(shí)時(shí)控制,同時(shí)設(shè)計(jì)了流水燈的硬件電路和軟件程序,通過arduino硬件平臺(tái)對(duì)結(jié)果進(jìn)行了驗(yàn)證,達(dá)到了預(yù)期的效果。