やりたいこと
サーボを簡単に回したい! 簡単に回したい! Arduino NanoでSG90を動かす一番簡単なコードをまとめました。
ボタンを押している押すとサーボが動いて、離すと戻るコード
#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); }