Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h>
- #include <LiquidCrystal_I2C.h>
- #include <DS3231.h>
- int temperature; // Declarada como INTEIRO porque o getTemp() da bilbioteca trata a temperatura como FLOAT.
- int buzzer = 8;
- // Modulo I2C display no endereco 0x3F
- LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
- // Inicialização do DS3231 utilizando a interface de hardware
- DS3231 rtc(SDA, SCL);
- Time t;//<<<<<<<<<adicionado
- void setup()
- {
- pinMode(rele, OUTPUT);
- // Setup Conexão serial
- Serial.begin(115200);
- // Remova o comentário da próxima linha se você estiver usando um Arduino Leonardo
- //while (!Serial) {}
- digitalWrite(rele, HIGH);
- // Inicialização do display lcd
- lcd.clear();
- lcd.begin(16, 2);
- // Inicializar o objeto RTC
- rtc.begin();
- // As seguintes linhas podem ser descomentadas para definir a data e hora
- //rtc.setDOW(6); // Seta dia da semana para SABADO
- //rtc.setTime(22, 06, 50); // Seta a hora para 22:06:50 (formato 24hr)
- //rtc.setDate(29, 10, 2016); // Seta ae data para 29 de outubro, 2016
- temperature = rtc.getTemp();
- }
- void loop() {
- t = rtc.getTime();//<<<<<<<<<adicionado
- // Enviar Dia-da-Semana
- lcd.setCursor(0, 0);//Seta o dia da semana na 1ª linha 1ª Coluna do LCD
- lcd.print(rtc.getDOWStr());
- Serial.print(" ");
- // Envia data
- lcd.setCursor(0, 1);//Seta a data na 2ª linha 1ª Coluna do LCD
- lcd.print(rtc.getDateStr());
- Serial.print("-- ");
- // Envia hora
- lcd.setCursor(8, 0);//Seta a hora na 1ª linha 8ª Coluna do LCD
- lcd.println(rtc.getTimeStr());
- lcd.setCursor(12, 1); //Seta a temperatura na 2ª linha 12ª Coluna do LCD
- //lcd.print("Tempo: ");
- lcd.print(temperature);
- lcd.write(223);//imprime o caracter (°)
- lcd.print("C");
- // Definicao do alarme.
- //modificado**********************************
- if (t.hour == 22 && t.min == 56 && t.sec == 0)//Define a hora de tocar o alarme por 1o segundos
- {
- digitalWrite (buzzer, HIGH);// Eleva tensao pino 13 para 5V
- delay (10000);// Atrasa 50ms
- }
- //modificado**********************************
- if (t.hour == 22 && t.min == 58 && t.sec == 30)//Define a hora de tocar o alarme por 1o segundos
- {
- digitalWrite (buzzer, LOW); //Abaixa tensao pino 13 para 0V
- delay (10000);
- }
- // Espere um segundo antes de repetir :)
- delay (1000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement