Arduino知识点

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IRsend.sendRaw(buf,len,hz) 以原始编码格式发送信号
result.value 是接收到的编码数据
LiquidCrystal 类库
LiquidCrystal(rs,(rw),enable,(d0,d1,d2,d3),d4,d5,d6,d7) 初始化 LCD
lcd.begin(cols,rows) 设置显示器的宽度和高度
#define 常量名 常量值
% 取模运算符
String abc / char abc[n] 定义字符串
pinMode(pin,mode); 用于引脚的初始化 mode 包括 INPUT/OUTPUT/INPUT_PULLUP
Arduino 数模转换器有 10 位精度,可以将 0-5V 转换为 0-1023,仅用于 analogRead(pin)
串口监视器中的停止符是在按下“发送”后系统自动发动的
外部中断
LOW/CHANGE/RISING/FALLING 低电平/变电平/上升沿/下降沿触发
attachInterrupt(中断编号,中断函数名(返回 void),中断模式) 初始化中断引脚
detachInterrupt(中断编号) 禁用外部中断
EEPROM 类库
EEPROM.write(address,value) 对指定地址写入数据,无返回值
EEPROM.read(address) 从指定地址读数据,若无数据,则读出 255
union date
共用体类型,将大于 1B 的数据存到 EEPROM
{
此例将 float 数据存到 EEPROM 中
float a;
读写的时候是对 c.b[i]操作,输出或其他是对 c.a 操作
byte b[4];
}
date c;
SD 卡类库
对 SD 卡中的文件进行操作,用 SD 类
对 SD 卡文件中的具体内容操作用 file 类
SD.begin(csPin) csPin 为输出模式,连到 SD 卡使能端,返回 true/false
SD.mkdir(filename) 创建某文件夹,返回 true/false
SD.rmdir(filename) 移除某空文件夹,返回 true/false
file.available() 检查并返回当前文件中可读的字节数
file.close()
关闭某文件
file.peek()
读取当前字节,但并不移动到下一字节
SPI.end() 关闭 SPI 通信
SPI.transfer(val) val 要发送的字节数据,返回读到的字节数据
shiftOut(datePin,clockPin,bitOrder,value) IDE 自带函数,模拟 SPI 串行输出,无返回
shiftIn(datePin,clockPin,bitOrder) IDE 自带函数,模拟 SPI 串行输入,返回输入数据
Wire.write(value/string/(date,length)) 主机从机间发送数据
Wire.available() 返回缓冲区的字节数
Wire.read() 从机或主机从缓冲区中读取数据
Wire.onReceive(myHandler1) 从机的函数,主机 endTransmission 后 myHandler1 被触发
Serial.setTimeout(time) 设置超时(等待串口数据)时间,与前两个函数配合使用
Serial.write(val/str/(buf,len)) 以字节形式输出数据到串口,返回输出的字节数
ps:对于 MEGA,Serial 包括 Serial,Serial1,Serial2,Serial3,Serial4
SD.exists(filename) 判断某文件夹是否存在,返回 true/false
SD.open(filename,mode) 打开某文件,mode:FILE_READ/FILE_WRITE,返回 true/false
SD.remove(filename) 移除某文件夹,返回 true/false
lcd.(no)b/Blink() 开启/关闭光标闪烁
lcd.(no)d/Display() 开启/关闭 LCD 显示功能
lcd.scrollDisplayLeft/Right() 向左/右滚屏
lcd.(no)a/Autoscroll() 开启/关闭自动滚屏
lcd.createChar(num,data) 创建自定义字符,num 自定义字符编号,data 像素数据
以上 file 为一个 File 类对象
定义一个 File 对象 myFile,再用 myFile = SD.open()打开文件,此文件就和 myFile 关联了
IRremote 类库
IRrecv object(recvPin) 构造函数,创建一个红外接收头对象,recvPin 连到接收头引脚
IRrecv.enableIRIn() 初始化红外解码
String += (char)Char 将 Char 添加到 String 后面
void serialEvent() 串口事件,在串口缓冲区有数据时触发,实际是运行在两次 loop 之间
软件模拟串口通信
SoftwareSerial mySerial(rxPin.txPin) 构造函数,创建一个软串口
编写 library
#if ARDUINO >= 100
//版本兼容设置
#include"Arduino.h"
#else
#include"WProgram.h"
#endif
class XXX{
//声明类
private:
public:
}
#ifndef XXX_H
//条件编译命令,判断 XXX_H 是不是已经存在
Serial.print(value,format) 以 ASCII 码格式输出数据
Serial.read() 读取并删除一字节数据
Serial.readBytes(buffer,length) 读取 length 长度的数据并存入 buffer
Serial.readBytesUntil(character,buffer,length)
Serial.find(target) 在缓冲区中搜索 target,找到返回 true,否则返回 false
Serial.findUntil(target,terminal) 搜索 target 直至 terminal,无返回值
Serial.flush() 等待正在发送的数据发送完成
Serial.peek() 返回但不删除一字节数据
mySerial.listen() 开启软串口监视状态,一个时刻只能监视一个软串口
mySerial.isListening() 判断是不是处在监视状态
mySerial.overflow() 检测缓冲区是不是已经溢出
其他函数和硬串口一样
IIC 总线与 Wire 类库函数
Wire.begin(none/address) 以主机/从机模式加入 IIC Baidu Nhomakorabea线
analogWrite(n) 写的并不是真正的模拟信号,而是占空比不同的方波:电压=占空比×5V,
n∈(0,255),PWM(脉冲宽度调制)波
millis()/micros() 获取系统通电或复位后的运行时间,单位是毫秒/微秒
当引脚悬空时,其电压值处于不定状态,故要根据电压值进行其他操作时应避免悬空
#define XXX_H
.
.
.
#endif
#include"XXX.H"
//编写 cpp 文件,注意应加上版本兼容语句
XXX::XXX()
返回类型 XXX::other_func()
func_name1 KEYWORD1 //关键字高亮显示
func_name2 KEYWORD2
硬件串口(UART)通信
IRrecv.decode(&results) 检查是否收到编码,解码信息存入 decode_results 对象 results
IRrecv.resume() 接收下一个编码
IRsend object() 创建 IRsend 类对象
IRsend.sendNEC(data,nbits) 以 NEC 编码格式发送指定值
lcd.clear() 清屏,光标移到左上角
lcd.home() 光标复位到左上角
lcd.setCursor(col,row) 设置光标到指定位置
lcd.write(data) 输出一个字符到 LCD
lcd.print(data) 输出一串字符到 LCD,返回输出的字符数
lcd.(no)c/Cursor() 显示/隐藏光标
tone(pin,frequency,duration) 占空比为定值 50%,duration 默认无穷大,若无 duration,
则应用 noTone()来停止发声,注意:同一时间 tone()仅能作用于一个引脚
pulseIn(pin,value,timeout) 返回脉冲宽度,单位为微秒,timeout 超时时间,默认为 1s
两个设备 TX 与 RX 交叉连接,GND 相连
在 MEGA 上 USB 口是和引脚 0,1 连在一块的
Serial.available() 返回串口接收缓冲区的字节数
Serial.begin(speed,config) 初始化串口,speed 波特率,config 数据、校验、停止位
Serial.end() 释放串口通信引脚,使其作为普通引脚
file.position() 获取“光标”在当前文件中的位置
file.print(date,FORMAT) 以某格式输出数据到文件
file.seek(position) 将“光标”移到某一位置
file.size()
获取文件大小
file.read()
读取 1B 数据
file.write(date/(buf,len)) 写入数据到文件
Wire.onRequest(myHandler2) 从机的函数,主机 requestFrom 后 myHandler2 被触发
其中:void myHandler1(int numBytes) void myHandler2() numBytes:主机发送的字节数
SPI 总线与 SPI 类库函数
SPI.begin() 初始化 SPI 通信
Wire.requestFrom(address,quantity,stop)主机向从机发送数据请求,stop:true 释放 IIC
Wire.beginTransmission(address) 告诉某从机主机要向它发送数据
Wire.endTransmission(none/stop) 告诉从机数据发送完毕,stop:true 释放 IIC
相关文档
最新文档