【Arduino】常用函数记录
程序员文章站
2022-07-12 10:19:21
...
由于有时候过段时间不写Arduino,就会把部分函数给遗忘。虽然知道有这么个函数,但是函数却比较模糊。而临时查找又觉得麻烦,因此在此开新帖记录一些开发过程中经常用到的函数,便于日后查找。
- 数字操作函数:
pinMode()
digitalWrite()
digitalRead()
- 模拟操作函数:
analogRead()
analogWrite()
analogReference()
- 映射函数:
/* 一对一个映射 */
map(value,fromLow,fromHigh,toLow,toHigh)
/* 仅处理min-max之间是数据,其余舍弃 */
constrain(value,min,max)
- 时间函数:
delay()/* 单位ms */
delayMicroseconds()/* 单位us */
利用时间函数实现PWM示例:
digitalWrite(13,HIGH);
delayMicroseconds(100);
digitalWrite(13,LOW);
delayMicroseconds(900);
/* 相当于10%的占空比 */
millis();
/* 开发板启动或重启后的硬件定时器 使用:unsigned long startTime = millis(); */
mircos()
/* us为单位,约10分钟重置 */
- 随机函数:
random(min(可选,缺失为0),max)
randomSeed()
示例:
randomSeed(analogRead(A0));
/* A0应该为浮空的引脚 */
- 硬件中断:
attachInterrupt(interrupt,function,mode)
/*
interrupt:中断号,只有0和1对应着数字引脚2和3
function:中断执行函数
mode:触发状态,有LOW(低电平),CHANGE(点平变化),RISING(上升沿),FALLING(下降沿)
*/
detachInterrupt(interrupt);
/* 停止该中断 */
- 硬件串口库:
Serial.begin(rate);
/* 300、1200、2400、4800、9600、14400、19200、28800、38400、57600、115200 */
Serial.available();
/* 返回串口缓冲区中的可用的字节数,最大128字节 */
Serial.read();
/* 从串口缓冲区中读取一字节 */
Serial.print(data);
Serial.println(data);
Serial.write(data);
/*
print/println:可以根据发送的数据类型来确定data的数据类型
write:效率高,统统转化成ascii码处理,单字节发送数据BYTE
*/
- 软件串口库:
/* 在Arduino数字引脚上生成一个软件串口,可以拓展通过串口连接的元件数量 */
#include <SoftwareSerial.h>
/* 生成实例 */
SoftwareSerial name(rxPin,txPin);
name.begin(rate);
name.flush();/* 清空串口缓冲区数据 */
- wire库
/* address用于设置Arduino是主元件还是从元件 */
Wire.begin(address);
/* 可以用于多个元件连接到一个数据总线上的情况 */
Wire.beginTransmisssion(address);
Wire.endTransminssion();
/* 给元件发送数据 */
Wire.write(value);
Wire.write(value,quantity);
/* 从元件中读取数据 */
/* requestFrom从总线获取数据,再由read函数每次读出一字节数据 */
Wire.requestFrom(address,quantity);
Wire.read();
- 未完待续……
上一篇: Matlab/Octave 求矩阵的M-P逆(pinv)
下一篇: 嵌入式文件系统