Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // C++ code
- //variáveis globais
- #include <LiquidCrystal.h> // inclusão da biblioteca do LCD
- unsigned long time = 0;
- const int azul = A1;
- const int vermelho = A0;
- const int verde = A2;
- bool definicao = false;
- int tempo = 0;
- unsigned long timeTotal = 0;
- LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //declaração da tela LCD
- //setup
- void setup()
- {
- pinMode(13, OUTPUT);
- pinMode(8, INPUT);
- pinMode(7, INPUT);
- pinMode(6, INPUT);
- pinMode(10, INPUT);
- Serial.begin(9600);
- pinMode(azul, OUTPUT);
- pinMode(verde, OUTPUT);
- pinMode(vermelho, OUTPUT);
- analogWrite(azul, 0);
- analogWrite(verde, 0);
- analogWrite(vermelho, 0);
- lcd.begin(16, 2);
- lcd.clear();
- }
- //Funcoes auxiliares LED
- void vermelhoFuncao(){
- analogWrite(azul, 0);
- analogWrite(verde, 0);
- analogWrite(vermelho, 255);
- }
- void verdeFuncao(){
- analogWrite(azul, 0);
- analogWrite(verde, 255);
- analogWrite(vermelho, 0);
- }
- void amareloFuncao(){
- analogWrite(azul,0);
- analogWrite(verde, 255);
- analogWrite(vermelho, 255);
- }
- //loop
- void loop()
- {
- analogWrite(azul,255);
- analogWrite(verde, 255);
- analogWrite(vermelho, 255);
- while (definicao == false) {
- //intruções pra pessoa definir o tempo de banho.
- if(digitalRead(6)) {
- tempo = 7000; //reduzido em 100 pra 1
- definicao = true;
- }
- if(digitalRead(7)) {
- tempo = 10000; //reduzido em 100 pra 1
- definicao = true;
- }
- if(digitalRead(10)) {
- tempo = 15000; //reduzido em 100 pra 1
- definicao = true;
- }
- time = millis(); //início da contagem de tempo
- }
- timeTotal = millis();
- if ((timeTotal - time) <= (tempo/2)) { //verifica se estamos na primeira metade
- verdeFuncao();
- if((timeTotal - time) == 10) { //compensa o clock do arduíno
- lcd.clear();
- lcd.print("Inicio do banho");
- }
- }
- if ((timeTotal - time) > (tempo/2) && (timeTotal - time) <= (tempo)) { //verifica se estamos na segunda metade
- amareloFuncao();
- if ((timeTotal - time) == (tempo/2) + 1){ //compensa o clock do arduíno
- lcd.clear();
- lcd.print("Metade do banho");
- }
- }
- if ((timeTotal - time) > (tempo)) { //verifica se excedeu o tempo de banho
- vermelhoFuncao();
- if ((timeTotal - time) == (tempo) + 1) { //compensa o clock do arduíno
- lcd.clear();
- lcd.print("Saia do banho");
- }
- if (digitalRead(8)) { //caso se opte pelo efeito sonoro
- digitalWrite(13, HIGH); //faz barulho
- delay(1000);
- digitalWrite(13, LOW);
- delay(1000);
- }
- }
- }
Add Comment
Please, Sign In to add comment