Arduino基本函数

一、数字I/O

1、void pinMode(uint_8 pin, uint8_t mode)

  • 配置引脚为输出或者输入模式
  • pin:引脚编号
  • mode : INPUT、OUTPUT、INPUT_PULLUP

2、void digitalWrite(uint8_t pin ,uint8_t value)

  • 写数字引脚,对应引脚的高低电平。在写引脚之前,需要将引脚设置为OUTPUT模式
  • pin:引脚编号
  • value:HIGH或者LOW

3、int digitalRead(uint8_t pin)

  • 读数字引脚,返回引脚的高低电平,在读引脚之前,需要将引脚设置为INPUT模式
  • pin:引脚编号
  • 如果引脚没有连接到任何地方,将会随机返回HIGH或者LOW

二、模拟I/O

1、void analogReference(uint8_t type)

  • 配置模拟引脚的参考电压,函数analogRead在读取模拟值之后,将根据参考电压把模拟值转换到[0,1023]区间,有以下类型:
  1. DEFAULT:默认5V。
  2. INTERNAL:低功耗模式,ATmega168和ATmega8对应1.1V到2.56V。
  3. EXTERNAL:扩展模式,通过AREF引脚获取参考电压。
  • type:参考类型(DEFAULT/INTERNAL/EXTERNAL)

2、int analogRead(uint8_t)

  • 读模拟引脚,返回0~1023之间的值,每读取一次需要花费1微秒的时间
  • pin:引脚编号
  • 返回值:0-1023的值

3、void analogWrite(uint8_t pin , int value)

  • 写一个模拟值(PWM)到引脚,可以用来控制led的亮度,或者控制电机的转速。在执行该操作后,应该等待一定时间后才能对该引脚进行下一次的读或写操作。PWM的频率大约为490Hz。
  • value:0~255之间的值,0对应着off,255对应着on

三、高级I/O

1、void shifOut(uint8_t dataPin ,uint8_t clockPin,uint8_t bitOrder,byte val)

  • 位移输出函数
  • 输入value数据后Arduino会自动把数据移动分配到8个并行输出端,其中dataPin为连接DS的引脚号,clockPin为连接SH_CP的引脚号,bitOrder为设置数据位移顺序,分别为高位先入MSBFIRST或者低位先入LSBFIRST。
  • dataPin 数据引脚
  • clockPin 时钟引脚
  • bitOrder 移位顺序(MSBFIRST或LSBFIRST)
  • val 数据

2、unsigned long pulseIn(uint8_t pin,uint8_t state,unsigned long timeout)

  • 读引脚的脉冲,脉冲可以是HIGH或者LOW。如果是HIGH,函数将先等引脚变为高电平,然后开始计时,一直到变为低电平为止,返回脉冲持续的时间长短,单位为微秒。如果超时还没有读到脉冲数据将返回0。
  • pin引脚号
  • state 脉冲状态
  • timeout 超时时间(us)

四、时间

1、usigned long millis(void)

  • 毫秒时间
  • 获取机器开始运行的时间长度,单位毫秒,系统最长的记录时间接近50天,如果超过时间将从0开始
  • 时间为unsigned long 类型,如果用int保存时间将得到错误结果。

2、void delay( unsigned long ms)

  • 延时函数,单位毫秒
  • 参数为unsigned long,因此在延时参数超过32767(int型最大值)时,需要用“UL”后缀表示为无符号长整形。

3、void delayMicroseconds (unsigned int us)

  • 延时,单位为微秒。

五、数学库

1、#define min(a,b)       ((a)<(b)?(a):(b))      最小值

2、#define max(a,b)       ((a)>(b)?(a):(b))      最大值

3、#define abs(x)           ((x)>0?(x):-(x))       绝对值

六、随机数

1、void randomSeed(unsigned int seed)

  • 设置随机种子,可以用当前时间作为随机种子,随机种子的设置对产生的随机序列有影响。

2、long random(long howbig)

  • 生成0~(howbig-1)范围的随机数

3、long random(long howsmall ,long howbig)

  • 生成howsmall~(howbig-1)范围的随机数

七、设置中断

1、void attachInterrupt(uint8_t interruptNum ,void(*)(void)userFunc,int mode)

  • 设置中断,指定中断函数,外部中断有0和1两种,一般对应2号和3号数字引脚。
  • interrupt 中断类型 0/1
  • fun 中断处理函数
  • mode 触发方式 
  1. LOW 低电平触发
  2. CHANGE 变化时触发中断
  3. RISING 低电平变为高电平触发中断
  4. FALLING 高电平变为低电平触发中断
  • 在中断函数中不能使用延时函数,millis函数始终返回进入中断前的值,读串口数据的话,可能会丢失。中断函数中使用的变量要定义为volatile类型。

2、 void detachInterrupt (uint8_t interruptNum)

  • 取消中断
  • interruptNum 中断类型

3、#define interrupts()        sei()                        //开中断

4、#define noInterrupt()      cli()                       //关中断

八、串口通讯

使用类函数

1、void begin(long speed)  //打开串口,参数:波特率

2、uint_t available(void)   //获取串口上可读取数据的字节数,该数据是指已经到达并存储在接收缓存(共有64字节)。

3、int read(void)               // 返回值:串口上第一个可读取的字节(无可读取的数据返回-1)

4、void flush(void)            //刷新串口数据

5、virtual void write(uint8_t val)       // 写二进制数据到串口,数据时一个字节一个字节的发送。

6、int print() 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值