that_one_nigga_you_k

EE1

Dec 15th, 2021 (edited)
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.62 KB | None | 0 0
  1. // C++ code
  2.  
  3. //variáveis globais
  4. #include <LiquidCrystal.h>  // inclusão da biblioteca do LCD
  5.  
  6. unsigned long time = 0;
  7.  
  8. const int azul = A1;
  9. const int vermelho = A0;
  10. const int verde = A2;
  11.  
  12. bool definicao = false;
  13. int tempo = 0;
  14. unsigned long timeTotal = 0;
  15.  
  16. LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //declaração da tela LCD
  17.  
  18. //setup
  19. void setup()
  20. {
  21.    
  22.     pinMode(13, OUTPUT);
  23.     pinMode(8, INPUT);
  24.     pinMode(7, INPUT);
  25.     pinMode(6, INPUT);
  26.     pinMode(10, INPUT);
  27.     Serial.begin(9600);
  28.  
  29.     pinMode(azul, OUTPUT);
  30.     pinMode(verde, OUTPUT);
  31.     pinMode(vermelho, OUTPUT);
  32.    
  33.     analogWrite(azul, 0);
  34.     analogWrite(verde, 0);
  35.     analogWrite(vermelho, 0);
  36.    
  37.     lcd.begin(16, 2);
  38.     lcd.clear();
  39. }
  40.  
  41.  
  42.  
  43. //Funcoes auxiliares LED
  44. void vermelhoFuncao(){
  45.   analogWrite(azul, 0);
  46.   analogWrite(verde, 0);
  47.   analogWrite(vermelho, 255);
  48. }
  49.  
  50. void verdeFuncao(){
  51.   analogWrite(azul, 0);
  52.   analogWrite(verde, 255);
  53.   analogWrite(vermelho, 0);
  54. }
  55.  
  56. void amareloFuncao(){
  57.   analogWrite(azul,0);
  58.   analogWrite(verde, 255);
  59.   analogWrite(vermelho, 255);
  60. }
  61.  
  62. //loop
  63. void loop()
  64.   {  
  65.     analogWrite(azul,255);
  66.     analogWrite(verde, 255);
  67.     analogWrite(vermelho, 255);
  68.  
  69.    while (definicao == false) {
  70.     //intruções pra pessoa definir o tempo de banho.
  71.     if(digitalRead(6)) {
  72.         tempo = 7000; //reduzido em 100 pra 1
  73.         definicao = true;
  74.     }
  75.    
  76.     if(digitalRead(7)) {
  77.         tempo = 10000; //reduzido em 100 pra 1
  78.         definicao = true;
  79.     }
  80.    
  81.     if(digitalRead(10)) {
  82.         tempo = 15000; //reduzido em 100 pra 1
  83.         definicao = true;
  84.     }
  85.     time = millis(); //início da contagem de tempo
  86.   }
  87.  
  88.   timeTotal = millis();
  89.   if ((timeTotal - time) <= (tempo/2)) { //verifica se estamos na primeira metade
  90.     verdeFuncao();
  91.     if((timeTotal - time) == 10) { //compensa o clock do arduíno
  92.       lcd.clear();
  93.       lcd.print("Inicio do banho");
  94.     }
  95.   }
  96.  
  97.   if ((timeTotal - time) > (tempo/2) && (timeTotal - time) <= (tempo)) { //verifica se estamos na segunda metade
  98.     amareloFuncao();
  99.     if ((timeTotal - time) == (tempo/2) + 1){ //compensa o clock do arduíno
  100.         lcd.clear();
  101.         lcd.print("Metade do banho");
  102.     }
  103.   }  
  104.  
  105.   if ((timeTotal - time) > (tempo)) { //verifica se excedeu o tempo de banho
  106.     vermelhoFuncao();
  107.     if ((timeTotal - time) == (tempo) + 1) { //compensa o clock do arduíno
  108.         lcd.clear();
  109.         lcd.print("Saia do banho");
  110.     }
  111.    
  112.     if (digitalRead(8)) { //caso se opte pelo efeito sonoro
  113.         digitalWrite(13, HIGH); //faz barulho
  114.         delay(1000);
  115.         digitalWrite(13, LOW);
  116.         delay(1000);
  117.     }
  118.   }
  119.  
  120.  }
  121.  
Add Comment
Please, Sign In to add comment