Arduino的詳細介紹(基于Mega2560)(轉載)

很早之前入手了一塊Arduino

Mega2560,當時只是認為其操作簡單且更加人性化狭莱,開源方便奥裸,想了解了解。最新搞項目想用Arduino試試控制8路舵機证杭,但網上找的Servo庫大多說只支持9田度,10接口,很是惱火(資料怎么寫就怎么搬解愤,到底是不是只支持9镇饺,10接口有幾個知道?又有幾個知道為什么送讲?)奸笤。

另外本人長期逛各種論壇惋啃,發(fā)現(xiàn)國內民間創(chuàng)客極客水平還是普遍低下的,Arduino雖說開源但國內確實找不到多少參考資料监右,這無形之中成了小小的阻礙边灭,于是本人花了點時間為廣大Arduino愛好者整理翻譯此份資料,一是想豐富網上資源健盒,二是以一種更加簡便的方式帶部分人入門绒瘦。了解原理才能談創(chuàng)意,不求甚解只能做個小玩家扣癣。

了解Arduino的最好平臺當然是官網惰帽,我相信官網肯定不會遺漏自己產品最有特色的東西,因此以它為參考絕對沒錯父虑。另外该酗,必要部分輔助以百科,以及各位廣大親愛博友的資料(就不一一列舉了士嚎,在此謝過)呜魄。本文以Arduino Mega 2560為基礎解釋,其他板子都差不多航邢。

一:概述

Arduino Mega 2560是基于ATmega2560的微控制板耕赘,有54路數(shù)字輸入/輸出端口(其中15個可以作為PWM輸出),16路模擬輸入端口膳殷,4路UART串口操骡,16MHz的晶振,USB連接口赚窃,電池接口册招,ICSP頭和復位按鈕。簡單地用USB連接電腦或者用交直流變壓器就能使用勒极。

Mega 2560 是Arduino Mega系列的升級版是掰。Mega 2560與之前的板子(最大)不同在于:它沒用FTDI USB-to-serial驅動芯片,而是用ATmega16U2編程作為USB-to-serial傳輸器(V1版本使用8U2)辱匿。

總結如下:

控制器ATmega2560

工作電壓5V

輸入電壓(推薦)7-12V

輸入電壓(限制)6-20V

數(shù)字I/0口54 (含15路PWM輸出)

模擬輸入口16

每個I/0口直流電流40 mA

3.3v口直流電流50 mA

閃存(Flash Memory)256 KB(其中8 KB用作bootloader)

靜態(tài)存儲器(SRAM)8 KB

EEPROM4 KB

時鐘16 MHz

二:電源

這部分就不說了键痛,涉及3.3v和5v供電。

三:存儲器

ATmega2560有256k的閃存可存儲程序(其中8kb用作bootloader)匾七,有8kb的SRAM和4kb的EEPROM(可使用EEPROM library(點擊看詳細介紹)進行讀寫)絮短。

(1)RAM

隨機存取存儲器(英文:random access memory,RAM)又稱作“隨機存儲器”昨忆,是與CPU直接交換數(shù)據的內部存儲器丁频,也叫主存(內存)。它可以隨時讀寫,而且速度很快席里,通常作為操作系統(tǒng)或其他正在運行中的程序的臨時數(shù)據存儲媒介叔磷。存儲單元的內容可按需隨意取出或存入,且存取的速度與存儲單元的位置無關的存儲器奖磁。這種存儲器在斷電時將丟失其存儲內容改基,故主要用于存儲短時間使用的程序。 按照存儲信息的不同署穗,隨機存儲器又分為靜態(tài)隨機存儲器(英文:Static RAM寥裂,SRAM)和動態(tài)隨機存儲器(英文Dynamic RAM,DRAM)案疲。

SRAM不需要刷新電路即能保存它內部存儲的數(shù)據。而DRAM(Dynamic Random?Access Memory)每隔一段時間麻养,要刷新充電一次褐啡,否則內部的數(shù)據即會消失,因此SRAM具有較高的性能鳖昌,但是SRAM也有它的缺點备畦,即它的集成度較低洁桌,相同容量的DRAM內存可以設計為較小的體積畔勤,但是SRAM卻需要很大的體積,且功耗較大跛蛋。所以在主板上SRAM存儲器要占用一部分面積糕档。SRAM的速度快但昂貴莉恼,一般用小容量的SRAM作為更高速CPU和較低速DRAM

之間的緩存(cache)。

(2)EEPROM

帶電可擦可編程只讀存儲器--一種掉電后數(shù)據不丟失的存儲芯片速那。 EEPROM 可以在電腦上或專用設備上擦除已有信息俐银,重新編程。一般用在即插即用端仰。EEPROM的擦除不需要借助于其它設備捶惜,它是以電子信號來修改其內容的,而且是以Byte為最小修改單位荔烧,不必將資料全部洗掉才能寫入吱七,徹底擺脫了EPROM?Eraser和編程器的束縛。

