C++ サーボモータを回す
PWMのヂューティーを変化させると、サーボーモータの角度が変わることを確認しよう
#include <wiringPi.h> #include <iostream> #include <softPwm.h> using namespace std; int PORT = 18; void set_angle(int angle) { double duty; duty = angle / 9.8 + 5; softPwmWrite(PORT, int(duty)); } int main() { if (wiringPiSetupGpio() == -1) { cout << "Gpio setup error\n"; exit(EXIT_FAILURE); } softPwmCreate(PORT, 0, 100); for(int deg = 0; deg<=180 ; deg+= 10) { cout << "deg=" << deg << endl; set_angle(deg); delay(1000); } }
このサーボモータの角度の精度はそれほどでもないのです