#include <Arduino.h>
#include <Servo.h>
// khai báo đối tượng servo
#define servo1Pin 10
#define servo2Pin 11
Servo servo1;
Servo servo2;
byte pos1 = 0, pos2 = 0;
byte status_servo1, status_servo2;
const byte delay_ms = 30;
// khai báo nút bấm
#define button1 4
#define button2 5
byte status_bt1_pre = 1, status_bt2_pre = 1;
byte status_bt1_last, status_bt2_last;
void setup() {
servo1.attach(servo1Pin);
servo2.attach(servo2Pin);
servo1.write(pos1);
servo2.write(pos2);
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
}
void loop() {
byte read_bt1 = digitalRead(button1);
byte read_bt2 = digitalRead(button2);
// trạng thái nút 1
if (read_bt1 == 0 && status_bt1_pre == 1){
status_bt1_last = 1;
}
status_bt1_pre = read_bt1;
// trạng thái nút 2
if (read_bt2 == 0 && status_bt2_pre == 1){
status_bt2_last = 1;
}
status_bt2_pre = read_bt2;
// khởi động servo 1
if(status_bt1_last == 1){
if(pos1 == 0) status_servo1 = 1;
if(pos1 == 45) status_servo1 = 0;
pos1 += status_servo1;
servo1.write(pos1);
}
// khởi động servo 1
if(status_bt2_last == 1){
if(pos2 == 0) status_servo2 = 1;
if(pos2 == 90) status_servo2 = 0;
pos2 += status_servo2;
servo2.write(pos2);
}
delay(delay_ms);
}