LED amanecer / amanecer despertador, luz nocturna y luz seguridad - compatible con Arduino (6 / 22 paso)

Paso 6: Module1 - Arduino/RTC - prueba código

a ver si nos estamos comunicando con nuestros 328 y ' 1307, podemos utilizar el código adjunto.  Esto establece el tiempo de entrada en serie en la ventana de serial que viene con el IDE de Arduino.

Tenga en cuenta que todo el código para este proyecto fue escrito en Arduino 0022.  Aún no he probado 1.0.

No he podido subir ningún código como .pde archivos.  No sé por qué.

Nuevamente les he nombrado como .txt que se puede abrir en WordPad y copiar/pegar en el IDE o usted puede cambiar el nombre ellos .pde cuando ha descargado.

SUBIENDO:

Este pequeño Ardu' no disponen de un elegante auto-reset.  Como resultado, necesitamos presionar el botón de reinicio en el momento correcto.  He visto varias formas sugeridas para este momento, pero este funciona bien para mí:

1) - Conecte los pines Tx y Rx de su convertidor de USB a los encabezados en las patillas 2 y 3 de la viruta (D0 y D1).
2) - la placa de potencia (desde la USB si es posible - si no Asegúrese de que las conexiones de tierra están Unidas pero el + 5V no son!).
3) - Asegúrese de que seleccione "Duemilanove/Tiny con 328" como el tablero de la blanco.
4) - haga clic en el botón de carga en el IDE.
5) - mientras que el código compila, ver la línea de estado en la parte inferior de la ventana del IDE.
6) - tan pronto como la pequeña ventana en la parte inferior del IDE te dice el tamaño de su bosquejo compilado, pulse reset.
7) - las luces de Tx/Rx en su convertidor de USB deben flash por un tiempo.

Si por cualquier motivo no funciona la primera vez, lo hará tiempo después unos 30 segundos y usted puede intentarlo.  Es muy raro para que tome más de dos intentos.

El código adjunto se establece inicialmente el tiempo y luego Mostrar la hora en la ventana de Monitor serie del IDE.  En la rutina de "setup" usted puede enviar de un carácter "R" para ajustar el tiempo, así que nuevamente puede fijar el reloj cada vez que se reajuste su 328.

Luego preguntará por aspectos progresivamente menos significativos de la fecha y la hora y finalmente mostrar la configuración nuevo para confirmar.  No es muy sofisticado, así que por favor, recuerde:

A cada entrada numérica requiere dos dígitos decimales, así que para el día 2 (martes) entrar en "02" en el monitor serial.

Cuando se solicita confirmación etc., se trata de caso específico, así para ajustar el reloj, solamente una "Y" hará como la respuesta final.

Una vez que el tiempo es el conjunto o "Q" de la rutina de ajuste entonces mostrará el tiempo de la RTC en el serial monitor cada segundo.

Obviamente, una vez que el RTC es su batería siga funcionando aún cuando se apague tu ardu' así que ahora puede ejecutar su propio bosquejo y látigo sólo algunas funciones de este bosquejo para el tiempo cuando lo necesite.  Para el reloj terminado estableceremos el tiempo directo de la Ardu' pero necesitamos algunos insumos y una pantalla para eso! Tiempo de pasar a otro módulo...

****************
Bosquejo de reloj alarma luz de la Aurora de UGI.
Bosquejo de pruebas RTC

Licencia MIT

Esofagogastroduodenal Dic de 2012
Escrito por Arduino 022 en ATmega328.
requiere cable biblioteca

Conexiones de pines de Arduino:
A4 - 1307 (datos I2C)
A5 - 1307 (reloj I2C)

Configuración del reloj general:

#include < Wire.h > - / / analógico usees pines A4 (SDA - pin 27) y A5 (SCL pines 28) para los datos de 2 hilos.

byte const DS1307_Address = 0x68;
segundos bytes = 45, oldseconds = 0, minutos = 52, horas = 23, fecha = 8, mes = 12, día = 4 años = 11, proteger = 0; por defecto sólo para empezar por alguna parte.
byte NEWseconds = 45, NEWminutes = 52, NEWhours = 23, NEWdate = 8, NEWmonth = 12, NEWday = 4, AñoNuevo = 11; Estas son para el ajuste.