(3)閃存(Flash Memory)鹤竭,EEPROM的變種:

在斷電情況下仍能保持所存儲的數(shù)據信息分為NOR型NAND型閃存(NAND型更為普遍常見踊餐,一般說的是NAND型):

內存和NOR型閃存的基本存儲單元是bit,用戶可以隨機訪問任何一個bit的信息诺擅。

而NAND型閃存的基本存儲單元是頁(Page)市袖。每一頁的有效容量是512字節(jié)的倍數(shù)。NAND型閃存以塊為單位進行擦除操作(一塊一塊地擦)。閃存的寫入操作必須在空白區(qū)域進行苍碟,如果目標區(qū)域已經有數(shù)據酒觅,必須先擦除后寫入,因此擦除操作是閃存的基本操作微峰。一般每個塊包含32個512字節(jié)的頁舷丹,容量16KB;而大容量閃存采用2KB頁時蜓肆,則每個塊包含64個頁颜凯,容量128KB。

簡言之仗扬,RAM數(shù)據斷電不可保存症概,因而常用于CPU與外設之間做緩存用;EEPROM掉電數(shù)據不丟失早芭,用于編程讀寫使用彼城;有時由于需要改寫的數(shù)據量比較大,因而在EEPROM基礎上出現(xiàn)了Flash Memory(NAND型)退个。我們編寫好程序之后就是在bootloader引導下下載到Flash Memory里面的(因為每次程序下載都有重新刷新一個區(qū)域塊來保存下載的程序募壕,因而使用Flash Memory)。我相信新手對各種存儲器都會有一定了解了语盈。

四:輸入輸出

54路接口都可作為輸入輸出舱馅,并使用pinMode(), digitalWrite()digitalRead()(點擊看詳細介紹)功能。5v電壓操作刀荒,每個接口的電流最大40mA并且接口有內置20-50千歐的上拉電阻代嗤。另外,有的接口有特殊功能照棋。

Serial(串口):

Serial 0:0 (RX) and 1 (TX);

Serial 1: 19 (RX) and 18 (TX);

Serial 2: 17 (RX) and 16 (TX);

Serial 3: 15 (RX) and 14 (TX).

一共四組串口资溃。其中Serial0也被連接到Tmega16U2 USB-to-TTL Serial芯片(上文有介紹,我們USB連接電腦用的就是這個串口)烈炭。RX接收數(shù)據溶锭,TX傳輸數(shù)據。

External Interrupts(外部中斷):

2 (interrupt 0),

3 (interrupt 1),

18 (interrupt 5),

19 (interrupt 4),

20 (interrupt 3),

21 (interrupt 2)符隙。

每個引腳都可配置成低電平觸發(fā)趴捅,或者上升、下降沿觸發(fā)霹疫。詳見attachInterrupt()(點擊看詳細介紹)功能拱绑。

PWM(脈沖調制):

2~13口;

44~ 46口丽蝎。

提供8位PWM輸出猎拨。由analogWrite()(點擊看詳細介紹)功能實現(xiàn)膀藐。

SPI(串行外設接口):

50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS)。使用SPI ?library(點擊看詳細介紹)庫實現(xiàn)红省。

SPI额各,是一種高速的,全雙工吧恃,同步的通信總線虾啦,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳痕寓,同時為PCB的布局上節(jié)省空間傲醉,提供方便,正是出于這種簡單易用的特性呻率,如今越來越多的芯片集成了這種通信協(xié)議硬毕。

SPI總線系統(tǒng)是一種同步串行外設接口,它可以使MCU與各種外圍設備以串行方式進行通信以交換信息礼仗。外圍設置FLASHRAM昭殉、網絡控制器、LCD顯示驅動器藐守、A/D轉換器和MCU等。SPI總線系統(tǒng)可直接與各個廠家生產的多種標準外圍器件直接接口蹂风,該接口一般使用4條線:串行時鐘線(SCLK)卢厂、主機輸入/從機輸出數(shù)據線MISO、主機輸出/從機輸入數(shù)據線MOSI和低電平有效的從機選擇線CS(有的SPI接口芯片帶有中斷信號線INT惠啄、有的SPI接口芯片沒有主機輸出/從機輸入數(shù)據線MOSI)慎恒。

SPI的通信原理很簡單,它以主從方式工作撵渡,這種模式通常有一個主設備和一個或多個從設備融柬,需要至少4根線,事實上3根也可以(用于單向傳輸時趋距,也就是半雙工方式)粒氧。也是所有基于SPI的設備共有的,它們是SDI(數(shù)據輸入)节腐、SDO(數(shù)據輸出)外盯、SCLK(時鐘)、CS(片選)翼雀。

