Infinito del espejo reloj (3 / 9 paso)

Paso 3: El código

Este reloj utiliza las siguientes librerías (y todo gracias a los autores de estas bibliotecas):

Puede descargarse la última versión del código en el github del proyecto: https://github.com/dushyantahuja/Smart-Infinity-Mi...

! = 1) {/ / comprobar si los colores han sido conjunto o no EEPROM.write(0,255); / / segundos color - R-G-B - blanco EEPROM.write(1,255); EEPROM.write(2,255); EEPROM.write(3,255); Minutos - R-G-B - de color rojo EEPROM.write(4,0); EEPROM.write(5,0); EEPROM.write(6,0); Horas color - R-G-B - EEPROM.write(7,255) verde; EEPROM.write(8,0); EEPROM.write(9,0); Color BG - R-G-B - EEPROM.write(10,0) negro; EEPROM.write(11,0); EEPROM.write (12, 0); Ligera sensibilidad - EEPROM.write baja (13, 55); Sensibilidad a la luz - alta EEPROM.write (14, 15); Minutos para cada arco iris EEPROM.write(99,1); } / / Otra lectura de los parámetros de la EEPROM más {seconds.r = EEPROM.read(0); seconds.g = EEPROM.read(1); seconds.b = EEPROM.read(2); minutes.r = EEPROM.read(3); minutes.g = EEPROM.read(4); minutes.b = EEPROM.read(5); hours.r = EEPROM.read(6); hours.g = EEPROM.read(7); hours.b = EEPROM.read(8); bg.r = EEPROM.read(9); bg.g = EEPROM.read(10); bg.b = EEPROM.read(11); light_low = EEPROM.read(12); light_high = EEPROM.read(13); lluvia = EEPROM.read(14);} / / *** configuración del sCmd.addCommand de comandos serie ("MULTI" set_multi); sCmd.addCommand ("Tendencia", clockstatus); sCmd.addCommand ("SETRAIN", set_rainbow); sCmd.addCommand ("hora", set_hour); sCmd.addCommand ("MIN", set_minute); sCmd.addCommand ("SEC", set_second); sCmd.addCommand ("BG", set_bg); sCmd.addCommand ("Luz", set_light); sCmd.addCommand ("tiempo", set_time); sCmd.addCommand ("perdidas", missedCall); sCmd.addCommand ("MISSEDOFF", missedOff); sCmd.addCommand ("arco iris", efectos); sCmd.addCommand ("perdidas", missedCall); sCmd.addCommand ("MISSEDOFF", missedOff); sCmd.addDefaultHandler(effects); *** Establece todos los LEDs en color de fondo de (int i = 0; i < NUM_LEDS; i ++) {LED [i] = bg;} pinMode(IRemitter,OUTPUT); Emisor de infrarrojos LED en el pin digital 2 digitalWrite(IRemitter,LOW); / / setup IR LED como de clockstatus(); attachInterrupt (1, set_multi, caer); Timer1.Initialize(); Timer1.attachInterrupt (estado, 500000); } void loop() {sCmd.readSerial(); if(readIR(10) > 50) {/ / apagar LEDs si alguien está cerca del espejo - que puede ser utilizado como un espejo. Apagar LEDs entre 12:00 y 6:00 para ahorrar energía y enfriar los LEDs y fuentes de alimentación (int i = 0; i < NUM_LEDS; i ++) {LED [i] = CRGB::Black;} FastLED.show(); ledState = 1; FastLED.delay(200); } más {para (int i = 0; me < NUM_LEDS; i ++) {LED [i] = bg;} if(multieffects) {/ / comprobar si presiona el botón para múltiples efectos ha sido uint8_t usados, segunda mano = now.second(); si (segunda mano == 0) {currentPalette = RainbowColors_p; currentBlending = mezcla;} si (segunda mano == 30) {currentPalette = RainbowStripeColors_p; currentBlending = mezcla;} uint8_t estática startIndex = 0; startIndex startIndex = 1; FillLEDsFromPaletteColors (startIndex); FastLED.show(); } if(ledState) otra cosa {/ principal reloj código / / ajuste de brillo a light_high int x = light_high; / / analogRead(IRpin); ahora = rtc.now(); si ((now.minute() % de la lluvia == 0 & & now.second() == 0)) {effects();} para (bytes me = 0; me < =now.minute(); i ++) {/ / Serial.println(minutes); LED [i] = minutos;} / / Serial.println(now.hour(),DEC); para (bytes me = 0; me < 60; i += 5) {LED [i] = CRGB::White;} para (bytes me = (now.hour () % 12) * 5; i < =((now.hour()) % 12)*5+(now.minute()/12);i++) {LED [i] = horas;} if(now.hour() < 7) LEDS.setBrightness (restringir ( light_low, 0, 100)); Ajuste brillo a light_low durante la noche - se refresca abajo LED y fuentes de alimentación. LEDS.setBrightness(constrain(light_high,10,255)) otra cosa; if(lastsec) {l=leds[now.second()]; leds[now.second()] = segundos; lastsecond = now.second(); lastsec = 0; / / Serial.println("ON");} else {LED [lastsecond] = l; if(missed) all_off(); / / Serial.println("OFF"); lastsec = 1;} FastLED.show(); ledState = 0; } / / delay(250); if(multieffects) FastLED.delay(1000 / UPDATES_PER_SECOND); }} anular FillLEDsFromPaletteColors (uint8_t colorIndex) {uint8_t brillo = 255; para (int me = 0; me < NUM_LEDS; i ++) {LED [i] = ColorFromPalette (currentPalette, colorIndex, brillo, currentBlending); colorIndex += 3;}} void set_multi() {estática last_interrupt_time largo sin firmar = 0; unsigned interrupt_time largo = millis(); si (interrupt_time - last_interrupt_time > 200) {if(multieffects) {para (int me = 0; me < NUM_LEDS; i ++) {LED [i] = bg;}} multiefectos = ! multiefectos; Serial.println(multieffects); } last_interrupt_time = interrupt_time; } void set_rainbow() {lluvia = atoi(sCmd.next()); EEPROM.write(14,rain); Serial.println ("arco iris hora fijada"); } void clockstatus() {Serial.println ("estado:"); Serial.Print ("BG:"); Serial.Print(BG.r); Serial.Print(""); Serial.Print(BG.g); Serial.Print(""); Serial.println(BG.b); Serial.Print ("segundos:"); Serial.Print(seconds.r); Serial.Print(""); Serial.Print(seconds.g); Serial.Print(""); Serial.println(seconds.b); Serial.Print ("minutos:"); Serial.Print(minutes.r); Serial.Print(""); Serial.Print(minutes.g); Serial.Print(""); Serial.println(minutes.b); Serial.Print ("hora:"); Serial.Print(hours.r); Serial.Print(""); Serial.Print(hours.g); Serial.Print(""); Serial.println(hours.b); Serial.Print ("luz de ambiente:"); Serial.println(analogRead(IRpin)); Serial.Print ("set - alto de la luz:"); Serial.println(light_high,DEC); Serial.Print ("set - bajo la luz:"); Serial.println(light_low,DEC); Serial.Print ("fecha:"); Fecha y hora = ahora rtc.now(); DateTime(2014,5,2,22,30,0); Serial.Print(Now.Day(), DEC); Serial.Print('/'); Serial.Print(Now.month(), DEC); Serial.Print('/'); Serial.println(Now.Year(), DEC); Serial.Print ("hora:"); Serial.Print(Now.hour(), DEC); Serial.Print(':'); Serial.Print(Now.minute(), DEC); Serial.Print(':'); Serial.Print(Now.Second(), DEC); Serial.println(); Serial.Print ("distancia:"); Serial.println(readIR(5),DEC); } void state() {ledState = 1;} const int colorWheelAngle = 255 / NUM_LEDS; void effects() {Serial.println("RAINBOW"); para (int j = 0; j < 3; j ++) {para (int i = 0; i < 60; i ++) {FillLEDsFromPaletteColors(i); FastLED.show(); Delay(30); }} lastsec = 1; } void missedCall() {perdido = 1;} anular missedOff() {perdido = 0;} anular all_off() {para (int me = 0; me < NUM_LEDS; i ++) {LED [i] = CRGB::Black;}} anular set_hour() {hours.r = atoi(sCmd.next()); hours.g = atoi(sCmd.next()); hours.b = atoi(sCmd.next()); EEPROM.write(6,hours.r); EEPROM.write(7,hours.g); EEPROM.write(8,hours.b); Serial.println ("color de la hora establecida"); } void set_minute() {minutes.r = atoi(sCmd.next()); minutes.g = atoi(sCmd.next()); minutes.b = atoi(sCmd.next()); EEPROM.write(3,minutes.r); EEPROM.write(4,minutes.g); EEPROM.write(5,minutes.b); Serial.println ("juego del minuto color"); } void set_second() {seconds.r = atoi(sCmd.next()); seconds.g = atoi(sCmd.next()); seconds.b = atoi(sCmd.next()); EEPROM.write(0,seconds.r); EEPROM.write(1,seconds.g); EEPROM.write(2,seconds.b); Serial.println ("segundo color SET"); } void set_bg() {bg.r = atoi(sCmd.next()); bg.g = atoi(sCmd.next()); bg.b = atoi(sCmd.next()); EEPROM.write(9,bg.r); EEPROM.write(10,bg.g); EEPROM.write(11,bg.b); Serial.println ("BG color SET"); para (int i = 0; i < NUM_LEDS; i ++) {LED [i] = bg;}} void set_light() {light_low = atoi(sCmd.next()); light_high = atoi(sCmd.next()); EEPROM.write(12,light_low); EEPROM.write(13,light_high); Serial.println ("luz SET"); } void set_time() {cadena set_date, set_time; set_date = (String)sCmd.next() + ' ' + (String)sCmd.next() + ' ' + (String)sCmd.next(); set_time = (String)sCmd.next(); rtc.adjust(DateTime(set_date.c_str(),set_time.c_str()));} int readIR (int veces) {int ambientIR; / / variable para guardar el IR desde el ambiente int obstacleIR; / / variable para guardar el IR desde el valor de la int del objeto [10]; / / variable para almacenar el IR valores int distancia; / / variable que dirá si hay un obstáculo o si no (int x = 0; x < veces; x ++) {digitalWrite(IRemitter,LOW); / / apagar los LEDs de IR a leer el IR de la delay(1) ambiente; / / mínimo retardo necesario leer valores ambientIR = analogRead(IRpin); / / guardar IR de la digitalWrite(IRemitter,HIGH) ambiente; / / encender los LEDs de IR a leer el IR desde el obstáculo delay(1); / / mínimo retardo necesario leer valores obstacleIR = analogRead(IRpin); / / guardar IR del valor de obstáculo [x] = ambientIR-obstacleIR; / / cálculo de cambios en los valores de IR y guardar que promedio futuro} para (int x = 0; x < veces; x ++) {/ / calcular la media basada en el valor de "precisión" distancia += [x];} digitalWrite(IRemitter,LOW); encender los LEDs de IR de return(distance/times); devolver el valor final}			

          

Artículos Relacionados

Reloj con patrones, fecha y timbre del espejo infinito

Reloj con patrones, fecha y timbre del espejo infinito

Se trata de un reloj de tiempo real del espejo infinito con indicación de la fecha, los patrones y modo de sueño.El microcontrolador es un PIC18F2550. un micro barato de 8 bits controller.running en modo PLL a 48MHz.También hay una melodía por hora j
Espejo infinito del LED, 32 LED, patrones seleccionables, marco de la calidad

Espejo infinito del LED, 32 LED, patrones seleccionables, marco de la calidad

este instructivo ha sido actualizado con la mejor información y mejor construcción, por favor ve el 10 "x 10" LED infinito espejo InstructableEste Instructable cubiertas edificio mi disponible completo 8 "x 8" 32 LED infinito espejo Ki
EXLAS Laser alineación del espejo (monstruo as juguetes)

EXLAS Laser alineación del espejo (monstruo as juguetes)

Se trata de cómo ajustar los espejos en el cortador del laser Exlas 1280 en as Monster juguetes. La técnica general puede ser útil en otras cortadoras láser, pero los detalles son específicos de esta máquina en particular.Hay 3 espejos y una lente qu
La broma del espejo sangriento

La broma del espejo sangriento

No es halloween sin una broma y esta es perfecta para que todos en el espíritu de halloween. Para sacar esta broma vas a necesitar bastantes artículo y herramientas que se enumeran a continuación. El resultado varía dependiendo de cómo se ejecuta est
Graffiti de la niebla del espejo

Graffiti de la niebla del espejo

¡ Hola!¿Has pensado alguna vez hacer graffiti?¿Quieres hacer fresco? ¿Especial? ¿Es sorprendente?¿Graffiti interior? ¿en el cuarto de baño?Mmmm... en el espejo!Paso 1: materialesMateriales- Cartón - 1- Sharpie - 1- Cuchillo de corte - 1- Toalla de pa
Soporte del espejo solar!!!!!!

Soporte del espejo solar!!!!!!

Construir un tenedor y soporte para brillar la luz en prismas y otros experimentos!El prisma de agua es el segundo componente de los experimentos de ciencia y arte que hago y lo explicaremos en un tutorial más adelante.Paso 1: Conseguir un nuevo Plan
Detrás del espejo - ocultos lugares

Detrás del espejo - ocultos lugares

para más información y diagramas detallados, visita http://www.arduino.cc/en/Tutorial/Tone2 hoy.Calibre JaegerPaso 1: Haz un Arduino, protoboard, fotocélula y altavoz de 8 ohmios.Paso 2: La Asamblea de la tierra, en una resistencia de ohm de 4.7 k y
Reloj de la bola del espejo

Reloj de la bola del espejo

es una bola de espejo que también es un reloj. Tener una bola en la casa es bastante hortera en sus el propios. Generalmente son en jardines o piscinas y llamados bolas mirando.En cuanto a mí, me encanta el efecto deformado lente ojo de pez recibe de
Infinito del corazón 3D ornamento impreso

