Reloj digital y analógico - Arduino + PaperCraft (10 / 11 paso)

Paso 10: programación

Algoritmo

Bucle principal

  1. Recuperar tiempo de módulo RTC (en horas y minutos)
  2. Si el tiempo es otro Tiempo de visualización
  3. Repetir

Tiempo de visualización

  1. Tiempo dividido en cuatro dígitos. (con / div 10)
  2. Para cada pantalla de siete segmentos, segmentos a avanzar pantalla dígitos

Dígitos de la pantalla

  1. Colocar la lógica de decodificador. Int se traducen en siete segmentos pedidos.
  2. Mueve servos necesarios de X grado.  Movimiento innecesario grados de servos Y (donde X es la posición de salida e Y es la posición del plano.

Muestra

#include < Wire.h >
#include "RTClib.h"

RTC_DS1307 RTC;

segA corto = 0; Pin de pantalla 14
segB corto = 1; Pin de la pantalla 16
segC corta = 2; Pin de pantalla 13
segD corto = 3; Pin de pantalla 3
segE corto = 4; Pin de pantalla 5
corto segF = 5; Pin de pantalla 11
segG corto = 6; Pin de pantalla 15

segA_OUT corto = 110;
segB_OUT corto = 110;
segC_OUT corto = 110;
segD_OUT corto = 110;
segE_OUT corto = 110;
segF_OUT corto = 110;
segG_OUT corto = 110;

segA_IN corto = 90;
segB_IN corto = 90;
segC_IN corto = 90;
segD_IN corto = 90;
segE_IN corto = 90;
segF_IN corto = 90;
segG_IN corto = 90;

int hora = 2000;

DatePast DateTime;
DateNow DateTime;

mantenimiento de la casa
void setup() {}
Serial.Begin(9600);
Wire.Begin();
RTC.begin();
RTC.adjust (DateTime (__DATE__, __TIME__));
datePast = RTC.now();
}

bucle principal
void loop() {}
dateNow = RTC.now();
Si (! () datePast.hour() == dateNow.hour() & & datePast.minute() == dateNow.hour()))
{
displayNumber(dateNow.hour()*100+dateNow.minute());
datePast = dateNow;
}
}

Dado un número, disponemos de 10:22
Después de ejecutar a través de los 4 números, la pantalla queda apagada
void displayNumber (int toDisplay) {}
para (int cifras = 4; cifra > 0; dígitos--) {}
lightNumber (toDisplay % 10, dígitos);
toDisplay = 10;
}

iniciar el movimiento
Serial.Print ("T"); Serial.println(Time);
}

{} void mover (int servo, int posición)
Serial.Print("#");
Serial.Print(servo);
Serial.Print ("P");
Serial.Print(Position);
}

Dado un número, se convierte en los segmentos
Si número == 10, luego apague el número
{} void lightNumber (int numberToDisplay, int segmento)

int offset = (tramo - 1) * 7;
interruptor (numberToDisplay) {}

caso 0:
mover (segA + offset, segA_OUT);
mover (segB + offset, segB_OUT);
mover (segC + offset, segC_OUT);
mover (segD + offset, segD_OUT);
mover (segE + offset, segE_OUT);
mover (segF + offset, segF_OUT);
mover (segG + offset, segG_IN);
rotura;

caso 1:
mover (segA + offset, segA_IN);
mover (segB + offset, segB_OUT);
mover (segC + offset, segC_OUT);
mover (segD + offset, segD_IN);
mover (segE + offset, segE_IN);
mover (segF + offset, segF_IN);
mover (segG + offset, segG_IN);
rotura;

caso 2:
mover (segA + offset, segA_OUT);
mover (segB + offset, segB_OUT);
mover (segC + offset, segC_IN);
mover (segD + offset, segD_OUT);
mover (segE + offset, segE_OUT);
mover (segF + offset, segF_IN);
mover (segG + offset, segG_OUT);
rotura;

