|
#define 常量名 常量值
% 取模運(yùn)算符
String abc / char abc[n] 定義字符串
pinMode(pin,mode); 用于引腳的初始化 mode包括 INPUT/OUTPUT/INPUT_PULLUP
Arduino 數(shù)模轉(zhuǎn)換器有 10位精度,可以將0-5V轉(zhuǎn)換為 0-1023,僅用于analogRead(pin) analogWrite(n) 寫的并不是真正的模擬信號(hào),而是占空比不同的方波:電壓=占空比×5V,n∈(0,255),PWM(脈沖寬度調(diào)制)波 millis()/micros() 獲取系統(tǒng)通電或復(fù)位后的運(yùn)行時(shí)間,單位是毫秒/微秒 當(dāng)引腳懸空時(shí),其電壓值處于不定狀態(tài),故要根據(jù)電壓值進(jìn)行其他操作時(shí)應(yīng)避免懸空
tone(pin,frequency,duration) 占空比為定值50%, duration默認(rèn)無窮大,若無duration,則應(yīng)用noTone()來停止發(fā)聲,注意:同一時(shí)間 tone()僅能作用于一個(gè)引腳 pulseIn(pin,value,timeout) 返回脈沖寬度,單位為微秒,timeout超時(shí)時(shí)間,默認(rèn)為 1s 串口監(jiān)視器中的停止符是在按下“發(fā)送”后系統(tǒng)自動(dòng)發(fā)動(dòng)的
外部中斷
LOW/CHANGE/RISING/FALLING 低電平/變電平/上升沿/下降沿觸發(fā)attachInterrupt(中斷編號(hào),中斷函數(shù)名(返回void),中斷模式) 初始化中斷引腳
detachInterrupt(中斷編號(hào)) 禁用外部中斷
編寫library
- #if ARDUINO >= 100 //版本兼容設(shè)置
- #include"Arduino.h"
- #else
- #include"WProgram.h"
- #endif
- class XXX{ //聲明類
- private:
- public:
- }
- #ifndef XXX_H //條件編譯命令,判斷XXX_H是不是已經(jīng)存在
- #define XXX_H
- .
- .
- .
- #endif
- #include"XXX.H" //編寫cpp文件,注意應(yīng)加上版本兼容語句
- XXX::XXX()
- 返回類型 XXX::other_func()
- func_name1 KEYWORD1 //關(guān)鍵字高亮顯示
- func_name2 KEYWORD2
復(fù)制代碼 硬件串口(UART)通信
兩個(gè)設(shè)備TX與RX交叉連接,GND相連
在MEGA上USB口是和引腳 0,1連在一塊的
Serial.available() 返回串口接收緩沖區(qū)的字節(jié)數(shù)
Serial.begin(speed,config) 初始化串口,speed波特率,config數(shù)據(jù)、校驗(yàn)、停止位
Serial.end() 釋放串口通信引腳,使其作為普通引腳
Serial.find(target) 在緩沖區(qū)中搜索target,找到返回 true,否則返回false
Serial.findUntil(target,terminal) 搜索target直至terminal,無返回值
Serial.flush() 等待正在發(fā)送的數(shù)據(jù)發(fā)送完成
Serial.peek() 返回但不刪除一字節(jié)數(shù)據(jù)
Serial.print(value,format) 以ASCII碼格式輸出數(shù)據(jù)
Serial.read() 讀取并刪除一字節(jié)數(shù)據(jù)
Serial.readBytes(buffer,length) 讀取 length長(zhǎng)度的數(shù)據(jù)并存入 buffer
Serial.readBytesUntil(character,buffer,length)
Serial.setTimeout(time) 設(shè)置超時(shí)(等待串口數(shù)據(jù))時(shí)間,與前兩個(gè)函數(shù)配合使用
Serial.write(val/str/(buf,len)) 以字節(jié)形式輸出數(shù)據(jù)到串口,返回輸出的字節(jié)數(shù)
ps:對(duì)于MEGA,Serial 包括Serial,Serial1,Serial2,Serial3,Serial4
String += (char)Char 將Char添加到String后面
void serialEvent() 串口事件,在串口緩沖區(qū)有數(shù)據(jù)時(shí)觸發(fā),實(shí)際是運(yùn)行在兩次 loop之間
軟件模擬串口通信
SoftwareSerial mySerial(rxPin.txPin) 構(gòu)造函數(shù),創(chuàng)建一個(gè)軟串口
mySerial.listen() 開啟軟串口監(jiān)視狀態(tài),一個(gè)時(shí)刻只能監(jiān)視一個(gè)軟串口
mySerial.isListening() 判斷是不是處在監(jiān)視狀態(tài)
mySerial.overflow() 檢測(cè)緩沖區(qū)是不是已經(jīng)溢出
其他函數(shù)和硬串口一樣
IIC總線與Wire類庫函數(shù)
Wire.begin(none/address) 以主機(jī)/從機(jī)模式加入IIC 總線
Wire.requestFrom(address,quantity,stop)主機(jī)向從機(jī)發(fā)送數(shù)據(jù)請(qǐng)求, stop:true 釋放 IIC
Wire.beginTransmission(address) 告訴某從機(jī)主機(jī)要向它發(fā)送數(shù)據(jù)
Wire.endTransmission(none/stop) 告訴從機(jī)數(shù)據(jù)發(fā)送完畢,stop:true釋放IIC
Wire.write(value/string/(date,length)) 主機(jī)從機(jī)間發(fā)送數(shù)據(jù)
Wire.available() 返回緩沖區(qū)的字節(jié)數(shù)
Wire.read() 從機(jī)或主機(jī)從緩沖區(qū)中讀取數(shù)據(jù)
Wire.onReceive(myHandler1) 從機(jī)的函數(shù),主機(jī)endTransmission后myHandler1被觸發(fā)
Wire.onRequest(myHandler2) 從機(jī)的函數(shù),主機(jī)requestFrom后myHandler2 被觸發(fā)
其中:void myHandler1(int numBytes) void myHandler2() numBytes:主機(jī)發(fā)送的字節(jié)數(shù)
SPI總線與SPI類庫函數(shù)
SPI.begin() 初始化SPI通信
SPI.end() 關(guān)閉SPI 通信
SPI.transfer(val) val要發(fā)送的字節(jié)數(shù)據(jù),返回讀到的字節(jié)數(shù)據(jù)
shiftOut(datePin,clockPin,bitOrder,value) IDE自帶函數(shù),模擬SPI串行輸出,無返回
shiftIn(datePin,clockPin,bitOrder) IDE自帶函數(shù),模擬 SPI串行輸入,返回輸入數(shù)據(jù)
EEPROM類庫
EEPROM.write(address,value) 對(duì)指定地址寫入數(shù)據(jù),無返回值
EEPROM.read(address) 從指定地址讀數(shù)據(jù),若無數(shù)據(jù),則讀出255
union date 共用體類型,將大于1B的數(shù)據(jù)存到 EEPROM
{ 此例將float數(shù)據(jù)存到EEPROM中
float a; 讀寫的時(shí)候是對(duì)c.b[ i]操作,輸出或其他是對(duì) c.a操作
byte b[4];
}
date c;
SD卡類庫
對(duì)SD卡中的文件進(jìn)行操作,用 SD類
對(duì)SD卡文件中的具體內(nèi)容操作用 file類
SD.begin(csPin) csPin為輸出模式,連到SD卡使能端,返回 true/false
SD.exists(filename) 判斷某文件夾是否存在,返回true/false
SD.open(filename,mode) 打開某文件,mode:FILE_READ/FILE_WRITE,返回true/false
SD.remove(filename) 移除某文件夾,返回true/false
SD.mkdir(filename) 創(chuàng)建某文件夾,返回true/false
SD.rmdir(filename) 移除某空文件夾,返回true/false
file.available() 檢查并返回當(dāng)前文件中可讀的字節(jié)數(shù)
file.close() 關(guān)閉某文件
file.peek() 讀取當(dāng)前字節(jié),但并不移動(dòng)到下一字節(jié)
file.position() 獲取“光標(biāo)”在當(dāng)前文件中的位置
file.print(date,FORMAT) 以某格式輸出數(shù)據(jù)到文件
file.seek(position) 將“光標(biāo)”移到某一位置
file.size() 獲取文件大小
file.read() 讀取1B數(shù)據(jù)
file.write(date/(buf,len)) 寫入數(shù)據(jù)到文件
以上file為一個(gè)File 類對(duì)象
定義一個(gè)File對(duì)象myFile,再用myFile = SD.open()打開文件,此文件就和myFile關(guān)聯(lián)了
IRremote類庫
IRrecv object(recvPin) 構(gòu)造函數(shù),創(chuàng)建一個(gè)紅外接收頭對(duì)象,recvPin連到接收頭引腳
IRrecv.enableIRIn() 初始化紅外解碼
IRrecv.decode(&results) 檢查是否收到編碼,解碼信息存入decode_results對(duì)象results
IRrecv.resume() 接收下一個(gè)編碼
IRsend object() 創(chuàng)建 IRsend類對(duì)象
IRsend.sendNEC(data,nbits) 以NEC編碼格式發(fā)送指定值
IRsend.sendRaw(buf,len,hz) 以原始編碼格式發(fā)送信號(hào)
result.value 是接收到的編碼數(shù)據(jù)
LiquidCrystal類庫
LiquidCrystal(rs,(rw),enable,(d0,d1,d2,d3),d4,d5,d6,d7) 初始化LCD
lcd.begin(cols,rows) 設(shè)置顯示器的寬度和高度
lcd.clear() 清屏,光標(biāo)移到左上角
lcd.home() 光標(biāo)復(fù)位到左上角
lcd.setCursor(col,row) 設(shè)置光標(biāo)到指定位置
lcd.write(data) 輸出一個(gè)字符到 LCD
lcd.print(data) 輸出一串字符到 LCD,返回輸出的字符數(shù)
lcd.(no)c/Cursor() 顯示/隱藏光標(biāo)
lcd.(no)b/Blink() 開啟/關(guān)閉光標(biāo)閃爍
lcd.(no)d/Display() 開啟/關(guān)閉LCD顯示功能
lcd.scrollDisplayLeft/Right() 向左/右滾屏
lcd.(no)a/Autoscroll() 開啟/關(guān)閉自動(dòng)滾屏
lcd.createChar(num,data) 創(chuàng)建自定義字符,num 自定義字符編號(hào),data像素?cái)?shù)據(jù)
全部資料51hei下載地址:
Arduino庫函數(shù)中文說明.pdf
(164.24 KB, 下載次數(shù): 631)
2017-11-20 02:59 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|