Infinito del corazón 3D ornamento impreso

El adorno de corazón de infinito es un corazón visto desde el frente y un infinito visto desde la parte superior. Cuando la iluminación es correcta se puede ver tanto a la vez con el objeto y su sombra. Y hay una sorpresa en tercera dimensión del dis
Antimateria del excavador/reloj despertador/película Prop

Antimateria del excavador/reloj despertador/película Prop

Bueno, no es realmente la antimateria, pero mayoría de las personas que se atreve a pensar por sí mismos es probablemente en la lista de vigilancia de alguien, y no quiero atraer la atención de cualquier agencias de tres letras... ¿Y todo el mundo sa
Caja del espejo: dibujar juego

Caja del espejo: dibujar juego

caja vaardigheidstraining at.Paso 1: Paso 1: planificaciónNeem Een kartonnen doos, Een vel spiegel de Een en papier de ingenioPaso 2: Paso 2:caja con apertura: caminata de zijkant aleta van de doos (de gooi del gesneden stukken karton wegPaso 3: Paso
Cómo hacer un marco de madera del espejo

Cómo hacer un marco de madera del espejo

¿No odias a los marcos de plástico baratos que vienen en los espejos? Así lo hago, así que decidí hacer uno mejor. Usé algunos pino 3/4 "x 3". Es barato y fácil de trabajar.Áspero corté mis piezas, dejando a mis cuatro piezas más de tamaño para
Mensaje del espejo de Halloween Spooky.

Mensaje del espejo de Halloween Spooky.

Le mostrará cómo hacer un mensaje espeluznante aparece en un espejo (o cualquier pieza de vidrio) cuando alguien está tomando una ducha. >: OFunciona muy bien en Halloween!Paso 1: paso 1... En primer lugar, haz una pequeña cantidad de flujo menos jab
¿Postal del espejo

¿Postal del espejo

quiere ayudar a su amigo vana a estar en contacto? Enviarle una postal de espejo. La próxima vez que él decide contemplar su propia belleza infartante para asegurarse de que ninguna imperfección leve se ha deslizado en él tanto recordará donde vive p