void setup() {}
Serial.Begin(9600); Serial.println ("DS1307 RTC basado en reloj - Ugi 2012");
Delay(2000); Dar RTC algunos tiempo de asentarse.
Wire.Begin(); Necesidad de RTC
RTCsetFromSerial(); Oportunidad para fijar hora de serie cada reset. Podrían permitir un tiempo de espera.
}

void loop() {}
RTCread();
RTCprintTime(); envía tiempo serie.
Delay(1000);
} / / Fin de bucle principal

Leer hora del RTC en variables de tiempo.
void RTCread() {}
datos del octeto [11] = {0,0,0,0,0,0,0,0,0,0,0};
Wire.beginTransmission(DS1307_Address);
Wire.Send(0); registro establecido al principio
Wire.endTransmission();
Wire.requestFrom (DS1307_Address, (byte) 10); Realice 7 bytes en búfer de RTC.

para (_loop byte = 0; _loop < 10; _loop ++) {}
Data[_loop]=(Wire.Receive());
}

segundos = (((B01110000 & datos [0]) >> 4) * 10) + (datos [0] & B00001111);
minutos = (((B01110000 & datos [1]) >> 4) * 10) + (datos [1] y B00001111);
horas = (((datos [2] y B00110000) >> 4) * 10) + (datos [2] y B00001111);
día = (datos [3] y B00000111);
fecha = (((datos [4] y B00110000) >> 4) * 10) + (datos [4] y B00001111);
mes = (((datos [5] y B00010000) >> 4) * 10) + (datos [5] y B00001111);
año = (((datos [6] y B11110000) >> 4) * 10) + (datos [6] y B00001111);
}

Escriba la hora actual a RTC
void RTCwrite() {/ / escribe todos los datos actuales en RTC - si solo desea escribir un parámetro luego de leer el reloj primero!

datos del octeto [7];
datos [0] = (segundos % 10) + ((seconds/10) << 4);
datos [1] = (minutos % 10) + ((minutes/10) << 4);
datos [2] = (horas % 10) + ((hours/10) << 4);
datos [3] = día;
datos [4] = (fecha % 10) + ((date/10) << 4);
datos [5] = (% mes 10) + ((month/10) << 4);
datos [6] = (año % 10) + ((year/10) << 4);

Wire.beginTransmission(DS1307_Address);

Wire.Send(0); registro establecido al principio
para (_loop byte = 0; _loop < 7; _loop ++) {}
Wire.Send(Data[_loop]);
}
Wire.endTransmission();
oldseconds = segundos;
} / / Fin función RTC escribir

Imprimir la hora actual Serial...
void RTCprintTime() {}
RTCread();

Serial.Print ("tiempo ="); Serial.Print (horas, DEC); Serial.Print(":"); Serial.Print (minutos, DEC); Serial.Print(":"); Serial.println (segundos, DEC);
Serial.Print ("fecha ="); Serial.Print (fecha, DEC); Serial.Print("/"); Serial.Print (mes, DEC); Serial.Print("/20"); Serial.Print (año, DEC);

}

byte RTCgetSerial (_val de byte, cadena _Str) {}

Serial.println("");
Serial.println ("***"+ _Str +"***");
Serial.Print ("valor ="); Serial.Print (_val, DEC); Serial.println ("" + _Str);
Serial.println ("Introduzca el nuevo valor (dos dígitos por ejemplo, '01'):");

Serial.Flush();

byte NEW_val = -1;
mientras que (Serial.available() < 2) {}
Delay(50);}

NEW_val = ((Serial.read()-48)*10);
NEW_val NEW_val = (Serial.read()-48);

Serial.Flush();
Serial.Print ("nuevo valor ="); Serial.Print (NEW_val, DEC); Serial.println ("" + _Str); Serial.println("");

Si (NEW_val > = 0) {vuelta NEW_val;}
Else {volver _val;}

}

Boolean RTCconfirm() {}
Serial.println("");
Serial.println("currently:");
RTCprintTime();

Serial.Flush();