caso 3:
mover (segA + offset, segA_OUT);
mover (segB + offset, segB_OUT);
mover (segC + offset, segC_OUT);
mover (segD + offset, segD_OUT);
mover (segE + offset, segE_IN);
mover (segF + offset, segF_IN);
mover (segG + offset, segG_OUT);
rotura;

caso 4:
mover (segA + offset, segA_IN);
mover (segB + offset, segB_OUT);
mover (segC + offset, segC_OUT);
mover (segD + offset, segD_IN);
mover (segE + offset, segE_IN);
mover (segF + offset, segF_OUT);
mover (segG + offset, segG_OUT);
rotura;

caso 5:
mover (segA + offset, segA_OUT);
mover (segB + offset, segB_IN);
mover (segC + offset, segC_OUT);
mover (segD + offset, segD_OUT);


mover (segE + offset, segE_IN);
mover (segF + offset, segF_OUT);
mover (segG + offset, segG_OUT);
rotura;

caso 6:
mover (segA + offset, segA_OUT);
mover (segB + offset, segB_IN);
mover (segC + offset, segC_OUT);
mover (segD + offset, segD_OUT);
mover (segE + offset, segE_OUT);
mover (segF + offset, segF_OUT);
mover (segG + offset, segG_OUT);
rotura;

caso 7:
mover (segA + offset, segA_OUT);
mover (segB + offset, segB_OUT);
mover (segC + offset, segC_OUT);
mover (segD + offset, segD_IN);
mover (segE + offset, segE_IN);
mover (segF + offset, segF_IN);
mover (segG + offset, segG_IN);
rotura;

caso 8:
mover (segA + offset, segA_OUT);
mover (segB + offset, segB_OUT);
mover (segC + offset, segC_OUT);
mover (segD + offset, segD_OUT);
mover (segE + offset, segE_OUT);
mover (segF + offset, segF_OUT);
mover (segG + offset, segG_OUT);
rotura;

caso 9:
mover (segA + offset, segA_OUT);
mover (segB + offset, segB_OUT);
mover (segC + offset, segC_OUT);
mover (segD + offset, segD_OUT);
mover (segE + offset, segE_IN);
mover (segF + offset, segF_OUT);
mover (segG + offset, segG_OUT);
rotura;

caso 10:
mover (segA + offset, segA_IN);
mover (segB + offset, segB_IN);
mover (segC + offset, segC_IN);
mover (segD + offset, segD_IN);
mover (segE + offset, segE_IN);
mover (segF + offset, segF_IN);
mover (segG + offset, segG_IN);
rotura;
}
}

Otros
Usted también necesitará configurar reloj RTC la primera vez. Esto le dará un tiempo de inicio igual al ordenador. Necesita la biblioteca RTC para ejecutar el código siguiente.

#include
#include "RTClib.h"

RTC_DS1307 RTC;

void setup () {}
Serial.Begin(57600);

Wire.Begin();

RTC.begin();

if (!. {RTC.isrunning())}
Serial.println ("RTC no corre!");
RTC.adjust (DateTime (__DATE__, __TIME__));
}
}

Artículos Relacionados

Digital a analógico: Cómo realizar datos como forma

Digital a analógico: Cómo realizar datos como forma

Datos están en todas partes! Es el número de aves que se pasa fuera de casa mientras caminas por la calle, es el tipo de helado sabores personas escoger en un caluroso día de verano, es todo el mundo en que vivimos. Datos pueden ser una cantidad de c
Robot de AAA (autónoma analógico Arduino)

Robot de AAA (autónoma analógico Arduino)

la AAA Robot es un robot perfecto para principiantes. Es versátil, fácil de construir y discute muchos de los temas entre deben aprender, incluyendo pero no limitado a interruptores de transistor, motor de sensores analógicos de nad. Este Instructabl
Termistor de KY-013 analógico (Arduino)

Termistor de KY-013 analógico (Arduino)

Tuve un tiempo difícil encontrar información "plug & play" y códigos, conexiones, etc. sobre el Sensor de temperatura analógico KY-013. Yo no soy un programador para hacer un montón de ensayos y errores, sobre todo, pero finalmente conseguí
Digital a analógico.

