#include <Servo.h>
Servo servo1;
void setup() {
Serial.begin(115200);
// put your setup code here, to run once:
pinMode(13,OUTPUT); //led
pinMode(12,OUTPUT); //led
pinMode(11,OUTPUT); //buzzer
servo1.attach(10);//servo
pinMode(8, INPUT); //sensor or switch
pinMode(7, INPUT); //sensor or switch
Serial.println("test");
}
unsigned long tl=0;
const long itv=500;
long tb=0;
bool c=0; byte csen=0;
bool s1,s2,sl,sb;
void loop() {
tb = millis();
if(tb-tl>=itv){
c=!c;
tl=tb;
}
s1=digitalRead(8);
s2=digitalRead(7);
if (s1==LOW || s2==LOW){
sb=1;
}else if(s1==HIGH || s2==HIGH){
sb=0;
}
if(sl==0 && sb==1 && csen==0){
sl=sb;
srv(0,90,50);
csen=1;
}else if (sl==1 && sb==0 && csen==1){
csen=0;
sl=sb;
srv(90,0,50);
}
Serial.print("csen: ");Serial.print(csen);
Serial.print(" s1: ");Serial.print(s1);
Serial.print(" s2: ");Serial.print(s2);
Serial.print(" sb: ");Serial.print(sb);
Serial.print(" sl: ");Serial.print(sl);
Serial.print(" tb: ");Serial.print(tb);
Serial.print(" tl: ");Serial.println(tl);
}
void blink(bool cond){
if (cond){
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
tone(11, 500);
}
else {
digitalWrite(12, HIGH);
digitalWrite(13,LOW);
noTone(11);
}
}
void srv(int deg0, int deg1,int del){
servo1.attach(10);
if (deg0<deg1){
for(int i=deg0;i<=deg1;i+=5){
servo1.write(i);
delay(del);
}
}
else if (deg0>deg1){
for(int i=deg0;i>=deg1;i-=5){
servo1.write(i);
delay(del);
}
}
else Serial.println("sudut sama");
servo1.detach();
}