Serial.println("");
¿Serial.println ("cambio a? (Y/N): ");
Serial.Print ("tiempo ="); Serial.Print (NEWhours, DEC); Serial.Print(":"); Serial.Print (NEWminutes, DEC); Serial.Print(":"); Serial.println (NEWseconds, DEC);
Serial.Print ("fecha ="); Serial.Print (NEWdate, DEC); Serial.Print("/"); Serial.Print (NEWmonth, DEC); Serial.Print("/20"); Serial.Print (AñoNuevo, DEC);
char ZMWS = -1;
mientras que (Serial.available() < 1) {}
Delay(50);}

ZMWS = Serial.read();

Serial.Flush();

Serial.Print ("confirmar dígitos ="); Serial.println(_conf);
if(_conf=='Y') {return true;}
Else {vuelta falso;}
}

Boolean RTCsetFromSerial() {}

Obtener nuevo ajuste del tiempo de puerto serie
Serial.Flush(); evitar cualquier al azar datos en buffer.

Ver si quiere actualizar
char _input = 'X';
mientras que (_input! = 'R' & & _input! = 'Q') {}
mientras que (Serial.available() < 1) {}

RTCprintTime(); A seguir mostrando la hora actual y ver si necesita actualizar.
Serial.println ("Enter 'R' por la entrada serial para volver a definir") o Q para salir de configuración de rutina;
Serial.println("");
Delay(1000);
}
_input = Serial.read();
Serial.Flush();
}

Si (_input! = ' R'){Serial.println(""); Serial.println ("*** fumar ***"); Serial.println("");  devuelven el valor false;}
Serial.println("");
Serial.println ("*** RTC reposición ***");
Serial.println("");

RTCprintTime();
AñoNuevo = RTCgetSerial (año, "años");
RTCprintTime();
NEWday = RTCgetSerial (día, "día de la semana");
RTCprintTime();
NEWmonth = RTCgetSerial (meses, "meses");
RTCprintTime();
NEWdate = RTCgetSerial (fecha, "días del mes");
RTCprintTime();
NEWhours = RTCgetSerial (horas, "Horas");
RTCprintTime();
NEWminutes = RTCgetSerial (minutos, "Minutos");
RTCprintTime();
NEWseconds = RTCgetSerial (segundos, "Segundos");

Si (RTCconfirm()) {}
segundos = NEWseconds;
minutos = NEWminutes;
horas = NEWhours;
fecha = NEWdate;
mes = NEWmonth;
día = NEWday;
año = AñoNuevo;
RTCwrite();

Serial.println ("");
Serial.println ("*** RTC actualizado ***");
verdaderas;
}

Else {}
Serial.println ("*** actualización cancelada ***");
}

devuelven el valor false;
}

Artículos Relacionados

Temporizador de controlado de radio de 433 mhz luz de AC con arduino

Temporizador de controlado de radio de 433 mhz luz de AC con arduino

En este instructable documenta cómo hice un reloj controlado de radio de mis luces de inundación al aire libre. Mis luces son del tipo más viejo y utiliza mucha energía (luces 150w y 500w). Por esta razón apenas apenas he usado les, pero ahora he hec
Luz de freno inteligente Arduino

Luz de freno inteligente Arduino

Teniendo en cuenta seguridad en la calle debe tener una luz de freno en tu bicicleta. La población de vehículos es cada vez más alto y más alto cada año. Puede asta los vehículos delante de usted, pero un freno repentino puede hacer por los vehículos
8 x 8 x 8 LED cubo con Arduino Mega (+ sonido + PS controlador + juego)

8 x 8 x 8 LED cubo con Arduino Mega (+ sonido + PS controlador + juego)

