邱娟
摘要:本文使用了基于ATmega328的Arduino UNO開發(fā)板編程實(shí)現(xiàn)的招財貓電路,具有人體感應(yīng)、眼睛漸變、前后招手、液晶顯示節(jié)日賀語或者廣告詞的功能。電路主要包括四部分內(nèi)容:1 小貓的眼睛用的是RGB三基色LED,可以綻放七彩的光芒;2 小貓的鼻子用的是人體傳感器,可以檢測有人進(jìn)入感應(yīng)范圍;3小貓的爪子用舵機(jī)正反轉(zhuǎn)60度,實(shí)現(xiàn)招手效果;4 通過液晶顯示設(shè)定的中英文字符。
關(guān)鍵詞:Arduino 招財貓 智能電子
中圖分類號: TM383 文獻(xiàn)標(biāo)識碼:A 文章編號:1672-3791(2018)05(b)-0000-00
0 引言
2014年9月,李克強(qiáng)總理發(fā)出“大眾創(chuàng)業(yè)、萬眾創(chuàng)新”的號召,全國范圍掀起一股創(chuàng)新、創(chuàng)業(yè)新浪潮,我們的創(chuàng)客校園也開展得如火如荼,學(xué)校本著培養(yǎng)“有創(chuàng)意、敢創(chuàng)新和會創(chuàng)造”的創(chuàng)新創(chuàng)意人才的目標(biāo),精選了具有基于開源系統(tǒng)、易于動手實(shí)踐、激發(fā)創(chuàng)新精神、實(shí)現(xiàn)創(chuàng)新制作這些特點(diǎn)的電子創(chuàng)意類課程作為創(chuàng)客教育的載體,有Arduino應(yīng)用、激光切割、易企秀制作、3D打印等等,獲得同學(xué)們的一致認(rèn)可,同學(xué)們創(chuàng)新意識高漲,學(xué)習(xí)后效果很好。其中,Arduino能通過各種各樣的傳感器來感知環(huán)境,通過控制燈光、馬達(dá)和其他的裝置來反饋、影響環(huán)境,下面給大家一下基于Arduino的招財貓電路的設(shè)計(jì)過程。
1 硬件電路設(shè)計(jì)
招財貓的硬件電路見圖1,主要由四個部分構(gòu)成,分別是PWM調(diào)光電路、人體傳感器電路、舵機(jī)電路和液晶顯示電路。
1.1 PWM調(diào)光電路
RGB三基色LED,是由紅(Red)綠(Green)藍(lán)(Blue)三種顏色的發(fā)光半導(dǎo)體材料封裝在同一燈管里組成的,它的燈管一般作半透明的霧狀處理,不同波長的光線在半透明燈管透射出來時,會產(chǎn)生疊加效應(yīng)。將紅、綠、藍(lán)三原色的色光以不同的比例相加,可以產(chǎn)生多種多樣的色光。生活中彩色電視、舞臺燈光也是采用加法三原色混合的原理。這里向彩燈輸出不同占空比范圍的PWM波產(chǎn)生漸變的效果。
1.2 人體傳感器電路
人體模塊是基于紅外線技術(shù)的自動控制產(chǎn)品,具有靈敏度高,可靠性強(qiáng),微功耗等特點(diǎn),當(dāng)被測物體進(jìn)入感應(yīng)模塊的有效檢測范圍時,模塊經(jīng)判斷有效后輸出高電平信號,控制舵機(jī)開始轉(zhuǎn)動。
1.3 舵機(jī)電路
舵機(jī)是用來控制舵的,比如輪船的方向舵,飛機(jī)的方向舵、升降舵等,這些都需要控制一定的角度,但并非需要連續(xù)旋轉(zhuǎn)。所以一般舵機(jī)都是只能轉(zhuǎn)動一定的角度,我們這里說的舵機(jī)主要應(yīng)用于航模、車模和監(jiān)控等領(lǐng)域,一般是正負(fù) 90 度之間轉(zhuǎn)動。舵機(jī)的控制信號實(shí)際上是 PWM 信號,周期不變,高電平的時間決定舵機(jī)的轉(zhuǎn)動角度。
1.4 液晶顯示電路
使用Arduino控制LCD1602液晶顯示器這里用四線制接法,IDE開發(fā)環(huán)境提供了LCD控制庫LiquidCrystal,在初始化程序中直接調(diào)用庫函數(shù),就可以實(shí)現(xiàn)開關(guān)顯示和滾動字幕,相對于單片機(jī)而言,接線和編程都比較簡單。
2 軟件程序編寫
Arduino語言提供了多種類型的系統(tǒng)函數(shù),要使用的時候可以直接調(diào)用。在控制RGB三基色LED的程序中,用到指定針腳模式的函數(shù)原型:pinMode (pin, mode)
其中,pin為要設(shè)定的針腳,在Arduinno UNO中可以取值范圍為0-13,表示針腳編號; mode為針腳模式,它的值可以為INPUT(輸入)和OUTPUT(輸出)。例如pinMode(9, OUTPUT);功能是將9號針腳設(shè)置為輸出模式。
在將對應(yīng)的針腳設(shè)置為輸出模式后,還需要設(shè)置對應(yīng)針腳的輸出電壓。模擬針腳可以輸出0-5V之間的電壓,可以使用analogWrite()函數(shù)設(shè)置。該函數(shù)的原型如下:analogWrite(pin,value)
其中,pin表示要設(shè)置的針腳,可以是3、5、6、9、10和11號針腳(Arduino開發(fā)板上針腳標(biāo)號前帶“~”的針腳),具有PWM輸出能力,可以產(chǎn)生0~255占空比范圍的PWM波(PWM的中文譯名是脈沖寬度調(diào)制,它是利用微處理器的數(shù)字輸出來控制模擬電路的一種技術(shù))。Value 表示占空比,它的值可以是0~255,占空比越大,輸出的電壓越大。例如:analogWrite(9, 100);9號針腳接藍(lán)色光控制線,輸出占空比100的PWM波,藍(lán)燈點(diǎn)亮。
招財貓的主循環(huán)程序如下,如果A0State讀入是高電平,說明有人進(jìn)入?yún)^(qū)域,LED亮度開始漸變,舵機(jī)開始轉(zhuǎn)動。
// 主循環(huán)
void loop()
{
A0State = digitalRead(inPin);
while(A0State == LOW);
for (int i = 60; i <= 90; i = i + (1))
{
brightness = (i-60)*4; // 下一個循環(huán)調(diào)整led亮度
analogWrite(led, brightness); // 設(shè)置了led的亮度
myservo.write(i);
delay(90);
}
for (int i = 90; i >= 60; i = i + (-1))
{
brightness = (i-60)*4;
analogWrite(led, brightness);
myservo.write(i);
delay(90);
}
}
3 總結(jié)
通過本文的介紹,希望大家認(rèn)識基于Arduino的這款招財貓電路。Arduino是一款便捷靈活、方便上手的開源電子原型平臺,可簡單地與傳感器、各式各樣的電子組件連接,可以幫助你將各種創(chuàng)新想法變?yōu)楝F(xiàn)實(shí),是非電子類和電子類專業(yè)讀者實(shí)現(xiàn)電子類創(chuàng)新制作的最好途徑。
4 參考文獻(xiàn)
[1] 楊佩璐、任昱衡.Arduino入門很簡單.第1版.清華大學(xué)出版社.2015年3月.90-93.
[2] [美] Michael.McRoberts著.Arduino從基礎(chǔ)到實(shí)踐.電子工業(yè)出版社.2013年3月.104-107.