ESP32など

電子工作してます

一番簡単なArduinoでサーボ(SG90)を回す方法(コピペOK)

やりたいこと

サーボを簡単に回したい! 簡単に回したい! Arduino NanoでSG90を動かす一番簡単なコードをまとめました。

Arduino Nano

Arduino Nano

Amazon

ボタンを押している押すとサーボが動いて、離すと戻るコード
#include <Servo.h>
Servo myservo;
int servoPin = 9; // サーボのピン番号(D9)
int buttonPin = 2; // ボタンのピン番号(D2)

void setup() {
  myservo.attach(servoPin);
  pinMode(buttonPin, INPUT_PULLUP);
}

void loop() {
  int buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {
    myservo.write(180);  // ボタンが押されている場合、サーボモーターを180度に動かす
  } else {
    myservo.write(0);  // ボタンが離されている場合、サーボモーターを0度に戻す
  }
}
ボタンを一度押すと180度動いて、もう一度押すと0度に戻るコード
#include <Servo.h>
Servo myservo;
int servoPin = 9; // サーボのピン番号(D9)
int buttonPin = 2; // ボタンのピン番号(D2)

int flag_1 = 0; // ボタン離されたフラグ
int flag_2 = 0; // サーボ状態フラグ

void setup() {
  myservo.attach(servoPin);
  pinMode(buttonPin, INPUT_PULLUP);
}

void loop() {
  int buttonState = digitalRead(buttonPin);
  
  if (buttonState == HIGH) {
    
    if (flag_1 == 1) {
      flag_1 = 0;
  
      if (flag_2 == 1){
        flag_2 = 0;
        myservo.write(180);
      }
      else {
        flag_2 = 1;
        myservo.write(0);
      }
    }
  }
  else {
    flag_1 = 1;
  }
  delay(15);
}
自動で0度と180度を往復するコード
#include <Servo.h>
Servo myservo;
int servoPin = 9; // サーボのピン番号(D9)

void setup() {
  myservo.attach(servoPin);
}

void loop() {
  myservo.write(180);
  delay(500);
  myservo.write(0);
  delay(500);
}