近段時間,博主陸續更新了ESP8266學習筆記,主要開發平臺是Arduino。可是,對於不少無基礎的初學者來講,甚至不瞭解Arduino是什麼。所以,博主決定加入一個Arduino學習筆記,方便零基礎的初學者。初學者能夠從基礎去了解Arduino,這樣才能設計本身的東西,因此博主建議初學者能夠參考《ARDUINO程序設計基礎》,《Arduino-語法手冊》,請點擊 傳輸門 提取碼:0923。編程
注意:架構
Arduino能夠是一塊小小電路板,也能夠是一個開放的電子開發平臺。它既包含了硬件,也包含了軟件——開發環境以及開發者、使用者創造出來的代碼、程序。Arduino拋開了傳統硬件開發的複雜操做,不須要了解硬件的內部結構和寄存器設置(若是是單片機開發,是須要了解寄存器而且設置各個寄存器),也不須要過多的電子知識和編程知識,開發者只須要經過簡單學習,瞭解各個引腳和函數的做用,即可利用它開發出各類出色的項目。
Arduino編譯器使用GCC,Arduino語音衍生自Wiring語言,這是一個開源的單片機編程架構,同時Arduino語言又是基於AVR-Libc這個AVR單片機擴展庫編寫的,意味着不少單片機的寄存器設置細節應該是被二次封裝了。函數
Arduino UNO 是目前使用最普遍的Arduino控制器,具備Arduino的全部功能,是初學者最佳選擇。掌握UNO開發技巧,其餘型號控制器也是相似的。oop
Arduino Mega 是一個加強型的Arduino 控制器,相對於UNO,它提供了更多的輸入/輸出接口,能夠控制更多的設備,以及擁有更大的程序空間和內存,是完成較大型項目的較好選擇。性能
Arduino Leonardo 使用集成了USB功能的AVR單片機做爲主控芯片,具有其餘型號Arduino控制器的全部功能以外還能夠輕鬆模擬USB鍵盤/鼠標等USB設備。
學習
Arduino Due 突破性使用了32位的ARM Cortex-M3做爲主控芯片。它集成了多種外設,有着其餘Arduino板沒法比擬的性能,是目前最爲強大的Arduino控制器。ui
常見小型Arduino控制器有Arduino Nano,Arduino Mini,Arduino Micro,Arduino LilyPad等。設計
Arduino Nano是Arduino USB接口的微型版本,最大的不一樣是沒有電源插座以及USB接口是Mini-B型插座。code
Arduino 一個特殊版本,是爲可穿戴設備和電子紡織品而開發的。
Arduino LilyPad能夠經過USB鏈接或者外部電源供電,電壓可從2.7V到5.5V,須要注意Arduino LilyPad沒有保護電路,輸入電壓不能正負接反也不能超過閥值。blog
Arduino Mini是Arduino 的最簡潔微型版本,能夠插在麪包板上,適用於對尺寸要求嚴苛的場合。
Arduino MIni必須外接擴展板纔可以下載程序。
博主這裏不交你們安裝ArduinoIDE,請自行到Arduino官網下載最新版本,目前是1.8.9版本。當你在Arduino IDE上新增項目,默認是如下代碼:
void setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: }
會發現,Arduino的程序結構與傳統的c程序結構有所不一樣——Arduino程序中沒有main函數。其實並非Arduino程序中沒有main函數,而是main函數的定義隱藏在了Arduino的核心庫文件中。在進行Arduino開發中不直接操做main函數,而是使用setup和loop這兩個函數。
Arduino控制器通電或者復位後,就會開始執行Arduino的初始化配置(IO口 串口等);
setup函數執行完畢後,Arduino會接着執行loop()函數中的程序。而loop函數是一個死循環,其中的程序會不斷地重複運行。一般在loop函數中完成程序的主要功能,如驅動各類模塊和採集數據等。
因此,這個模型應該是這樣的:
int main(){ setup(); while(1){ loop(); } }
這樣就知足c的程序結構了。
本篇主要講解經常使用的Arduino板子以及它們的硬件特性,讀者能夠根據本身的實際狀況購買學習,博主建議初學者能夠入手Mega板子,性價比高。