Boa Tarde!

Estou tentando fazer com que o LED varie o bilho via PWM ao longo de um tempo pré determinado.

Por exemplo: 15:00 o led inicia com PWM em 0 e a cada minuto ganha adiciona 1 chegando a  240 em 4 horas (19:00). Aguarda uma hora em 240 e começa a diminuir 1, chegando a 0 em mais quatro horas.

Já consegui fazer o led ligar e desligar com o RTC mas estou quebrando a cabeça pra fazer está variação do brilho com o tempo.


#include <Wire.h>
#include <DS1307.h>
#include <LiquidCrystal.h>

int rtc[6];
int LED = 10;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
Serial.begin(9600);
lcd.begin(16, 2);
pinMode(LED, OUTPUT);
digitalWrite(LED, LOW);


/* Esta sequencia de comandos deve ser escrita apenas uma vez, para
configurar a hora do Shield RTC 3231. Troque os numeros pela hora atual
RTC.stop();
RTC.set(DS1307_SEC,0);        //define o segundo rtc[0]
RTC.set(DS1307_MIN,20);     //define o minuto rtc[1]
RTC.set(DS1307_HR,2);       //define a hora rtc[2]
RTC.set(DS1307_DOW,0);       //define o dia da semana rtc[3]
RTC.set(DS1307_DATE,24);       //define o dia rtc[4]
RTC.set(DS1307_MTH,1);        //define o mes rtc[5]
RTC.set(DS1307_YR,16);         //define o ano rtc[6]
RTC.start();*/

}

void loop()
{
RTC.get(rtc,true);

//Acende led
if (rtc[2] == 16 && rtc[1] == 25) {
  digitalWrite(LED,HIGH);
 
  if (rtc[1] == 30){
    digitalWrite(LED,LOW);
  }}
   

   lcd.setCursor(0, 0);
   lcd.print(RTC.get(DS1307_HR,true));
   lcd.print(":");
   lcd.print(RTC.get(DS1307_MIN,false));

   lcd.print(":");
   lcd.print(RTC.get(DS1307_SEC,false));

   lcd.setCursor(0, 1);
   lcd.print (RTC.get(DS1307_DATE,false));
   lcd.print ("/");
   lcd.print (RTC.get(DS1307_MTH,false));
   lcd.print ("/");
   lcd.print(RTC.get(DS1307_YR,false)); //
   delay (1000);
   lcd.clear();
}

alguém tem uma ideia?

abraços

Exibições: 349

Responder esta

Respostas a este tópico

Oi EOB, boa noite,

este code deve fazer o que você que com os LEDs.

A versão anterior tinha um erro.

Versão corrigida:

Rui

Anexos

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço