Arduino开发版学习计划
制定學習開發版的計劃,今天先大體過一下整個教程。
http://www.bilibili.com/video/av6105302/ 視頻中說可以自己制造亦可衛星放上天。
Arduino使用C/C++編寫程序,雖然C++兼容C語言,但這是兩種語言,C語言是一種面向過程的編程語言,C++是一種面向對象的編程語言。
并不是Arduino沒有main函數,而是main函數的定義隱藏在了Arduino的核心庫文件中。Arduino開發一般不直接操作main函數,而是使用Setup和loop這個兩個函數。
Arduino控制器通電或復位后,即會開始執行setup() 函數中的程序,該部分只會執行一次。
通常我們會在setup() 函數中完成Arduino的初始化設置,如配置I/O口狀態,初始化串口等操作。
在setup() 函數中的程序執行完后,Arduino會接著執行loop() 函數中的程序。而loop()函數是一個死循環,其中的程序會不斷的重復運行。
通常我們會在loop() 函數中完成程序的主要功能,如驅動各種模塊,采集數據等。
pinMode(13,OUTPUT)即是設置引腳的模式,這里設定了13腳為輸出模式;而digitalWrite(13,HIGH) 是讓13腳輸出高電平數字信號。
?
面包板是專為我們進行各種電子實驗所設計的工具。
發光二極管(圖2-13),可以發光的二極管。
有正負兩極,短腳為負極、長腳為正極。
三極管(圖2-14),能起放大、開關等作用的元件。
有發射極(emitter,E)、基極(base,B)和集電極(collector,C)三級,
有pnp和npn 兩種類型的三極管。
?
Leonardo簡介:來源:http://www.arduino.cn/thread-1205-1-1.html
?概述
Arduino Leonardo是基于ATmega32u4一個微控制器板。它有20個數字輸入/輸出引腳(其中7個可用于PWM輸出、12個可用于模擬輸入),一個16 MHz的晶體振蕩器,一個Micro USB接口,一個DC接口,一個ICSP接口,一個復位按鈕。它包含了支持微控制器所需的一切,你可以簡單地通過把它連接到計算機的USB接口,或者使用AC-DC適配器,再或者用電池來驅動它。
Leonardo不同于之前所有的arduino控制器,他直接使用了ATmega32u4的USB通信功能,取消了USB轉UART芯片。這使得Leonardo不僅可以作為一個虛擬的(CDC)串行/ COM端口,還可以作為鼠標或者鍵盤連接到計算機。它還有很多不同的地方,我們會在入門頁面中介紹。
?
摘要
微控制器? ?? ?? ?? ?? ?? ?? ?? ???ATmega32u4
工作電壓? ?? ?? ?? ?? ?? ?? ?? ???5V
輸入電壓(推薦)? ?? ?? ?? ? 7-12V
輸入電壓(限制)? ?? ?? ?? ? 6-20V
數字I/O引腳? ?? ?? ?? ?? ?? ?? ?20
PWM通道? ?? ?? ?? ?? ?? ?? ?? ? 7
模擬輸入通道? ?? ?? ?? ?? ?? ? 12
每個I/O直流輸出能力? ?? ? 40毫安
3.3V端口輸出能力? ?? ?? ?? ?50毫安
Flash? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?32 KB(ATmega32u4)其中4 KB由引導程序使用
SRAM? ?? ?? ?? ?? ?? ?? ?? ?? ???2.5 KB(ATmega32u4)
EEPROM? ?? ?? ?? ?? ?? ?? ?? ? 1 KB(ATmega32u4)
時鐘速度? ?? ?? ?? ?? ?? ?? ?? ? 16MHz
存儲空間
ATmega32u4具有32KB的Flash(其中4KB被引導程序使用)。它還有2.5KB的SRAM和1KB的EEPROM(EEPROM的讀寫可以參見EEPROM庫)。
輸入和輸出
通過使用pinMode(), digitalWrite(), and digitalRead() 函數,Leonardo上的20個I/O引腳中的每一個都可以作為輸入輸出端口。每個引腳都有一個20-50千歐的內部上啦電阻(默認斷開),可以輸出或者輸入最大40ma的電流。此外部分引腳還有專用功能:
------
UART:0(RX)和1(TX) 使用ATmega32U4硬件串口,用于接收(RX)和發送(TX)的TTL串行數據。需要注意的是,Leonardo,的Serial類是指USB(CDC)的通信,而引腳0和1的TTL串口使用Serial1類。
TWI:2(SDA)和3(SCL)通過使用Wire庫來支持TWI通信。
外部中斷:2和3,這些引腳可以被配置
PWM:3、5、6、9、10、11、13能使用analogWrite()函數支持8位的PWM輸出。
SPI:ICSP引腳。能通過使用SPI庫支持SPI通信。需要注意的是,SPI引腳沒有像UNO連接到任何的數字I/O引腳上,他們只能在ICSP端口上工作。這意味著,如果你的擴展板,沒有連接6腳的ICSP引腳,那它將無法工作。
LED:13。有一個內置的LED在數字腳13上,當引腳是高電平事,LED亮,引腳為低電平時,LED不亮。
模擬輸入:A0?A5,A6~A11(數字引腳4,6,8,9,10,12) ,Leonardo有12個模擬輸入,A0到A11,都可以作為數字I / O口。引腳A0-A5的位置上與UNO相同;A6-A11分別是數字I / O引腳4,6,8,9,10和12。每個模擬輸入都有10位分辨率(即1024個不同的值)。默認情況下,模擬輸入量為0-5V,也可以通過AREF引腳改變這個上限。
其他引腳:
AREF:模擬輸入信號參考電壓通過analogReference()函數使用。
Reset:通過置低該線路來復位arduino,通常用在帶復位按鍵的擴展板上。
通信
要讓Leonardo與電腦、其他arduino或者其他的微控制器通信,有多種設備。在0、1上ATmega32u4提供了UART TTL(5V)的通信方式,32u4還允許通過USB在電腦上虛擬COM端口來進行虛擬串行(CDC)通信。這個芯片使用標準的USB串行驅動(在Windows上需要一個.inf文件),可以作為一個全速USB2.0設備。arduino軟件包含了一個串口監視器,可以與arduino板子相互發送或者接收簡單的數據。當使用USB傳輸數據時,板子上RX、TX LED會閃爍(這個特性不是適用于0、1端口)。
SoftwareSerial庫能讓任意的數字I/O口進行串行通信。
ATmega32u4還支持TWI(I2C)和SPI通信。arduino軟件有一個用于簡化TWI(I2C)通信的 wire庫。SPI通信可以使用SPI庫。
Leonardo可以作為鼠標、鍵盤出現,也可以通過編程來控制這類鍵盤鼠標輸入設備。
編程
Leonardo可以通過arduino軟件來編程,選擇Tool>board>Arduino Leonardo(根據你的控制器型號選擇)。更多參考和教程。
Leonardo的ATmega32u4芯片燒寫了一個引導程序,使得你可以不通過外部的硬件編程器也可以上傳新的程序到Leonardo。bootloader使用AVR109協議通信。
你還可以繞過引導程序,使用外部編程器通過ICSP(在線串行編程)引腳燒寫程序。
自動復位和引導程序的啟動
在Leonardo中被設定為在上傳時,軟件建立連接讓控制器復位,從而免去了我們手動按下復位按鈕的操作。當Leonardo?作為虛擬(CDC)串行/COM端口以1200波特率運行時,復位功能將被促發,串口也將關閉。此時,處理器會復位,USB連接會斷開(即虛擬(CDC)串行/COM端口 會斷開)。處理器復位后,引導程序緊接著啟動,大概要等待8秒來完成這個過程。引導程序也可以通過按板子上復位按鈕來啟動。注意當板子第一次通電時,如果有用戶程序,他將直接跳轉到用戶程序區,而不啟動bootloader。
Leonardo?最好的復位處理方式是在上傳程序前讓arduino軟件端試圖啟動復位功能,而不是你手動點擊復位按鈕。
如果軟件沒有讓控制板自動復位,你也可以通過手動按下復位按鈕從而讓板子復位運行引導程序
USB過流保護
Leonardo有一個自恢復保險絲,防止短路或過流,從而保護您的計算機的USB端口。雖然大多數計算機提供都帶有內部保護,但保險絲也可以提供額外的保護。如果電流超過500 mA,保險絲會自動斷開連接防止短路或過載。
物理特征
Leonardo?PCB的最大長度和寬度分別為2.7和2.1英寸,超越前維延長的USB接口和電源插孔。有四個固定孔可以將板子固定在其他表面或者外殼上。注意,7、8數字引腳之間的距離是160mil(0.16“),而不是和其他腳一樣的100 mil 間距。
?
教程:http://www.arduino.cn/thread-1066-1-1.html ??6.Arduino Leonardo專題
?http://www.arduino.cn/thread-2436-1-1.html Leonardo制作鼠標
轉載于:https://www.cnblogs.com/taiguyiba/p/7247610.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Arduino开发版学习计划的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: select可选择、同时可自行输入
- 下一篇: MATLAB之界面介绍