目录
2.4 使用wiringOP库配合定时器驱动舵机旋转0-180°:
一、舵机的基本认知和硬件接线
1.1 舵机的基本认知:
如下图所示:是一个SG90舵机,常用三根或者四根接线,红色为电源VCC,棕色为电源GND,黄色为PWM信号。
控制用处:垃圾桶项目开盖用、智能小车的全比例转向、摄像头云台、机械臂等常见的有0-90°、0-180°、0-360°
1.2 硬件接线:
1.3 怎么控制舵机旋转不同的角度:
-
向黄色信号线“灌入”PWM信号。PWM波的频率不能太高,50hz,即周期=1/频率=1/50=0.02s,20ms左右数据:不同的PWM波形对应不同的旋转角度,以20ms为周期,50hz为频率的PWM波
定时器需要定时20ms,关心的单位0.5ms, 20ms = 0.5ms * 40
二、Linux定时器
2.1 定时器setitimer()函数原型和头文件:
/* setitimer 是一个UNIX系统上的系统调用函数,用于设置和管理定时器。它通常用于定期触发信号或执行某些操作 */
#include <sys/time.h>
int setitimer(int which, const struct itimerval *new_value, struct itimerval *old_value);
int 函数返回值,成功执行时返回0,失败返回-1
int whic 指定要设置的定时器类型,可以是 ITIMER_REAL、ITIMER_VIRTUAL 或 ITIMER_PROF 中的一个
1. ITIMER_REAL //数值为0,计时器的值实时递减,发送的信号是SIGALRM。
2. ITIMER_VIRTUAL //数值为1,进程执行时递减计时器的值,发送的信号是SIGVTALRM。
3. ITIME