int greenLed = 13;
int redLed = 12;
int buzzer = 11;
Servo servo;
int helloLdr = A0;
int foodLdr = A1;
int callibrationPot = A2;
int ZERO = 0;
int HALF = 45;
int FULL = 80;
int EXTR = 120;
int HAPPY = 880;
int ANGRY = 311;
int countH = 0;
int countA = 0;
int deltaT = 2;
void setup() {
// put your setup code here, to run once:
pinMode(greenLed, OUTPUT);
pinMode(redLed, OUTPUT);
pinMode(buzzer, OUTPUT);
servo.attach(9);
pinMode(helloLdr, INPUT);
pinMode(foodLdr, INPUT);
pinMode(callibrationPot, INPUT);
servo.write(ZERO);
}
void loop() {
// put your main code here, to run repeatedly:
if (analogRead(helloLdr) < analogRead(callibrationPot)) {
switch (countH) {
case 0:
hello0();
countH++;
break;
case 1:
hello1();
countH++;
break;
case 2:
hello2();
countH = 0;
break;
}
// digitalWrite(greenLed, HIGH);
// digitalWrite(redLed, LOW);
}
else if (analogRead(foodLdr) < analogRead(callibrationPot)) {
switch (countA) {
case 0:
food0();
countA++;
break;
case 1:
food1();
countA++;
break;
case 2:
food2();
countA = 0;
break;
}
// digitalWrite(greenLed, LOW);
// digitalWrite(redLed, HIGH);
}
else {
digitalWrite(greenLed, LOW);
digitalWrite(redLed, LOW);
noTone(buzzer);
}
}
void hello0() {
digitalWrite(greenLed, HIGH);
servo.write(HALF);
delay(500 * deltaT);
tone(buzzer, HAPPY);
delay(100 * deltaT);
noTone(buzzer);
servo.write(ZERO);
delay(400 * deltaT);
}
void hello1() {
digitalWrite(greenLed, HIGH);
servo.write(HALF);
delay(200 * deltaT);
servo.write(FULL);
delay(300 * deltaT);
tone(buzzer, HAPPY);
delay(200 * deltaT);
noTone(buzzer);
servo.write(ZERO);
delay(400 * deltaT);
}
void hello2() {
digitalWrite(greenLed, HIGH);
servo.write(HALF);
delay(200 * deltaT);
servo.write(FULL);
delay(300 * deltaT);
tone(buzzer, HAPPY);
delay(200 * deltaT);
noTone(buzzer);
delay(100 * deltaT);
digitalWrite(greenLed, LOW);
delay(50 * deltaT);
digitalWrite(greenLed, HIGH);
delay(50 * deltaT);
digitalWrite(greenLed, LOW);
delay(50 * deltaT);
digitalWrite(greenLed, HIGH);
delay(200 * deltaT);
servo.write(ZERO);
delay(400);
}
void food0() {
digitalWrite(greenLed, HIGH);
servo.write(HALF);
delay(500 * deltaT);
tone(buzzer, HAPPY);
delay(100 * deltaT);
noTone(buzzer);
servo.write(EXTR);
delay(200 * deltaT);
digitalWrite(greenLed, LOW);
digitalWrite(redLed, HIGH);
tone(buzzer, ANGRY);
servo.write(ZERO);
delay(500 * deltaT);
}
void food1() {
digitalWrite(greenLed, HIGH);
servo.write(HALF);
delay(500 * deltaT);
noTone(buzzer);
servo.write(EXTR);
delay(200 * deltaT);
digitalWrite(greenLed, LOW);
digitalWrite(redLed, HIGH);
tone(buzzer, ANGRY);
servo.write(HALF);
delay(500 * deltaT);
servo.write(ZERO);
delay(500 * deltaT);
}
void food2() {
digitalWrite(redLed, HIGH);
servo.write(FULL);
delay(500 * deltaT);
tone(buzzer, ANGRY);
servo.write(EXTR);
delay(200 * deltaT);
servo.write(FULL);
delay(500 * deltaT);
servo.write(EXTR);
delay(200 * deltaT);
servo.write(FULL);
delay(500 * deltaT);
servo.write(EXTR);
delay(200 * deltaT);
servo.write(FULL);
delay(500 * deltaT);
servo.write(ZERO);
delay(500 * deltaT);
}
Nenhum comentário:
Postar um comentário
Pode falar, eu não mordo... Pelo menos não através da internet