Digital a analógico.

Huh? ¿Qué es eso? Digital son básicas encendido y apagado de las señales que utilizan la mayoría de las computadoras. Es un interruptor digital en su forma propia.  Es o en.  Análoga sería similar a la de un fader control interruptor que puede ajusta
Inventor aplicación + Voltímetro Analógico arduino

Inventor aplicación + Voltímetro Analógico arduino

Hay muchos proyectos de voltímetro de arduino en la red.Soy poco actualizado y reemplazar la pantalla lcd para el teléfono android.En la aplicación para android, la escala de 8 voltios, pero no es el máximo.La parte de app inventor se basa en imagesp
Vúmetro analógico y el reloj (Arduino Powered)

Vúmetro analógico y el reloj (Arduino Powered)

este proyecto trae el viejo tiempo Analog VU Meter, con la funcionalidad añadida de un reloj de aspecto aseado! Cuando apagas tu música los metros swing automáticamente en modo de reloj. Detrás de todo está el Arduino popular y fácil de usar.Esta es
Reloj de alcance: sensor analógico reloj y temperatura en un osciloscopio

Reloj de alcance: sensor analógico reloj y temperatura en un osciloscopio

Scopeclock es un equipo fácil de usar para hacer más útil tu osciloscopio analógico capaz de X-Y. Usando este simple utilizar hardware que puede convertir tu osciloscopio analógico en un reloj de alcance. Este proyecto era yo y mi amigo kshitij gupta
Hardware analógico universal Testbench

Hardware analógico universal Testbench

una ayuda a la ENSE6ANZA $35 de electrónica básica y un inestimable disposición EXPERIMENTAL para el aficionado de la electrónica.Enseñanza básica analógica y electrónica Digital a nivel de licenciatura consiste en clases teóricas con las manos-en-en
Hacer una digital "Miau" de reloj analógico

Hacer una digital "Miau" de reloj analógico

¿Es el reloj analógico no haciendo suficiente? ¿Quieres hacer cosas digitales con un reloj analógico?Este tutorial le mostrará cómo hacer un reloj de Kit Cat jugar un clip de sonido de "Miau", a intervalos de tiempo exactos, usando la Atmega 328
Arduino Nano: Analógico 7 segmento MAX7219 pantalla con Visuino

Arduino Nano: Analógico 7 segmento MAX7219 pantalla con Visuino

Displays de 7 segmentos son una opción muy popular para Mostrar datos. Sin embargo, constan de un gran número de LEDs y controlar cada LED con un pin digital de Arduino no es una solución práctica. Maxim Integrated ofrece muy conveniente chip para el
Binario / analógico reloj

Binario / analógico reloj

me inspiré por el reloj digital / analógico para hacer mi propio reloj especial como mi segundo instructable. Explorar la internet y me encontré que relojes servo son raras y binarios son comunes. Así que decidí combinar los dos y esto es lo que hice
Cómo hacer un reloj Digital de Arduino

Cómo hacer un reloj Digital de Arduino

Relojes digitales son uno de la gran invención en el campo de la ciencia.Te has preguntado "¿cómo hacer su propio reloj digital, al igual que en el cine!"???Así que también he pasado, mi infancia en un sueño para construir mi propio reloj digita
Hablando de resplandor en el oscuro 3D analógico impreso reloj

Hablando de resplandor en el oscuro 3D analógico impreso reloj

El reloj mostrará la hora analógica de 4 metros. He visto este tipo de relojes en varias encarnaciones, pero nunca vi un reloj analógico en este formato que hablaba. Este reloj anuncia la hora a intervalos de media hora y juega un mensaje cada vez qu
Indicador de fase lunar reloj analógico de Steampunk

Indicador de fase lunar reloj analógico de Steampunk

hice un reloj steampunk utilizando una caja de teléfono de madera antiguo, tres indicadores analógicos, switches, una ventana y un mecanismo de cuerda. El reloj muestra las horas, minutos y segundos en los relojes y cuando lo adquieres, muestra el me