Rogue 2022. 9. 21. 17:07
반응형
#include <Servo.h>

const int SERVO = 10;
Servo servo;

void setup(){
  servo.attach(SERVO);
  servo.write(0);

  delay(1000);

  for (int cnt=0; cnt<=2; cnt++){
    servo.write(0);
    delay(1000);
    servo.write(180);
    delay(1000);
  }

  servo.detach();
}

void loop(){

}

// Servo motor 180 adjustment
#include <Servo.h>

const int SERVO = 10;
Servo servo;

void setup(){
  servo.attach(SERVO);
  servo.write(0);

  delay(1000);

  for(int angle=0; angle<=180; angle++){
    servo.write(angle);
    delay(30);
  }
  servo.detach();
}

void loop(){

}
#include <Servo.h>

const int SERVO = 10;
Servo servo;

void setup(){
  Serial.begin(115200);
  servo.attach(SERVO);
  servo.write(0);
  delay(1000);
}

void loop(){
  if (Serial.available()){
    char userInput = Serial.read();

    switch(userInput){
      case '1' :
        servo.write(30);
        delay(1000);
        break;

      case '2' :
        servo.write(90);
        delay(1000);
        break;

      case '3' :
        servo.write(150);
        delay(1000);
        break;
      
      defalut:
        break;
    }
  }
}

// Control servo by serial
#include <Servo.h>

const int SERVO = 10;
Servo servo;
const int buttonPin = 2;

int servo_state = 30;
bool servo_state_changed = false;

void buttonPressed()
{
  servo_state = (servo_state == 30)?150:30;
  servo_state_changed = true;
}

void setup()
{
  pinMode(buttonPin, INPUT);
  attachInterrupt(digitalPinToInterrupt(buttonPin), buttonPressed, RISING);
  servo.attach(SERVO);
  servo.write(0);
  delay(1000);
}

void loop()
{
  if(servo_state_changed)
  {
    servo_state_changed = false;
    servo.write(servo_state);
  }
}

//book 248page Rocate servo using button interrupt
반응형