|
通過了解學(xué)習(xí)arduino,感覺特別適合一些業(yè)余愛好者們使用,新人容易上手。Arduino 你不需要知道單片機(jī)編程繁瑣的細(xì)節(jié),提供給你的是一套容易使用的工具包。 但同其它系統(tǒng)相比Arduino在很多地方更具有優(yōu)越性:價(jià)格便宜,編程環(huán)境簡(jiǎn)單,與Processing 編程環(huán)境很相似。
Arduino是一款能夠用來感應(yīng)和控制現(xiàn)實(shí)物理世界的一套工具(積木式硬件拼接方式),它是一款開放源碼的硬件平臺(tái)且資料多,可以自己動(dòng)手做開發(fā)板,有需要的也可以加我一起相互學(xué)習(xí),其它啰嗦的話就不多說了,也靠平時(shí)網(wǎng)上查資料一點(diǎn)點(diǎn)積累,所以還是總結(jié)一下學(xué)到的一些知識(shí)點(diǎn),方便以后查看,分享,當(dāng)然也參考了別人的一下筆記(表示感謝)。 arduino平臺(tái)的基礎(chǔ)就是AVR指令集單片機(jī)(主要芯片Atmega328P-PU、Atmega2560)。開發(fā)軟件版本 Arduino 1.6.4 已有更新版本。
以Atmega328為例:
Digital I/O 數(shù)字輸入/輸出端口0—13。
Analog I/O 模擬輸入/輸出端口0-5。
下圖為自制的Mage2560:(Arduino Uno版本Atmega328的忘記拍照了)
1、Arduino基礎(chǔ)、基本函數(shù)梳理 (詳見后面3):
unsigned long millis(); //返回時(shí)間函數(shù)(單位ms)
delayMicroseconds(1000); //微秒延時(shí)函數(shù) 1000微妙=1毫秒
delay(1000) ; //毫秒延時(shí)函數(shù) 1000毫秒=1秒
Serial.read(); //讀取持續(xù)輸入的數(shù)據(jù)。
Serial.print(數(shù)據(jù),數(shù)據(jù)的進(jìn)制); //串行0輸出數(shù)據(jù)。
Serial.print(數(shù)據(jù)); //默認(rèn)為十進(jìn)制等于Serial.print(數(shù)據(jù),DEC)。
Serial.println(數(shù)據(jù),數(shù)據(jù)的進(jìn)制); //從串行端口輸出數(shù)據(jù),跟隨一個(gè)回車和一個(gè)換行符。這個(gè)函數(shù)所取得的值與 Serial.print()一樣。
pinMode(pin, mode) ;
下面以引腳2為例,其它引腳根據(jù)具體自身開發(fā)使用的引腳來定義:
pinMode(2, OUTPUT); 設(shè)置引腳2為輸出模式
pinMode(2, INPUT); 設(shè)置引腳2為輸入模式
digitalWrite(2, LOW); 控制引腳2輸出低電平
digitalWrite(2, HIGH); 控制引腳2輸出高電平
boolean flag = digitalRead(2) ; 讀取引腳2的電平(1 or 0)
analogWrite(5,num); 引腳5輸出模擬量(PWM),num的數(shù)值范圍0~255,腳位通常會(huì)在3、5、6、9、10與11,具體根據(jù)開發(fā)板的。
unsigned int num= analogRead(A3); 引腳A3讀取電壓值0~5V(數(shù)值:0~1023)
矩陣按鍵4*4的程序應(yīng)用:
#include "Keypad.h" //頭文件
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','4'},
{'5','6','7','8'},
{'A','B','9','C'},
{'*','0','#','D'} };
byte rowPins[ROWS] = {39, 41, 43, 45}; //矩陣按鍵端口
byte colPins[COLS] = {44, 42, 40, 38}; //
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
int key = keypad.getKey();//讀取到的鍵值
2、開發(fā)板介紹:
因其開源特性,生產(chǎn)arduino控制板的廠商眾多,多種顏色。
對(duì)于一些對(duì)電路板大小要求比較嚴(yán)格的地方,arduino團(tuán)隊(duì)提供了arduino Nano開發(fā)板,此板體積做的非常小。
arduino開發(fā)板特殊端口的說明:
VIN端口:VIN是input voltage的縮寫,表示有外部電源時(shí)的輸入端口。
AREF: Reference voltage for the analog inputs(模擬輸入的基準(zhǔn)電壓)。使用analogReference()命令調(diào)用。
ICSP:也有稱為ISP(In System Programmer),就是一種線上即時(shí)燒錄,目前比較新的芯片都支持這種燒錄模式。只需要準(zhǔn)備一條R232線(連接燒錄器),以及一條連接燒錄器與燒錄芯片針腳的連接線就可以。電源的+5V,GND,兩條負(fù)責(zé)傳輸燒錄信息的針腳,再加上一個(gè)燒錄電壓針腳,這樣就可以燒錄了。
3、實(shí)例及C語言關(guān)鍵字:
void setup()
{
Serial.begin(9600); // 打開串口,設(shè)置波特率為9600 bps
}
void loop()
{
int val;
val=analogRead(5);//傳感器接到模擬口5,數(shù)值根據(jù)自己的需要可變
Serial.println(val,DEC);//從串口發(fā)送字符串并換行
delay(100);
}
/*************基礎(chǔ)C語言*************/
結(jié)構(gòu)
• void setup() 初始化變量,管腳模式,調(diào)用庫(kù)函數(shù)等
• void loop() 連續(xù)執(zhí)行函數(shù)內(nèi)的語句 即主函數(shù)main
關(guān)鍵字:
• if
• if...else
• for
• switch case
• while
• do... while
• break
• continue
• return
• goto
語法符號(hào):
• ;
• {}
• //
• /* */
完整的Word格式文檔51黑下載地址:
Arduino學(xué)習(xí)筆記 陸 龍.doc
(8.24 MB, 下載次數(shù): 47)
2021-5-21 13:13 上傳
點(diǎn)擊文件名下載附件
|
評(píng)分
-
查看全部評(píng)分
|