este es un instructivo que se basa en el cubopor Chr, (por SuperTech-IT, (y por das-labor.org, (http://www.das-labor.org/wiki/Borg3d_Bauanleitung...)pero creo que su mejor y más fácil.Comencé este proyecto sin ninguna habilidad de toprogramming de so
Hacer un Solar Powered Led lámpara Post luz

Hacer un Solar Powered Led lámpara Post luz

este es mi primer capaz de instruir tan oso conmigo, voy a mostrarles como hacer un Solar Powered Led lámpara Post luz, se enciende de una gran parte de su jardín. tengo una luz similar a la venta en ebay en este enlace http://www.ebay.com/itm/400387
LEDs como sensores de luz

LEDs como sensores de luz

LEDs son grandes para hacer luz, pero puede percibir la luz demasiado!Recientemente me topé con este sitio que menciona, "en 1977, Forrest M. Mims nos recuerda en uno de sus"Cuadernos del ingeniero"que LED puede utilizarse también como foto
Mejor LED como sensor de luz

Mejor LED como sensor de luz

como resultado de las preguntas de lekirst sobre este ible de mi mano: LED-as-lightsensor-on-the-arduino/ y el limpiador de código hecho por hansc44 en: Arduino-Use-LED-as-a-light-sensor/ era el momento de venir con un mejor Ible. Así que aquí está.
BRICOLAJE Panel LED potente - Video y luz de trabajo

BRICOLAJE Panel LED potente - Video y luz de trabajo

Hoy voy a mostrarte cómo hacer un panel de LED brillante y barato. Quería una luz brillante para mi zona de trabajo, este panel viene con más de 200 LEDs y usé casi 10 dólares para hacerlo.El panel es súper brillante y grandes usar como luz de video,
Sonido despertador luz de detección

Sonido despertador luz de detección

En primer lugar quiero decir que este es un proyecto fresco para cualquier gama de nivel de habilidad. Si usted es un principiante con Arduino y está nervioso acerca de la complejidad os animo a probar este como trato a tan útil como pueda y siempre
Luz del humor de Arduino

Luz del humor de Arduino

Este es un proyecto simple basado en Adafruit Arduino - Lección 3. RGB LEDhttps://Learn.Adafruit.com/Adafruit-Arduino-Lesson-3-RGB-LEDs/Arduino-SketchEncontrarás un montón de información útil sobre LEDs RGB si sigues el enlace.El programa original er
Tambores de guante MIDI con Arduino y sensores de luz

Tambores de guante MIDI con Arduino y sensores de luz

voy a describir una divertida y fácil manera de construir su propia expresión sonido MIDI habilitado guante sin gastar mucho dinero en costosos sensores o Interfaces MIDI.Sienta libre de entrarme en contacto con directamente por correo si gusta o si
Inalámbrico de temporizador de luz de Navidad con Python y frambuesa Pi

Inalámbrico de temporizador de luz de Navidad con Python y frambuesa Pi

actualización 14/01/2014: gracias a todos los que votaron por este proyecto en el concurso de Hacking de Hardware! Esperando a mi nueva pluma del fabricante.¿Actualización 31/12/2013: en busca de una versión más avanzada de este proyecto? Echale mi n
Automatización del hogar con un Smartphone (TV, Arduino, luz, seguridad, proyector, reproductor de DVD...)

Automatización del hogar con un Smartphone (TV, Arduino, luz, seguridad, proyector, reproductor de DVD...)

Estos días los dispositivos de domótica y el hogar sistemas de control son muy populares. Incluso en la comunidad de DIY-ers. Así decidí hacer mi propio dispositivo de control Inicio con Arduino. El dispositivo puede controlarse con un teléfono celul
Rotos de luz de trabajo luz / feliz triste. con agregado de vitamina D

Rotos de luz de trabajo luz / feliz triste. con agregado de vitamina D

hace unos meses compré un SAD de 10.000 lúmenes luz pero después de sólo unos pocos usa dejar de trabajar, el tio en eBay lo tengo era lo suficientemente bueno para enviarme un reemplazo uno aunque es un poco diferente en lugar de un contador de tiem
Fotocélula de reaccionar a la luz como un ojo. un proyecto de introducción para el uso de procesamiento con Arduino

Fotocélula de reaccionar a la luz como un ojo. un proyecto de introducción para el uso de procesamiento con Arduino

En este proyecto se puede ver un ejemplo sencillo del uso de procesamiento para hacer una representación gráfica de los datos que un arduino recibe como entrada de un sensor. En este caso una célula fotoeléctrica.Después de obtener una imagen de ojo