您现在的位置是:网站首页> 硬件
不用Arduino库控制舵机
- 硬件
- 2021-10-17
- 770人已阅读
摘要
#define ServoPin 9
void ServoControl(int servoAngle)
{
double thisAngle = map(servoAngle, 0, 180, 500, 2500);//等比例角度值范围转换高电平持续时间范围
unsigned char i = 50;//50Hz 每秒的周期次数(周期/秒) 即1S 50 个周期 每个周期20ms
while (i--)
{
digitalWrite(ServoPin, HIGH);
delayMicroseconds(thisAngle); //高电平时间
digitalWrite(ServoPin, LOW);
delayMicroseconds(20000 - thisAngle);//每个周期20ms减去高电平持续时间
}
}
void setup() {
Serial.begin(115200);
pinMode(ServoPin, OUTPUT);
digitalWrite(ServoPin, LOW);//先保证拉低
}
void loop()
{
for (int i = 0; i <= 180 ; i += 1)
{
delay(500);
Serial.println(i);
ServoControl(i);
}
}