Levantarse y brillar! -Despertador Arduino LDR (5 / 7 paso)

Paso 5: Software: el código

/ *** * Despertador Sunrise Bhavika Shah MakeCourse primavera 2016 ** cuando la LDR detecta la salida del sol, hará que el servo(hammer attached) a 50 grados * y golpear una campana, como una alarma de despertador. Como una copia de seguridad el código calcula el tiempo del amanecer la ubicación * del reloj usando coordenadas de latitud y longitud y activar la alarma en caso de no amanecer * detectado. Este proyecto también incluye un módulo RTC que mantendrá en caso de apagón. / #include < Wire.h > #include < Servo.h > #include < TimeLib.h > //works junto con DS1307RTC.h #include < TimeLord.h > //contains sunrise cálculos #include < DS1307RTC.h > //RTC biblioteca #include < LiquidCrystal_I2C.h > //library para ser usado con pantalla LCD con un módulo V1 YwRobot Arduino LCM1602 CII Unido #define DS1307_ADDRESS 0x68 //RTC addressLiquidCrystal_I2C lcd(0x27,20,4); Configurar la dirección de LCD a 0x27 para un 16 caracteres y 2 línea Servo myservo; Hacer un servo objeto int pos = 50; Establecer una posición del servo en grados 50 int apagado = A0; Conectar la LDR al umbral del pin A0 int = 500; Establece el umbral de luz en un valor const int zona horaria = -5; Configurar su zona horaria; mina es EST const flotante latitud = 27.9506; Establecer su latitud y longitud; mina son de Tampa, FL const float longitud =-82.4572; Tras int = 0; bool bandera = 1; Aquí tenemos un indicador booleano que va a cambiar cuando realizamos nuestra acciones activación int sunriseMin; minutos de que amanecer calculado días para comparación < /p >< p > void setup() {void digitalClockDisplay(); //digital reloj de la printDigits() vacío de tiempo //utility la función de reloj digital: impresiones anteriores a colon y lleva 0 sunriseCalc() void //calculate sunrise actionAM() void //function para realizar wake-up checkPM() nulas acciones; //for depuración void lowLight(); //function para mostrar el valor del sensor si es menor que el umbral Serial.begin(9600); //begin comunicación serie pinMode (13 SALIDA); myservo.Attach(9); servo conectado al pin 9 lcd.init(); inicializar el lcd lcd.backlight(); encender el LCD luz de fondo setSyncProvider(RTC.get); función para obtener el tiempo de la if(timeStatus() RTC
! = timeSet) {Serial.println ("no se puede sincronizar con el RTC");} else {Serial.println ("RTC ha establecido la hora del sistema"); digitalClockDisplay();} sunriseCalc(); } < /p >< p > void loop() {if(wake = 0) {si (isAM()) {Serial.println ("isAM true"); raíz = 1; //if es mañana 'wake' cambia de 0 a 1 bandera = 0; //we también cambiará la variable bandera 0 Serial.println ("primera si se ejecuta"); //debugging Serial.print ("Bandera:"); para la depuración Serial.println(flag); para depurar}} si (wake = 1 & & bandera == 0) {//Because estela es 1 y bandera es 0, y podemos empezar la luz detección digitalClockDisplay(); lectura de //consistent de la el indicador de tiempo actual = 1; //We cambiará bandera a 1 porque se realizan las acciones de activación Serial.println(analogRead(lightPin)); //readout de la luz actual detectándose if(analogRead(lightPin) > umbral) {//if la luz detectada es mayor que el umbral : actionAM(); realizar tras acciones Serial.println ("segundo si se ejecuta"); depuración} que {bandera = 0; printDigits(minute()); //debugging Serial.println(); //If la luz no se ha detectado que para realizar tras acciones, vamos a comprobar para ver si no ha pasado tiempo actual sunriseMin + 10 si (sunriseMin < minute()) {//if el minuto actual valor es mayor que la salida del sol valor minuto actionAM(); //perform despertar bandera de acciones = 1; Serial.println ("salida del sol min es menor que min actual"); depuración para hacernos saber que el circuito ha pasado por esta declaración} lowLight(); Si no hay luz, vamos a comprobar} delay(1000); } Si (isPM()) {checkPM();}} / *** FUNCIONES *** / void sunriseCalc() {llama tardis; tardis. Zona horaria (-4 * 60); Dile llama qué zona horaria su RTC se sincroniza con. Puede ignorar DST tardis. Posición (latitud, longitud); Dile llama donde estamos en el mundo hoy de bytes [] = {0, 0, 12, 6, 4, 2016}; almacenar la fecha de hoy (al mediodía) en una matriz de llama a utilizar si (tardis. SunRise(today)) {/ / si el sol se levantará hoy (no, en el Ártico [ant]) Serial.print ("salida del sol:"); Today[tl_hour]) de serial.Print((int); Serial.Print(":"); Today[tl_minute]) de serial.Print((int); Serial.Print ("AM"); Serial.println(); sunriseMin = (int) hoy [tl_minute] + 10; almacenar el valor del tiempo del amanecer + 10 Serial.print ("sunriseMin:"); Serial.println(sunriseMin); }} void digitalClockDisplay() {/ / digital reloj de pantalla de la hora Serial.print(hour()); printDigits(minute()); printDigits(second()); Serial.Print(""); Serial.Print(Day()); Serial.Print("/"); Serial.Print(month()); Serial.Print("/"); Serial.Print(Year()); Serial.println(); Delay(200); } void printDigits (int dígitos) {/ / función de utilidad para la visualización del reloj digital: impresiones colon anterior y líder Serial.print(":") 0; if(digits < 10) Serial.print('0'); Serial.Print(digits); } void actionAM() {//function que contiene todas las acciones a realizar cuando es hora de levantarse! digitalWrite (13, HIGH); //turns el LED a bordo en Serial.println("High"); //we imprimir el estado de la cantidad de luz detectada lcd.setCursor(3,0); //setting el lcd.print de posición del cursor ("despertar Bee"); //printing un mensaje despierta! lcd.setCursor(2,1); lcd.print ("es amanecer!"); lcd.setCursor(0,2); //servo acciones para (pos = 0; pos < = 50; pos += 1) {/ / va desde 0 grados a 50 grados en pasos de 1 myservo.write(pos) de grado; Delay(5); } para (pos = 50; pos > = 0; pos-= 1) {/ / pasa de 50 grados a 0 grados myservo.write(pos); delay(5);} para (pos = 0; pos < = 50; pos += 1) {//0---> 50 repita myservo.write(pos); delay(5);} para (pos = 50; pos > = 0; pos-= 1) {//50---> 0 repetir myservo.write(pos); delay(5);}} void checkPM() {//function que devuelve una instrucción en el monitor serial si es PM; utiliza para la depuración lcd.noDisplay(); //turning fuera de la pantalla en la pantalla para conservar la energía de Serial.println("isPM() True"); digitalClockDisplay(); Serial.println(analogRead(lightPin)); lectura de la luz actual se detecta delay(1000); } void lowLight() {//if la luz detectada es menor que el umbral, vamos a imprimir en el monitor serial para realizar un seguimiento de lo Serial.println(analogRead(lightPin)); //readout de la luz actual se detecta digitalWrite (13, bajo); Serial.println("Low"); myservo.Write(0); regresar a servo a 0 grados}

Artículos Relacionados

Miedo truco usando Arduino-LDR-BlueAct

Miedo truco usando Arduino-LDR-BlueAct

Con un pequeño truco divertido empezar a bromear con tus amigos en las noches aburridos y hacer muchos trucos con algo que todos tenemos que es smartphones o tabletas... aquí he encontrado una app en PlayStore que puede ayudar en estos trucos y aquí
Seguimiento del movimiento Arduino LDR

Seguimiento del movimiento Arduino LDR

Yo he sido juega con la idea de hacer algo con seguimiento del movimiento. Tenía como para construir un pequeño movimiento seguimiento Nerf Torreta (o similar) así que pensé que empezaría con algunos conceptos básicos, nada demasiado flash, nada dema
Agarrar la alarma usando arduino + LDR piezoeléctrico zumbador

Agarrar la alarma usando arduino + LDR piezoeléctrico zumbador

Este pequeño proyecto le enseñará, cómo hacer un simple gancho agarrador de la alarma utilizando un LDR (resistor dependiente de luz). Cuando intenta mover tu mano sobre la LDR, hay una alarma que se enciende y la alarma se apaga tan pronto como uste
Despertador Arduino MP3

Despertador Arduino MP3

Hace un tiempo me topé en un componente llamado DFPlayer. Es un componente pequeño que permite para reproducir mp3 desde una tarjeta micro SD (para menos que 10€!).http://www.DFRobot.com/wiki/index.php/DFPlayer_Min...Desde que era enfermo de utilizar
Velocímetro de Arduino LDR

Velocímetro de Arduino LDR

Tal vez tienes un mini coche de cable o cualquier cosa que usted quiere saber su velocidad.Hay muchas maneras en cómo medir velocidad, pero hoy vamos a trabajar con la medición de la velocidad básica. Solamente estaba construir mi tren modelo cuando
Luces de calle de auotmatic control con LDR y Arduino

Luces de calle de auotmatic control con LDR y Arduino

Control automático de la luz calle se utiliza para controlar las luces de la calle (encender y apagar según la luz).Aquí hacemos uso de LDR (Resistor dependiente de luz) y LED (diodo emisor de luz) y arduino.Componentes de Hard Ware necesarios:1) LDR
Lazy Arduino interruptor

Lazy Arduino interruptor

¡ Hola! ¡ Bienvenidos a mi segundo instructivo! ¿Segundo? Sí, de hecho, segundo. Haga clic aquí para ver mi primera.Esta vez he decidido automatizar mi interruptor de la luz. ¿Por qué? bueno, yo soy una persona de ti, y estoy perezoso, por qué no!? L
Construir un arma centinela con sistema de cable de viaje láser y Arduino

Construir un arma centinela con sistema de cable de viaje láser y Arduino

* NOTA * ESTE PROYECTO ES REALIZADO POR UN GRUPO DE ESTUDIANTES DE SINGAPUR POLITÉCNICA BAJO FYP SUPERVISOR TEO SHIN JEN. REALIZADO POR CHAN KAI CHI Y 2 ANÓNIMOS.Concepto:Gatillo de la pistola cuando el láser está bloqueado por entrometerse objeto.No
Agitar y despertar

Agitar y despertar

Muchas parejas encuentran este problema, tienen que despertar a una hora diferente. Con un reloj de alarma normal ambos despiertan cuando la alarma suena de. Shake & Wake es la solución para este problema. Utilizando una señal inalámbrica de RF el re
Pez Blinky

Pez Blinky

instrucciones de montaje de un tablero de Add-on para el Arduino.PARA OBTENER INSTRUCCIONES PARA MARZO DE 2013, PROYECTO DE KICKSTARTER IR AQUÍ************Tiene un LED y un botón.Conecta con los pines digitales 9-13 y la tierra.  Mi esperanza es que
LED amanecer / amanecer despertador, luz nocturna y luz seguridad - compatible con Arduino

LED amanecer / amanecer despertador, luz nocturna y luz seguridad - compatible con Arduino

como las noches alargadas gradualmente en otoño 2011, descubrí los placeres del Arduino y pensó que sería una buena manera de implementar algo que he querido durante mucho tiempo - una manera suave para despertar en la mañana de un invierno.  Lamenta
Despertador de Arduino con detección humana

Despertador de Arduino con detección humana

Este es un Arduino proyecto basado en un reloj despertador tha puede detectar si alguien está en cama o no, esta es posible por un resistivo sensor colocado debajo de los colchones que pueden detectar si alguien está sobre los colchones o no por la d
Sabia del reloj 3 - despertador geek basada en Arduino

Sabia del reloj 3 - despertador geek basada en Arduino

sabio reloj 3 es un código abierto, altamente hackeable reloj geek que muestra mucho más que el tiempo. Su función principal es mostrar citas editables por el usuario obtenidas de una tarjeta SD (como los usados en cámaras de fotos).Además, Wise relo
Arduino despertador lona--How To

Arduino despertador lona--How To

materiales que necesitará:1. lona (cualquier tamaño)2. tela (suficiente para cubrir el lienzo)3. Velcro4. luces de LED de 8-105. conductor hilo6. hilo de rosca7. 1 tablero Lilypad sencillo Snap (usted podría elegir utilizar otros tableros de Lilypad