目录
目的
代码 只有io口1是支持pwm,其他要软件pwm
编译
运行
目的
黄色pwm,红色正极,棕色负极
让sg90舵机转动,就需要一个20ms的周期pwm,其中高电平在0.5-2.5ms之间
- 转动角度 高电平在一个周期内的时间
- 0° 0.5ms
- 45° 1ms
- 90° 1.5ms
- 135° 2ms
- 180° 2.5ms
代码 只有io口1是支持pwm,其他要软件pwm
#include <softPwm.h>
#include <wiringPi.h>
#include <stdio.h>
int main()
{//初始化wiringpiif(-1==wiringPiSetup()){return -1;}//wiringpi引脚编码int pin = 1;//输出模式pinMode (pin , PWM_OUTPUT);//传统pwm模式 占空比模式pwmSetMode (PWM_MODE_MS);//设置时钟频率 树莓派的PWM时钟基础频率是19.2MHz//我们把pwm分为2000分,要50hz的pwm频率,那时钟频率=19200*1000/(50*2000)=192pwmSetClock (192);//周期为20mspwmSetRange (2000);int i = 0;while(1){i++;pwmWrite(pin,i);printf("%d\n",i);delay(20);}return 0;
}
我测试的是100左右舵机0°。750左右180°,可能是我树莓派硬件问题,理论是50-250的,我的是100-750
编译
gcc main.c -lwiringPi
运行
sudo ./a.out