一、数字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]区间,有以下类型:
- DEFAULT:默认5V。
- INTERNAL:低功耗模式,ATmega168和ATmega8对应1.1V到2.56V。
- 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 触发方式
- LOW 低电平触发
- CHANGE 变化时触发中断
- RISING 低电平变为高电平触发中断
- 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()