Advertisement
odilonafonso

testeLabGaragemMarcioSCunha.ino

Jul 22nd, 2016
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.27 KB | None | 0 0
  1. #define pino1 4                   //coloque o pino que quiser
  2. #define pino2 5                   //coloque o pino que quiser
  3. #define determinadoTempo 10000    //em millisegundos...
  4. int resultadoPino1;
  5. long momentoPino1Pressionado;
  6. long tempoDesdePino1Pressionado;
  7. int saida;
  8.  
  9. int estado;
  10. #define INICIO             0
  11. #define PRESSIONOU_PINO1   1
  12. #define PRESSIONOU_PINO2   2
  13. #define TEMPO_ESGOTADO     3
  14.  
  15. void setup(){
  16.    Serial.begin(9600);
  17.    Serial.println("inicio...");
  18.    pinMode(pino1, OUTPUT);
  19.    pinMode(pino2, OUTPUT);
  20.    digitalWrite(pino1, LOW);
  21.    digitalWrite(pino2, LOW);
  22.    pinMode(pino1, INPUT);
  23.    pinMode(pino2, INPUT);
  24.    estado = INICIO;
  25.    saida = -1;
  26. }
  27.  
  28. bool pressionouPino1(){
  29.    return (digitalRead(pino1));
  30. }
  31.  
  32. bool pressionouPino2(){
  33.    return (digitalRead(pino2));
  34. }
  35.  
  36. long displayEstado = 5000;
  37. long controlaEstado = -displayEstado;
  38. void loop(){
  39.    if (millis() - controlaEstado > displayEstado) {
  40.       controlaEstado = millis();
  41.       Serial.print("Estado:");Serial.println(estado);
  42.    }
  43.    switch(estado) {
  44.       case INICIO:
  45.          if (pressionouPino1()) {
  46.             momentoPino1Pressionado = millis();
  47.             estado = PRESSIONOU_PINO1;
  48.          }
  49.          break;
  50.       case PRESSIONOU_PINO1:
  51.          tempoDesdePino1Pressionado = millis() - momentoPino1Pressionado;
  52.          if (tempoDesdePino1Pressionado >= determinadoTempo) {
  53.             saida = 0;
  54.             estado = TEMPO_ESGOTADO;
  55.          }
  56.          else {
  57.             if (pressionouPino2()) {
  58.                saida = 1;
  59.                estado = PRESSIONOU_PINO2;
  60.             }
  61.          }
  62.          break;
  63.       case PRESSIONOU_PINO2:
  64.          Serial.println("pressionou Pino1 e Pino2 dentro do tempo determinado...");
  65.          Serial.println("E agora Sr. MarcioSCunha  ??");
  66.          Serial.println("favor definir o que fazer...");
  67.          delay(displayEstado);
  68.          break;
  69.       case TEMPO_ESGOTADO:
  70.          Serial.println("pressionou Pino1 e não pressionou Pino2 dentro do tempo determinado...");
  71.          Serial.println("E agora Sr. MarcioSCunha  ??");
  72.          Serial.println("favor definir o que fazer...");
  73.          delay(displayEstado);
  74.          break;
  75.       default:
  76.          Serial.println("Não deveria ter chegado aqui...");
  77.    }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement