欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【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();
  • 未完待续……
相关标签: Arduino