forked from kevinsn/projeto-1-senai-iot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAula10_Acender_Luz_Botao_e_servo.ino
62 lines (53 loc) · 1.46 KB
/
Aula10_Acender_Luz_Botao_e_servo.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <Servo.h>
Servo myservo;
const int pinoLed = 9;
const int pinoBotao = 5;
int pressionadoAnterior = 0;
int ligado = 0;
int pos; // variable to store the servo position
int pos2;
int guardaState2;
void setup() {
Serial.begin(9600);
myservo.attach(6);
while (!Serial) {}
pinMode (pinoLed, OUTPUT);
pinMode (pinoBotao, INPUT);
}
void loop() {
int pressionado = digitalRead(pinoBotao);
// caso o botao nao estava pressionado no instante anterior
// && é o AND (E)
Serial.println(pressionado);
if (pressionado && (pressionadoAnterior == LOW)) {
acionaPortao(ligado);
delay(1000);
ligado = 1 - ligado;
digitalWrite(pinoLed, ligado);
}
//digitalWrite(pinoLed, ligado);
//acionaPortao(ligado);
pressionadoAnterior = pressionado;
}
void acionaPortao(int direcao) {
// Abrir Portao : direcao = 1
if (direcao == 0) {
for (pos = 0; pos <= 100; pos += 1) { // goes from 0 degrees to 180 degrees
myservo.write(pos);
Serial.println("Portao Abrindo");
Serial.flush();
}
guardaState2 = guardaState2 + 1;
Serial.println("Portao Aberto");
}
// Fechar Portao
else if (direcao == 1) {
for (pos2 = pos; pos2 >= 0; pos2--) { // goes from 180 degrees to 0 degrees
myservo.write(pos2); // waits 15ms for the servo to reach the position
Serial.println("Portao Fechando");
Serial.flush();
}
guardaState2 = guardaState2 - 1;
Serial.println("Portao Fechado");
}
}