c语言控制sg90舵机
时间: 2023-10-26 17:21:34 浏览: 98
sg90舵机控制程序
控制 SG90 伺服电机需要使用一个 PWM 输出引脚和一个控制信号输入引脚。下面是一个示例代码,可以用于控制 SG90 伺服电机:
```c
#include <stdio.h>
#include <wiringPi.h>
#define PWM_PIN 1 // 使用 WiringPi 库的 GPIO1 引脚
#define CONTROL_PIN 2 // 使用 WiringPi 库的 GPIO2 引脚
int main() {
// 初始化 WiringPi 库
if (wiringPiSetup() == -1) {
printf("Failed to initialize WiringPi library\n");
return 0;
}
// 设置 PWM 输出引脚
pinMode(PWM_PIN, PWM_OUTPUT);
pwmSetMode(PWM_MODE_MS);
pwmSetClock(192);
pwmSetRange(2000);
// 设置控制信号输入引脚
pinMode(CONTROL_PIN, OUTPUT);
// 控制 SG90 伺服电机
while (1) {
// 控制信号输入引脚输出高电平
digitalWrite(CONTROL_PIN, HIGH);
// 设置 PWM 输出引脚输出信号
pwmWrite(PWM_PIN, 100); // 控制 SG90 转到 0 度位置
delay(1000);
pwmWrite(PWM_PIN, 150); // 控制 SG90 转到 45 度位置
delay(1000);
pwmWrite(PWM_PIN, 200); // 控制 SG90 转到 90 度位置
delay(1000);
pwmWrite(PWM_PIN, 250); // 控制 SG90 转到 135 度位置
delay(1000);
pwmWrite(PWM_PIN, 300); // 控制 SG90 转到 180 度位置
delay(1000);
// 控制信号输入引脚输出低电平
digitalWrite(CONTROL_PIN, LOW);
}
return 0;
}
```
在上面的代码中,我们使用了 WiringPi 库来控制 GPIO 引脚的输出和输入,其中 PWM 输出引脚使用了 WiringPi 库的 PWM 输出功能。我们通过设置 PWM 输出引脚的输出值来控制 SG90 伺服电机的转动角度,而控制信号输入引脚则用来控制 SG90 伺服电机的开关状态。在上面的示例代码中,我们使用了一个 while 循环来不断地控制 SG90 伺服电机的转动,每隔一秒钟控制 SG90 伺服电机转到不同的角度位置。
阅读全文