Arduino Uno 开发简介
Arduino是源于意大利的一套開源硬件開發平臺,Arduino Uno是其推出的最為基礎的開發板。配合外圍器件(傳感器,控制開關,LED屏等),任何稍有電子電路基礎的人都可以基于這個平臺快速搭建出具有各種有趣功能的實用電子電路。首先介紹一下Arduino Uno開發板的基本組成。
圖1 ArduinoUno開發板
1.??????微處理器:ATmega328,8位微處理器,片內包含32KB Flash(0.5KB由BootLoader使用),2KB SRAM,1KB EEPROM,運行時鐘頻率為16MHz。
2.??????USB接口:與電腦連接,用于從電腦中下載程序,同時給Uno單板供電。
3.??????外接電源:當Uno脫離電腦獨立運行時,用來給裝置供電,一般使用9V電池供電即可。
4.??????電源管腳,地:可輸出5V,3.3V;也可以通過Vin給整個裝置供電。
5.??????模擬輸入:6個模擬輸入,提供10-bit的解析度(0-1023)。
6.??????數字輸入/輸出:14個數字輸入/輸出管腳,可以由程序自己定義為輸入或者輸出;其中0,1兩個管腳是串口復用管腳;3,5,6,9,10,11六個管腳可提供8位(0-255)的PWM輸出;13管腳與板上LED相連,當輸出高電平時,LED點亮。
下面簡要介紹一下Arduino的開發環境。從Arduino - Home網站上可以免費下載到其開發環境,有Windows/Mac/Linux版本,大家可根據自己的需要選擇。工具安裝運行后界面見圖2。由于是單板和PC相連是通過串口轉USB,所以PC上通常需要安裝一下驅動,驅動就在Arduino軟件目錄下的driver目錄,例如:f:\arduino-1.6.4\drivers\。安裝驅動后,可以看到當前的端口,如圖3所示(不同PC端口號一般都不相同,例如此處是COM3)。
圖2. Arduino 開發工具界面
圖3. 當驅動安裝正確,連接PC后,會顯示對應的端口
編輯窗口中有兩個函數,一個是setup,這個函數將在程序運行一開始就調用,通常是進行一些管腳的初值設置;而loop就是程序運行的主函數,系統會不斷循環調用loop,我們將軟件邏輯寫在loop函數中就可以了。
下面再介紹一下軟件常用的函數。
pinMode(pin, mode) ?- 定義數字管腳的輸入/輸出,pin可以取0-13,對應14個數字管腳;mode為INPUT/OUTPUT之一,表明該管腳是用于輸入還是輸出
digitalWrite(pin, val) - 設置數字管腳輸出電平,val取值為HIGH/LOW之一
digitalRead(pin)– 讀取數字輸入管腳的電平,函數返回值為HIGH/LOW之一,通常根據返回值為高或者低從而進行不同的處理
analogRead(pin) – 讀取模擬輸入管腳的值,pin取值為A0 – A5;返回0-1023之間的值
analogWrite(pin, val) – 設置數字管腳中的PWM管腳的輸出值,val取值為0-255
Serial.begin(speed) – 初始化串口并設置串口速率,如Serial.begin(9600); 即將串口速率設置為9600bps
Serial.print()/Serial.println() – 串口輸出函數
delay(val) – 延時函數,單位為ms,如delay(1000)為延時1s
Arduino的編程與C語言很類似,例如行尾以分號結尾,int定義整形變量,if做判斷,for做循環等等。例如,下面這段是一個最基本的程序,完成的功能是控制led燈閃爍。
int ledPin = 13;?? //使用管腳13來控制led(實際是用板子上自帶的led)
void setup() {
? // put your setup code here, to run once:
? pinMode(ledPin, OUTPUT); ? ?//設定數字管腳13為輸出管腳
}
?
void loop() {
? // put your main code here, to runrepeatedly:
? digitalWrite(ledPin, HIGH);??? //輸出高電平,led燈亮
? delay(1000); ? ? ? ? ? ? ? ? ? ? ? ? ? ?//延時1s
? digitalWrite(ledPin, LOW);??? //輸出低電平,led燈滅
? delay(1000); ? ? ? ? ? ? ? ? ? ? ? ? ? ?//延時1s
}
編輯完程序后,按圖2中菜單下面的“√”按鈕即可啟動編譯,若有錯誤會在下面的窗口給出提示;如果正確就可以繼續按后面的“→”按鈕將程序下載到Arduino單板并開始運行。例如上面的程序將控制板上自帶的led以2s的頻率亮滅變化。
另外,為便于對編程不了解的人使用,還可以安裝Ardublock工具,該工具提供控件拖放來實現程序邏輯,后臺自動生成代碼,不需要手工敲代碼,例如上面的代碼段用Ardublock可以表示為圖3的邏輯。不過個人還是覺得,對于稍有編程基礎的人來說,還是直接寫代碼更加方便一些。
圖3 用Ardublock來完成控制led燈閃爍的功能
ArduinoUno是最基本的開發板,對于更加復雜的應用,Arduino還有多種硬件可供選擇。Arduino開發套件配合面包板及各種元器件,提供了一種快速開發硬件原型的平臺和手段,是當前學習電子制作,進行硬件原型開發的優秀平臺。淘寶上有眾多Arduino開發套件出售,可根據自己的需求酌情選購。
【參考資料】
1.??????Arduino - Home,提供單板信息,Arduino軟件,編程文檔等下載;
2.??????http://blog.ardublock.com/,Ardublock官方網站;
總結
以上是生活随笔為你收集整理的Arduino Uno 开发简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百度鹰眼项目遇到的问题全记录
- 下一篇: 欧姆龙温控器参数笔记(三)(操作菜单)