Arduino Due有14個(gè)數(shù)字I/O,6個(gè)模擬I/O,一個(gè)復(fù)位開關(guān)十饥,一個(gè)ICSP下載口窟勃,7-12v電源供電。
14個(gè)數(shù)字i/o逗堵,0-13引腳秉氧,模擬引腳0-5,有power蜒秤、tx汁咏、rx、pwm作媚∪撂玻控制器 Atmega168/Atmega328。
操作電壓 5v纸泡,推薦輸入電壓7-12v漂问,極限輸入電壓6-20v,14個(gè)數(shù)字中有6個(gè)pwm輸出女揭,為為3蚤假,5,6吧兔,9磷仰,10,11境蔼,i/o直流電流40mA芒划,3.3v腳電流50mA,5v直流電源(說(shuō)明書沒有提供上限約為300ma)欧穴,閃存為16kB(atmega168)民逼,32k(atmega328),2k用于引導(dǎo)程序涮帘,sram1k(atmaga168)拼苍,2k(atmega328),eeprom512b(atmega168)调缨,1k(atmega328)疮鲫,時(shí)鐘頻率16mHZ,尺寸6*5.33cm弦叶,串行通信(0,1)俊犯,rx,tx伤哺,外部中斷2,3(外部中斷0,外部中斷1)燕侠,SPI通信10(ss),11(mosi),12(miso),13(sck)者祖,板上另外一處ICSP引腳。
led在13腳上绢彤, i2c或者twi通信a4(sda)七问,a5(scl),另外有一個(gè)可復(fù)位的熔斷器茫舶,usb超過(guò)500ma械巡,它將自動(dòng)斷開。0,1為串口通信饶氏,rx讥耗,tx(0,1)疹启,2,3()為觸發(fā)中斷引腳葛账,0-13單個(gè)引腳提供最大電流40ma。3,5,6,9,10,11為6路pwm輸出皮仁,10,11,12,13為spi通信籍琳,10(ss),11(mosi),12(miso),13(sck),reset重啟arduino贷祈,低電位有效趋急,atmega16u2usb轉(zhuǎn)串口的轉(zhuǎn)化器,自動(dòng)恢復(fù)保險(xiǎn)絲(PTC),ICSP供atmega16u2使用势誊。
mega有54個(gè)i/o(14個(gè)pwm)呜达,16個(gè)模擬i/o,4對(duì)串行數(shù)據(jù)通信口(uart)粟耻,一個(gè)復(fù)位開關(guān)查近,支持usb和直流電源供電。處理器atmega2560挤忙,閃存256k霜威,其中8k用于引導(dǎo)程序,sram8k册烈,eeprom4k戈泼,時(shí)鐘頻率16mhz。
0(rx0)1(tx0)赏僧,19(rx1)18(tx1)大猛,17(rx2)16(tx2),15(rx3)14(tx3)。
外部中斷淀零,2外部中斷0,3外部中斷1,21外部中斷2,20外部中斷3,19外部中斷4,18外部中斷5挽绩。
pwm0-13,spi通信驾中,51(mosi),53(ss),50(miso),52(sck)唉堪,板載led13模聋,i2c,twi通信20(sda),21(scl)巨坊。arduino開發(fā)環(huán)境適宜avr-gcc和一些其他開源軟件為基礎(chǔ)撬槽,采用java編寫的此改,主要安裝驅(qū)動(dòng)以及下載時(shí)選擇正確的端口和板子
ansi c標(biāo)準(zhǔn)規(guī)定的32個(gè)關(guān)鍵字
auto,break,case,char,const(程序中不可更改的常量值),continue,default,do,double,else,enum,extern,float,for,goto,if,int,long,
register,return,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile,while.
value.charat(5)//返回value字符串的第五個(gè)字符趾撵;value.length返回字符的長(zhǎng)度;string不能轉(zhuǎn)換浮點(diǎn)型變量共啃,static靜態(tài)變量
函數(shù)注釋//或者/*xxxxxxxxxxx*/
c語(yǔ)言預(yù)算符
算數(shù)運(yùn)算符占调,%取模;
關(guān)系運(yùn)算:==移剪,究珊!=;
邏輯運(yùn)算符:||纵苛,&&剿涮,!攻人;
賦值運(yùn)算符:+=取试,-=,*=怀吻,/=瞬浓,%=,>>=(右移賦值),<<=(左移賦值),&=,|=,~=(非賦值)蓬坡,^=(異或賦值)猿棉;
條件運(yùn)算符:?:屑咳;
位運(yùn)算符~萨赁,<<(位左移),>>(位右移),&,^(異或),|兆龙;
求字節(jié)運(yùn)算符sizeof位迂。
判斷循環(huán)語(yǔ)句表達(dá)方式
if(表達(dá)式)
? ? ? ? ? ? ? ? 語(yǔ)句1
else if(表達(dá)式)
? ? ? ? ? ? ? ? ? ? ?語(yǔ)句2
esle?
? ? ? ? ? ? ? ? ? 語(yǔ)句3
************************************************
switch(表達(dá)式){
case常量表達(dá)式1:
? ? ? ? ? ? ? ? ? ? ? ? ? ?語(yǔ)句1
case常量表達(dá)式2:
? ? ? ? ? ? ? ? ? ? ? ? ?語(yǔ)句2
default:
? ? ? ? ? ? ? ? ? ? ? ? ? ?語(yǔ)句3
}
**************************************
while(表達(dá)式) 語(yǔ)句
do ?
? ? ? ? ? ? ? ?語(yǔ)句
while(表達(dá)式);
*********************************************
for(表達(dá)式1详瑞;表達(dá)式2掂林;表達(dá)式3) 語(yǔ)句
最常見的for(循環(huán)變量賦初值;循環(huán)條件坝橡;循環(huán)變量增量)語(yǔ)句
用while解釋
表達(dá)式1泻帮;while(表達(dá)式2){語(yǔ)句
表達(dá)式3;}
********************************************
用do-while解釋
表達(dá)式1计寇;
do{語(yǔ)句
表達(dá)式3锣杂;}while(表達(dá)式2)
***********************************************
for(脂倦;;)與while(1)相當(dāng)
**************************************************
void setup()和void loop()均為無(wú)返回值的函數(shù)元莫,set up()主要用于初始化赖阻,設(shè)置引腳輸入輸出模式,初始化串口踱蠢,只在上電或重啟執(zhí)行一次火欧,loop()是一個(gè)死循環(huán),讀取引腳狀態(tài)茎截,設(shè)置引腳狀態(tài)苇侵。
arduino基本函數(shù)
pinMode(pin,mode)企锌,pinMode(13榆浓,OUTPUT)
模擬引腳也可當(dāng)做數(shù)字引腳使用a0-a5對(duì)應(yīng)14-19,
digtalWrite(pin撕攒,value)陡鹃,digitalWrite(13,HIGH)
digitalRead(pin)抖坪,讀取引腳高低電平萍鲸,返回值為int型
analogRead(pin)讀取引腳模擬量電壓值,讀取一次花100us時(shí)間柳击,返回值為int型猿推,pin為a0-a5。
analogWrite(pin捌肴,value)通過(guò)pwm在引腳輸出模擬量蹬叭,arduino的pwm的頻率大約為490hz。范圍為0-255對(duì)應(yīng)0-100%状知。
時(shí)間函數(shù)millis()獲取機(jī)器運(yùn)行的時(shí)間秽五,單位ms,返回值為unsigned long饥悴,dealy(ms)坦喘,delayMicroseconds(us),單位us西设。
數(shù)學(xué)庫(kù)瓣铣,min(x,y)贷揽,max(x棠笑,y),abs(x)
串口通信禽绪,Seial.begin(9600)蓖救,if(Serial.available())洪规,Serial.available()返回int型,Serial.read()返回int型循捺。
spi通信
cs芯片選擇斩例,時(shí)鐘sclk為兩條控制線,數(shù)據(jù)線sdi和sdo从橘,sdi為miso(主入從出)念赶,sdo為mosi(主出從入),控制信號(hào)線cs為ss洋满,sclk為sck(串行時(shí)鐘)晶乔,spi允許主設(shè)備和多個(gè)從設(shè)備通信珍坊,sck提供時(shí)鐘牺勾,上升沿發(fā)送,下降沿接收阵漏。在應(yīng)用中為被選中的從設(shè)備的mosi信號(hào)線需要處于高阻狀態(tài)驻民,否則會(huì)影響主設(shè)備與選中設(shè)備間正常的通信。
arduino硬件平臺(tái)
uno采用的是atmega8u2芯片進(jìn)行usb到串行數(shù)據(jù)的轉(zhuǎn)換履怯。due采用的是ftdi usb-to-serial串行驅(qū)動(dòng)芯片回还。avr單片機(jī)的優(yōu)點(diǎn):
引導(dǎo)程序能夠引導(dǎo)芯片通過(guò)串口與計(jì)算機(jī)通信
Serial.print(value,type)叹洲,Serial.print(0x55,BYTE)柠硕,有BYTE,DEC,HEX,OCT
模擬i/o連接著avr單片機(jī)6個(gè)adc管腳,具有10位采樣精度运提,13-260us的轉(zhuǎn)換時(shí)間蝗柔,0-5v的adc輸入電壓范圍。
H橋l293d基本模塊
q1與q4搭配民泵,q2與q3搭配
DIRA,DIRB分別接高低電平實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)癣丧,ENA,ENB可通過(guò)PWM實(shí)現(xiàn)電機(jī)調(diào)速
l298n模塊e1 low,m1任意時(shí)栈妆,1號(hào)電機(jī)不使能胁编;
e1high,m1low鳞尔,1號(hào)電機(jī)正轉(zhuǎn)嬉橙,high,high寥假,1號(hào)電機(jī)反轉(zhuǎn)市框;
e1接pwm引腳,m1接low變速正轉(zhuǎn)昧旨,m1接high變速反轉(zhuǎn)拾给。
vd邏輯電源6.5-12v祥得,vs是電機(jī)驅(qū)動(dòng)電源輸入,建議4.8-35v蒋得。gnd是arduino级及、邏輯電源、電機(jī)驅(qū)動(dòng)電源的公共地额衙,當(dāng)電機(jī)驅(qū)動(dòng)電源低于12v饮焦,可以將vd=vs的跳線帽短接,減少電源輸入窍侧,l298n驅(qū)動(dòng)電流可達(dá)2a县踢,跳線帽需注意,如果vs的電壓大于12v伟件,一定要將跳線帽去掉硼啤,否則vd邏輯電壓超過(guò)12v會(huì)燒壞驅(qū)動(dòng)模塊,不建議使用arduino上的5v電壓作為l298n的邏輯電壓斧账。e1可接low谴返,high,pwm咧织,vd邏輯電壓嗓袱,vs驅(qū)動(dòng)電壓
搖桿:arduino采用10位adc,模擬量變化范圍0-1023习绢,在水平方向a1渠抹,越往右值越小,垂直方向a0闪萄,垂直越往上值越小梧却,map函數(shù)實(shí)現(xiàn)大范圍值轉(zhuǎn)換為0-255實(shí)現(xiàn)數(shù)據(jù)等比映射。返回值為long型桃煎,舉例map(i篮幢,511,1023,0,255),搖桿x为迈,y為模擬接口三椿,z為一個(gè)按鈕開關(guān)數(shù)字接口。lcd1602葫辐,2行16個(gè)英文字符搜锰,芯片工作電壓,4.5-5.5v耿战,5v時(shí)工作電流2.0ma蛋叼,vss,vdd,rs狈涮,e狐胎,d0,d1,d2,d3,d4歌馍,d5握巢,d6,d7,a松却,k暴浦。
ethernet shield上ethernet和sd卡公用spi占用10(ss),11(mosi),12(miso),13(sck),2(w5100外部中斷),3(w5100片選),4(sd卡片選),同一時(shí)間只能啟動(dòng)ethernet和sd卡其中一個(gè)功能晓锻。當(dāng)使用sd卡時(shí)歌焦,定義時(shí)SS需改為引腳4。使用w5100時(shí)砚哆,把引腳10和4分別置為低電平和高電平
舵機(jī)(又叫伺服電機(jī))的工作原理:控制信號(hào)一般一個(gè)周期為20ms独撇,該脈沖高電平的寬度控制著舵機(jī)的角度,0.5ms窟社,0度券勺;1ms绪钥,45度灿里;15ms,90度程腹;2ms匣吊,135度,2.5ms寸潦,180度色鸳。舵機(jī)有三根線,正極為紅色见转,地一般是黑色或者棕色命雀,信號(hào)線一般為黃色或者白色。delayMicroseconds(us)最多可實(shí)現(xiàn)16383us的延遲斩箫。當(dāng)控制多個(gè)多個(gè)舵機(jī)時(shí)吏砂,不要用arduino直接供電,采用電源供電乘客,但要將其與arduino共地狐血。一般最中間那根紅色線為vcc。
步進(jìn)電機(jī)易核,步距角l=360/(轉(zhuǎn)子齒數(shù)*運(yùn)行拍數(shù))匈织,l=360/(50*4)=1.8整步,l=360/(50*8)=0.9半步。
數(shù)碼管缀匕,一位8段數(shù)碼管纳决,分為共陰極和共陽(yáng)極,每個(gè)字段接一個(gè)220歐姆的電阻乡小,共陽(yáng)極數(shù)碼管(dp-a)顯示0-9岳链,電平狀況(C0,f9,A4劲件,b0掸哑,99,92零远,82,f8苗分,80,90,)a-f(88,83,c6牵辣,a1摔癣,86,8e纬向。)择浊,共陰極數(shù)碼管(dp-a)接線方式。顯示0-9逾条,電平狀況(3f,06,5b琢岩,4f,66,6d师脂,7d担孔,07,7f,6f)a-f(77,7c吃警,39,5e糕篇,79,71),以上沒有啟用小數(shù)點(diǎn)酌心。
四位8段數(shù)碼管
1拌消,2,3,4為公共端(以共陽(yáng)極為例)要點(diǎn)亮第4個(gè)數(shù)碼管的小數(shù)點(diǎn)4接正極,dp接負(fù)極安券,一個(gè)字段接220歐姆墩崩,電流約為15ma,則一位8*15ma=120ma完疫,5v引腳上限為300ma泰鸡,數(shù)碼管為紅光(5-2)/1k=3ma,3ma*8=24ma壳鹤,4位時(shí)4*24ma=96ma盛龄,也可以支持,只是亮度會(huì)暗,四位時(shí)選用1k來(lái)點(diǎn)亮數(shù)碼管余舶,即a-dp全部接1k電阻啊鸭,1,2,3,4直接接入arduino控制端口,為了保護(hù)arduino板子匿值,可以通過(guò)三極管來(lái)實(shí)現(xiàn)完美赠制,9013(npn,ebc),9014,8050npn(平面朝向自己自左往右ebc)8550pnp(ebc)挟憔,pnp的e極需要接電源正極钟些,
硅管的壓降為0.7v,鍺管為0.2v绊谭,Ib=(5-0.7)/1k=4.3ma政恍,用三極管后,1,2,3,4可接三極管e極达传,a-dp接220歐姆電阻篙耗,9013硅管,放大倍數(shù)64-202宪赶,Ic最大為500ma宗弯,
led的使用,色環(huán)讀值發(fā)搂妻,功率蒙保,紅led(2-2.2v),黃led(1.8-2.0v)叽讳,綠led(3-3.2v)追他,額定電壓下電流均為15-20ma,用紅led時(shí)分壓電阻選擇岛蚤,紅黃(5-2)/0.015=200歐姆,綠(5-3)/0.015=133歐姆懈糯,綠led電阻功率2*0.015=0.03涤妒,紅黃電阻功率為3*0.015=0.045瓦特,因此選1/8或者1/4功率赚哗,色環(huán)電阻有碳膜電阻和金屬膜電阻她紫,金屬膜的電阻精度較高,從環(huán)數(shù)上屿储,四環(huán)或者五環(huán)贿讹,最后一環(huán)表示精度級(jí)別。
黑色0够掠,棕色1民褂,紅色2,橙色3,黃色4赊堪,綠色5面殖,藍(lán)色6,紫色7哭廉,灰色8脊僚,白色9,
直接由5v接下拉電阻和微動(dòng)開關(guān)辽幌,5v加上拉電阻和微動(dòng)開關(guān),上下拉電阻選擇10k
使用紅外接近開關(guān)等傳感器時(shí)要判斷傳感器觸發(fā)后的輸出電平椿访,
lm35為模擬傳感器
當(dāng)環(huán)境溫度為0度時(shí)舶衬,lm35輸出0v,溫度每升高1度赎离,輸出電壓增加10mv逛犹,溫度為100度時(shí),輸出電壓100*10mv=1000mv=1v梁剔,根據(jù)這個(gè)特點(diǎn)虽画,val/1024*5v=某個(gè)電壓值單位伏特,轉(zhuǎn)換為毫伏荣病,在除以10就可得到溫度值码撰,如41/1024*5*1000/10=20.02,
繼電器觸點(diǎn)負(fù)載能力个盆,120(ac)*1a或者24v(dc)*1a脖岛,分為低電平和高電平觸發(fā),繼電器使用時(shí)最好反接一個(gè)二極管颊亮,因?yàn)槔^電器線圈會(huì)產(chǎn)生感應(yīng)電壓柴梆,會(huì)對(duì)電路沖擊,二極管采用1n4148,1n4007终惑,1n4001绍在,Ib=(5-0.7)/4.7K=0.9ma,
光敏電阻在黑暗條件下的電阻可達(dá)1-10兆歐雹有,在強(qiáng)光條件下偿渡,它的阻值僅有幾百至數(shù)千歐姆,光敏電阻接上下拉電阻選擇10k霸奕。
多路開關(guān)溜宽,正面放置,默認(rèn)13,46常閉质帅,23,45常開适揉,開關(guān)按下時(shí)留攒,23連接,45連接涡扼,13,46斷開
插頭
雙刀雙擲繼電器
默認(rèn)高電平觸發(fā)稼跳,9,12引腳電源正負(fù)極吃沪,接低電平時(shí)電機(jī)停止汤善,接高電平時(shí)電源接通,如果將1與8,5與4連接票彪,則低電平時(shí)红淡,電流流向9,5上,(4,電機(jī),1)降铸,8下在旱,12幸撕;接高電平時(shí)9,5下锥咸,(1,電機(jī)挖垛,4),8上舔清,12。即可實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn)胚迫。將改裝的繼電器與另一個(gè)雙刀雙擲繼電器連接起來(lái)摊求,可以實(shí)現(xiàn)電機(jī)邓了,正反轉(zhuǎn)毡泻,停止胜茧。
第一個(gè)繼電器為低電平時(shí),電機(jī)停轉(zhuǎn)仇味,第一個(gè)高呻顽,改變第二個(gè)的高低電平,就可實(shí)現(xiàn)正反轉(zhuǎn)丹墨。
繼電器實(shí)現(xiàn)電路內(nèi)部結(jié)構(gòu)
不發(fā)光二極管正負(fù)判斷廊遍,1n4148黑色環(huán)頭和1n540的白色環(huán)均為負(fù)極,發(fā)光二極管短引腳為負(fù)極带到,當(dāng)不能根據(jù)引腳長(zhǎng)度判斷時(shí)昧碉,可以通過(guò)發(fā)光二極管頭內(nèi)部判斷,大頭一側(cè)為負(fù)極揽惹。
2、3號(hào)繼電器控制著兩個(gè)繼電器實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn)和停止四康,2號(hào)繼電器不使能搪搏,1號(hào)電機(jī)停止,使能后1號(hào)高低即可改變轉(zhuǎn)向闪金,同理3號(hào)管理4號(hào)疯溺。+-接電機(jī)驅(qū)動(dòng)電源论颅。
土壤濕度傳感器
水泵工作電壓dc6-12v,需要用繼電器來(lái)驅(qū)動(dòng)
對(duì)射式光電開關(guān)囱嫩,由發(fā)射端和接收端兩部分組成恃疯。分為常開式和常閉式,本例為常閉式墨闲。
發(fā)射接收今妄,紅色vcc,黑色gnd鸳碧,黃色vo盾鳞,兩者之間沒有障礙物時(shí),黃線輸出高電平瞻离,有障礙物時(shí)輸出低電平腾仅,(常開式輸出與此相反)。
紅外接近開關(guān)套利,當(dāng)探頭前方無(wú)障礙時(shí)輸出高電平推励,有障礙時(shí)輸出低電平。上面有一個(gè)電位器肉迫,可以用于調(diào)節(jié)障礙的檢測(cè)距離验辞。
微動(dòng)開關(guān)
采用ethernet擴(kuò)展板時(shí)昂拂,同一時(shí)間只能使用其中一個(gè)受神,4號(hào)引腳給sd卡使用,10號(hào)引腳也必須設(shè)置為output模式格侯,否則sd庫(kù)成員函數(shù)不能正常工作鼻听。
lcd1602,可以顯示2*16個(gè)字符联四,每行16個(gè)字元撑碴,可以顯示英文字母、希臘字母朝墩、標(biāo)點(diǎn)符號(hào)和數(shù)字符號(hào)醉拓,包括訊息的卷動(dòng)(往左和往右卷動(dòng)),顯示游標(biāo)和led背光收苏。引腳1vss接地亿卤,2,vdd接電源+5伏鹿霸,3排吴,vo或者vee,對(duì)比(0-5v)可接一個(gè)1k電阻或者利用可變電阻調(diào)整適當(dāng)?shù)膶?duì)比懦鼠。4钻哩,rs(寄存器選擇)(1:d0-d7當(dāng)做資料解釋屹堰,0:d0-d7當(dāng)做指令解釋),5街氢,r/w扯键,(1:從lcd讀取資料,0:寫資料到lcd珊肃,因?yàn)楹苌購(gòu)膌cd這端讀取資料荣刑,可將此腳位接地以節(jié)省i/o腳位)
。6近范,e嘶摊,enable
7,d0评矩,bit叶堆,0,lsb
8斥杜,d1虱颗,bit1
9,d2蔗喂,bit2
10忘渔,d3,bit3
11缰儿,d4畦粮,bit4
12,d5乖阵,bit5
13宣赔,d6,bit6
14瞪浸,d7儒将,bit7,msb
15对蒲,a+钩蚊,背光(串接330歐姆的電阻到電源)
16,k-蹈矮,背光(gnd)砰逻。日立HD44780相容的lcd有4bit和8bit兩種使用模式,使用4位bit模式泛鸟,節(jié)省i/o腳位诱渤,通訊時(shí)只需用到4個(gè)高位元(d4-d7),d0-d3可以不用接谈况,每個(gè)發(fā)送到lcd的資料會(huì)被分兩次傳送勺美,先送4個(gè)高位元,然后才送低4位碑韵,