Olá meu nome é Igor Rampinelli e estou fazendo um projeto pra mim mesmo onde tenho um arduino um DS1302 e vão ligar 2 LEDs em horários distintos só que não está funcionando alias só funciona 1 vezes e não volta a funcionar no dia seguinte vou por o código aqui na esperança de alguém me ajudar pois estou apanhando disso a semanas.
#include <virtuabotixRTC.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
# define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd (I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);
virtuabotixRTC myRTC (6, 7, 8);
float led = 9;
brilho do flutuador = 0;
flutuação acrescimo = 1,25;
float i = 0;
float ledbaixo = 9;
float brilhobaixo = 0;
flutuante acrescimobaixo = 1,25;
float j = 0;
float ledbranco = 10;
float brilhobranco = 0;
flutuante acrescimobranco = 1,25;
float k = 0;
float ledbaixobranco = 10;
float brilhobaixobranco = 0;
float acrescimobaixobranco = 1,25;
flutuante l = 0;
void setup () {
pinMode (led, OUTPUT);
pinMode (ledbaixo, OUTPUT);
pinMode (ledbranco, OUTPUT);
pinMode (ledbaixobranco, OUTPUT);
Serial.begin (9600);
lcd.begin (16, 2);
lcd.setBacklightPin (BACKLIGHT_PIN, POSITIVO);
lcd.setBacklight (HIGH);
lcd.home ();
//myRTC.setDS1302Time(00, 56, 17, 7, 18, 10, 2020); // aqui seta segundo, minuto, hora, dia da semana, dia, mes, ano
}
void loop () {
lcd.clear ();
myRTC.updateTime ();
lcd.setCursor (0, 0);
lcd.print (myRTC.dayofmonth);
lcd.print ("/");
lcd.print (myRTC.month);
lcd.print ("/");
lcd.print (myRTC.ano);
lcd.setCursor (0, 1);
lcd.print (myRTC.hours);
lcd.print (":");
lcd.print (myRTC.minutos);
lcd.print (":");
lcd.print (myRTC.segundos);
atraso (1000);
myRTC.updateTime ();
// bloco azul
if (myRTC.hours == 13 && myRTC.minutes == 00) // HORA ON
{
if (i == 0)
para (i = 0; i <204; i ++) {
analogWrite (led, brilho);
brilho = brilho + acrescimo;
atraso (3000);
digitalWrite (led, HIGH);
}
}
if (myRTC.hours == 23 && myRTC.minutes == 00) // HORA OF
{
if (j == 0)
para (j = 0; j <204; j ++) {
analogWrite (ledbaixo, brilhobaixo);
brilhobaixo = brilhobaixo - acrescimobaixo;
atraso (3000);
digitalWrite (ledbaixo, LOW);
}
}
// bloco branco
if (myRTC.hours == 14 && myRTC.minutes == 00) // HORA ON
{
if (k == 0)
para (k = 0; k <204; k ++) {
analogWrite (ledbranco, brilhobranco);
brilhobranco = brilhobranco + acrescimobranco;
atraso (3000);
digitalWrite (ledbranco, HIGH);
}
}
if (myRTC.hours == 22 && myRTC.minutes == 00) // HORA OF
{
if (l == 0)
para (l = 0; l <204; l ++) {
analogWrite (ledbaixobranco, brilhobaixobranco);
brilhobaixobranco = brilhobaixobranco - acrescimobaixobranco;
atraso (3000);
digitalWrite (ledbaixobranco, LOW);
}
}
}