(1)MOSI– SPI總線主機輸出/ 從機輸入(SPI Bus Master Output/Slave?Input)饱苟;

(2)MISO– SPI總線主機輸入/ 從機輸出(SPI Bus Master Input/Slave?Output);

(3)SCLK –時鐘信號狼渊,由主設備產生箱熬;

(4)CS – 從設備使能信號,由主設備控制(Chip select),有的IC此pin腳叫SS城须。

其中CS是控制芯片是否被選中的蚤认,也就是說只有片選信號為預先規(guī)定的使能信號時(高電位或低電位),對此芯片的操作才有效酿傍。這就允許在同一總線上連接多個SPI設備成為可能烙懦。

接下來就負責通訊的3根線了。通訊是通過數(shù)據交換完成的赤炒,這里先要知道SPI是串行通訊協(xié)議氯析,也就是說數(shù)據是一位一位的傳輸?shù)摹_@就是SCLK時鐘線存在的原因莺褒,由SCK提供時鐘脈沖掩缓,SDI,SDO則基于此脈沖完成數(shù)據傳輸遵岩。數(shù)據輸出通過?SDO線你辣,數(shù)據在時鐘上升沿或下降沿時改變,在緊接著的下降沿或上升沿被讀取尘执。完成一位數(shù)據傳輸舍哄,輸入也使用同樣原理。這樣誊锭,在至少8次時鐘信號的改變(上沿和下沿為一次)表悬,就可以完成8位數(shù)據的傳輸。在點對點的通信中丧靡,SPI接口不需要進行尋址操作蟆沫,且為全雙工通信,顯得簡單高效温治。在多個從設備的系統(tǒng)中饭庞,每個從設備需要獨立的使能信號,硬件上比I2C系統(tǒng)要稍微復雜一些熬荆。

:現(xiàn)有1舟山,2號設備支持SPI接口,則可以都掛到主控的SPI線上惶看,之后如果要控制1號設備捏顺,則由主控發(fā)送CS=1號,選中1號設備纬黎,那么1號設備就可以通過MOSI幅骄,MISO兩根線在SCLK時鐘控制下和主機進行通信了。

LED:

13引腳本今。這是板上自帶的LED燈拆座,高電平亮主巍,低電平滅。

TWI:

20 (SDA) 和21 (SCL)挪凑。使用Wire library(點擊查看詳細介紹)實現(xiàn)功能孕索。

TWI(Two—wire Serial Interface)接口是對I^2C總線接口的繼承和發(fā)展,完全兼容I^2C總線躏碳,具有硬件實現(xiàn)簡單搞旭、軟件設計方便、運行可靠和成本低廉的優(yōu)點菇绵。TWI由一根時鐘線和一根傳輸數(shù)據線組成肄渗,以字節(jié)為單位進行傳輸。TWI_SCL\TWI_SDA是TWI總線的信號線咬最。SDA是雙向數(shù)據線翎嫡,SCL是時鐘線SCL。在TWI總線上傳送數(shù)據永乌,首先送最高位惑申,由主機發(fā)出啟動信號,SDA在SCL 高電平期間由高電平跳變?yōu)榈碗娖匠岢缓笥芍鳈C發(fā)送一個字節(jié)的數(shù)據圈驼。數(shù)據傳送完畢,由主機發(fā)出停止信號望几,SDA在SCL 高電平期間由低電平跳變?yōu)楦唠娖健?/p>

模擬輸入:

Mega2560有16個模擬輸入,每個提供10位的分辨率(即2^10=1024個不同的值)碗脊。默認情況下他們測量0到5v值¢献保可以通過改變AREF引腳analogReference()功能改變他們變化范圍的上界。

AREF:是AD轉換的參考電壓輸入端(模擬口輸入的電壓是與此處的參考電壓比較的)祈坠。使用analogReference()(點擊查看詳細介紹)完成功能害碾。

例:

參考電壓是5V,AD精度是10位的赦拘,

在模擬輸入端輸入2.5V慌随,AD轉換結果就是512(1024×(5/2.5))

Reset:低電平有效,不用多說了吧躺同。

五:通信

Arduino Mega2560提供4路UARTs通信阁猜,即Serial通信。數(shù)據通過ATmega8U2/ATmega16U2時候指示燈會閃爍(除了0和1口)蹋艺。

使用SoftwareSerial library(點擊看詳細介紹)可以使用Mega2560的任意數(shù)字接口通信剃袍。Mega2560同樣支持TWI和SPI通信。

六:編程

