raspberry Piの課題

C++ サーボモータを回す

C++でPWMを変化させてサーボモータを操作します

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);
	}
}

このサーボモータの角度の精度はそれほどでもないのです