/* Projeto elevador Botao de cima--botao que chama o elevador para cima Botao de baixo---botao que chama o elevador para baixo Botao comando--botao que execulta o comando de subir ou descer Chave de fim de curso de cima e de baixo Saida 1,2,3--saida para reles */ #define Botcima 2 // Botao de cima #define Botbaixo 3 // Botao de baixo #define Botcom 4 // Botao comando executa sobe/desce #define Botstop 5 // Botao de parada #define Chfccima 6 // Chave fim de curso de cima #define Chfcbaixo 7 // Chave fim de curso de baixo #define Saida1 8 // Saidas para reles #define Saida2 9 #define Saida3 10 #define Saida4 11 int val; int pos; //------------------------------------- void setup() { pinMode(Botcima, INPUT); // Define porta como entrada digitalWrite(Botcima, HIGH); //Aciona o resistor pull-up interno pinMode(Botbaixo, INPUT); digitalWrite(Botbaixo, HIGH); pinMode(Botcom, INPUT); digitalWrite(Botcom, HIGH); pinMode(Botstop, INPUT); digitalWrite(Botstop, HIGH); pinMode(Chfccima, INPUT); pinMode(Chfcbaixo, INPUT); pinMode(Saida1, OUTPUT); pinMode(Saida2, OUTPUT); pinMode(Saida3, OUTPUT); pinMode(Saida4, OUTPUT); digitalWrite(Saida1, 1); // Ligua Saidas digitalWrite(Saida2, 1); digitalWrite(Saida3, 1); digitalWrite(Saida4, 1); } void subir() { while(!digitalRead(Chfccima)) { if(digitalRead(Chfccima)==LOW) { digitalWrite(Saida1, 0); // Liga saidas 1 e 2 digitalWrite(Saida2, 0); digitalWrite(Saida3, 1); digitalWrite(Saida4, 1); } if(digitalRead(Chfccima)==HIGH) { digitalWrite(8, 1); digitalWrite(9, 1); digitalWrite(10, 1); digitalWrite(11, 1); pos = 0; } } } void descer() { while(!digitalRead(Chfcbaixo)) { if(digitalRead(Chfcbaixo)==LOW) { digitalWrite(Saida1, 1); // Liga saidas 2 e 3 digitalWrite(Saida2, 1); digitalWrite(Saida3, 0); digitalWrite(Saida4, 0); } if(digitalRead(Chfcbaixo)==HIGH) { digitalWrite(8, 1); digitalWrite(9, 1); digitalWrite(10, 1); digitalWrite(11, 1); pos = 1; } } } void loop() { val=digitalRead(Botcima); if(val!=1) { subir(); } val=digitalRead(Botbaixo); if(val!=1) { descer(); } val=digitalRead(Botcom); if(val!=1) { switch(pos) { case 0: descer(); break; case 1: subir(); break; } } }