(11-02-2016, 12:10 AM)rodazac escribió: este es el código que estoy destripando
para el rtc
Código:
#include <Wire.h>
#include <RTC.h>
#define pRELAY1 3 //Se define una constante para la linea de led y el pin al que esta conectado.
RTC rtc(DST_ON); //Activa el cambio automatico a horario de verano-invierno.
void setup()
{
//rtc.setDateTime( 2016, 2, 10, 21, 30, 00 ); //linea para poner en hora el reloj
//Configura los pines de Arduino:
pinMode(pRELAY1, OUTPUT); //Salida led LUZ LUNA
//Prepara la conexion Serial
Serial.begin(9600);
// while(!Serial);
Serial.println(F("Comunicacion Serial iniciada"));
}
void loop()
{
Data d = rtc.getData();
Serial.println( d.toString("Y/m/d H:i:s") ); //Borrar esta linea al terminar solo para ver hora si se quiere
if( d.isBetween(21,32, 21,34) )
{
digitalWrite(pRELAY1, HIGH); //QUITO LOW invierto posiciones creo que es por lo de los reles
Serial.println(F("LUZ ENCENDIDA"));
}
else
{
digitalWrite(pRELAY1, LOW); //QUITO HIGH
}
delay(1000);
}
lo estoy montando en una protoboard
lo del reloj y lo clásico los led del coche fantástico y cosas por el estilo
vamos que tampoco es para poner fotos
Ok. Con eso me hago una idea. Usas un módulo software RTC que incluye la función que usas para preguntar si está dentro de un intervalo de tiempo.
Aprender a programar a vuestro nivel consiste en gran medida en jugar con ese tipo de cosas probando programitas sencillos y usando librerías que te faciliten las funciones que necesites.
Cuando uses muchos LEDs ten en cuenta que todos encendidos a la vez pueden sobrecargar el Arduino.
En este tipo de montajes con varios LEDs a 5V suelo usar resistencias de 470 Ohmios. Con resistencias de 220 Ohmios brillarían más pero consumen el doble.
Los programas con LEDs suelen usarse en Arduino para ilustrar ejemplos sencillos pero voy a poner el enunciado de un porblema solo para ver si alguien es capaz de resolverlo y como lo hace.
Hacer un programa que haga parpadear un par de diodos con una duración de encendido y apagado establecidos en la cabecera de programa.
#define Pin_LedRojo 3
#define Pin_LedVerde 4
#define SegOn_LedRojo 4 // Segundos Led Rojo encendido
#define SegOff_LedRojo 6 // Segundos Led Rojo apagado
#define SegOn_LedVerde 6 // Segundos Led Verde encendido
#define SegOff_LedVerde 5 // Segundos Led Verde apagado.
La dificultad de este problema es que cada LED debe funcionar de forma independiente del otro. No hace falta un RTC para esto.
Como pista os sugiero que busquéis ejemplos que usen la funcion millis(); Es una función que devuelve el número de milisegundos transcurridos desde que arrancó el Arduino.