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