Mega2560使用Arduino IDE環(huán)境編程(這個相信再新的新手也知道)捎谨。事先在閃存(Flash Memory)里燒入bootloader引導程序(上文介紹有8kb)民效,這樣我們就可以每次下載程序了憔维。它使用的是原始的STK500通信協(xié)議。(bootloader一般使用C語言或者匯編編寫畏邢,考慮部分人的興趣业扒,這里也提供些資料:bootloader

你也可以繞過bootloader利用Arduino ISP通過ICSP (In-Circuit Serial?Programming)header來編程(這是采用額外編程器的方式舒萎,這種方式當然不贊成程储,很麻煩)。

The ATmega16U2(上面說的串口編程芯片臂寝,Mega2560的特色)固件源碼可以從Arduino

repository獲得章鲤。ATmega16U2/8U2使用DFU?bootloader下載,可以用以下方式激活:

1.V1版本的板子:連接板子后面的跳線(靠近意大利的地圖)交煞,之后重置ATmega8U2(1版本為這個芯片)咏窿。

2.V2及之后的版本:有個將8U2/16U2 HWB線連到地的電阻,它使板子很容易進入DFU模式素征,你之后可以使用Atmel's FLIP software(Windows) 或者DFU

programmer(Mac OS X and Linux) 下載新的固件集嵌。或者你可以使用額外的編程器通過ISP下載(跟上面跳過bootloader下載程序時的方法一樣御毅,此方法高端案贰)。具體參考:Seethis user-contributed

tutorialfor more information.

七:自動(軟件)復位:

不說了端蛆。

八:USB過流保護:

不說了凤粗,好的硬件設計應該這么做。

九:物理特性和兼容:也不說了今豆,都是繼承和發(fā)展嫌拣。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市呆躲,隨后出現(xiàn)的幾起案子异逐,更是在濱河造成了極大的恐慌,老刑警劉巖插掂,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灰瞻,死亡現(xiàn)場離奇詭異,居然都是意外死亡辅甥,警方通過查閱死者的電腦和手機酝润,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來璃弄,“玉大人要销,你說我怎么就攤上這事∠目椋” “怎么了蕉陋?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵捐凭,是天一觀的道長。 經常有香客問我凳鬓,道長茁肠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任缩举,我火速辦了婚禮垦梆,結果婚禮上,老公的妹妹穿的比我還像新娘仅孩。我一直安慰自己托猩,他們只是感情好,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布辽慕。 她就那樣靜靜地躺著京腥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪溅蛉。 梳的紋絲不亂的頭發(fā)上公浪,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機與錄音船侧,去河邊找鬼欠气。 笑死,一個胖子當著我的面吹牛镜撩,可吹牛的內容都是我干的预柒。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼袁梗,長吁一口氣:“原來是場噩夢啊……” “哼宜鸯!你這毒婦竟也來了?” 一聲冷哼從身側響起遮怜,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤顾翼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后奈泪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡灸芳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年涝桅,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烙样。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡冯遂,死狀恐怖,靈堂內的尸體忽然破棺而出谒获,到底是詐尸還是另有隱情蛤肌,我是刑警寧澤壁却,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站裸准,受9級特大地震影響展东,放射性物質發(fā)生泄漏。R本人自食惡果不足惜炒俱,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一盐肃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧权悟,春花似錦砸王、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至榔昔,卻和暖如春驹闰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背件豌。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工疮方, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人茧彤。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓骡显,卻偏偏與公主長得像,于是被迫代替她去往敵國和親曾掂。 傳聞我的和親對象是個殘疾皇子惫谤,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內容

  • 什么是嵌入式 IEEE(Institute of Electrical and Electronics Engin...
    Leon_Geo閱讀 3,691評論 1 20
  • Arduino Due有14個數(shù)字I/O,6個模擬I/O珠洗,一個復位開關溜歪,一個ICSP下載口,7-12v電源供電许蓖。 ...
    麥牛2013閱讀 3,324評論 0 8
  • 1蝴猪、嵌入式系統(tǒng)的定義 (1)定義:以應用為中心,以計算機技術為基礎膊爪,軟硬件可裁剪自阱,適應應用系統(tǒng)對功能、可靠性米酬、成本...
    榮卓然閱讀 1,804評論 0 5
  • ???本文主要介紹嵌入式系統(tǒng)的一些基礎知識沛豌,希望對各位有幫助。 嵌入式系統(tǒng)基礎 1赃额、嵌入式系統(tǒng)的定義 (1)定義:...
    OpenJetson閱讀 3,296評論 0 13
  • 路燈下加派,又見那個男人叫确,蹲靠在欄桿上。跟前的地瓜還是滿滿一挑芍锦。已經是夜里九點了竹勉,他怎么還不回家?同樣的問題醉旦,我...
    3097閱讀 358評論 0 0