ラズベリーパイ4 C言語でサーボモーター制御 RaspberryPi SG90

ラズベリーパイでサーボモータの制御を行いました。

詳細は動画で説明していますので動画をご視聴ください。

 

#include<wiringPi.h>
#include<stdio.h>

#define GPIO12 12
int main(void){
    int i;
    
    if(wiringPiSetupGpio()==-1) return 1;
    
    //PIN設定
    pinMode(GPIO12, PWM_OUTPUT);//GPIO12をPWM出力に設定
    pwmSetMode(PWM_MODE_MS);//markspaceモードに設定(周波数を指定する場合はこのモードにする必要あり)
    
    //PWM周期の設定(SG90の周期20[ms](周波数50[Hz])と同じに設定する)→周期=19.2*10^6/(pwmSetClock*pwmSetRange)
    pwmSetRange(1000);//レンジを設定→pwmWrite関数で使用できる数字の決定(Duty比の分母となる値)→19.2*10^6[Hz]/1000=19.2*10^3
    pwmSetClock(384);//クロック数を設定 →19.2*10^3[Hz]/50[Hz]=384

    //サーボモータの回転実行
    for(i=0;i<5;i++){
    pwmWrite(GPIO12,25);//0度回転((0.5[ms]/20[ms])*1000=25)
    delay(1000);
    pwmWrite(GPIO12,120);//180度回転((2.4[ms]/20[ms])*1000=120)
    delay(1000);
    }
    
    https://youtu.be/BASaqK2NlUo
    
    return 0;
}

 

youtu.be