Orangepi Zero2使用外设驱动库wiringOP配合定时器驱动SG90舵机

目录

一、舵机的基本认知和硬件接线

1.1 舵机的基本认知:

1.2 硬件接线:

1.3 怎么控制舵机旋转不同的角度:

二、Linux定时器

2.1 定时器setitimer()函数原型和头文件:

2.2 信号处理函数signal()原型和头文件:

2.3 定时器setitimer()函数应用实例:

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.02s20ms左右数据:不同的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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值