Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Servo.h>
- /*//armário 1
- //servo 1
- const int pinoServo1 = 5; //PINO DIGITAL UTILIZADO PELO SERVO1
- Servo s1; //OBJETO DO TIPO SERVO1
- String comando1 = "1";//string que comanda os armários
- //botão 1
- const int bt1 = 4;//botão 1
- int bt1State = 0;//variável que lê estado do botão 1*/
- //armário 2
- //servo 2
- const int pinoServo2 = 6; //PINO DIGITAL UTILIZADO PELO SERVO1
- Servo s2; //OBJETO DO TIPO SERVO1
- String comando2 = "2";//string que comanda os armários
- //botão 2
- const int bt2 = 7;//botão 1
- int bt2State = 0;//variável que lê estado do botão 1
- bool flag = 0;//evita que você abra um armário em quanto outro estiver aberto tem que ser 0 para abrir e 1 para fechar
- void setup ()
- {
- delay(5000);
- Serial.begin(115200);//inicia a comunicação serial
- Serial.println();//dá um espaço no serial monitor
- /*//armário 1 setup
- s1.attach(pinoServo1); //ASSOCIAÇÃO DO PINO DIGITAL AO OBJETO DO TIPO SERVO
- s1.write(90); //INICIA O MOTOR NA POSIÇÃO de abertura
- pinMode(bt1, INPUT);*/
- //armário 2 setup
- s2.attach(pinoServo2); //ASSOCIAÇÃO DO PINO DIGITAL AO OBJETO DO TIPO SERVO
- s2.write(90); //INICIA O MOTOR NA POSIÇÃO de fechamento
- pinMode(bt2, INPUT);//define botão como input
- }
- void loop()
- {
- //verifica armário 1
- //flag = abre(comando1, flag, s1);
- // flag = fecha(bt1State, flag, s1, bt1);
- //verifica armário 2
- flag = abre(comando2, flag, s2);//abre armários voltados para a direita
- flag = fecha(bt2State, flag, s2, bt2);
- }
- bool abre(String comandox, bool flag, Servo s)
- {
- String comando = "";
- if(Serial.available())
- {
- comando = Serial.readStringUntil('\n'); //lê serial monitor até o fim de linha
- }
- if(comando == comandox && flag == 0) //se a string digitada no serial monitor for igual a string de abertura de um armário x ele abre o armário
- {
- s.write(180);//coloca servo na posição 180 para abrir o armário
- flag = 1;//flag vai para 1, após ser aberto
- }
- return flag;
- }
- bool fecha(int btState, bool flag, Servo s, const int bt)
- {
- btState = digitalRead(bt);//lê botão
- if(btState == HIGH && flag == 1) //fecha
- {
- s.write(90);//coloca o servo na posição 90 graus para fechar o armário
- flag = 0;//flag vai para 0 após ser fechado
- }
- return flag;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement