Música despertador (13 / 24 paso)

Paso 13: Reloj de tiempo Real DS1307 IC

El DS1307 es un clásico básico de bricolaje relojes.

http://www.Maxim-IC.com/datasheet/index.MVP/ID/2688
Lea la hoja de datos, contiene los comandos para el chip y otros detalles. Usted necesitará saber estas cosas cuando usted mira mi código fuente para que usted sepa lo que está sucediendo.

¿Qué hace? Realiza un seguimiento de tiempo, por lo que el microcontrolador no tiene por qué. Incluso a registrar el tiempo usando una pila de monedas, mientras que su alimentación principal está apagada, para que no te clásico 12:00 parpadeante sucede a viejos despertadores cuando se va la luz. Oh y realiza un seguimiento de la fecha también.

Tenga en cuenta que hay mucho mejores alternativas para el DS1307 hoy con mejores características, sin embargo, he encontrado este chip en mi colección de piezas impares, así que voy a utilizarlo.

Este chip requiere las siguientes cosas alrededor de él: un cristal de reloj, una batería de respaldo (célula de la moneda de 3V de la voluntad de la tienda de dólar hace 9 años), una fuente de alimentación y un capacitor de desacoplamiento.

El microcontrolador comunicará al DS1307 por medio del autobús de I2C (circuito Inter-integrado). El bus I2C es también conocido como TWI (dos cables de interfaz, sólo utiliza dos hilos). Está diseñado para la comunicación entre circuitos integrados múltiples. Consulte el Apéndice D para obtener más información sobre el I2C y TWI.

Lo que tenemos que hacer con el DS1307 es simple, sólo tenemos que ajustar la hora y leer la hora.

El DS1307 mantiene sus datos en varios registros. Consulte la hoja de datos, tabla 2, página 8. Muestra los datos que se almacenan en formato binario codificado decimal, que nuestro código fuente a codificar y decodificar. Vamos a escribir a estos registros cuando ajuste la hora y leer los registros de la misma para recuperar el tiempo.

Una buena descripción del bus I2C se da en la página 10 de la hoja de datos. La sección de características eléctricas AC de la hoja de datos dice que nuestro bus I2C debe ejecutar a 100 KHz o menos (esto es configurable dentro de nuestro código fuente), Téngalo en cuenta. La dirección del DS1307 es 1101000, recordar que también.

Por ejemplo, queremos seleccionar los segundos, por lo que el registro es 0 x 00. Primero enviamos por I2C
0b11010000
Esto aborda el DS1307 y dice que quiere escribir
entonces enviamos
0 x 00
para indicar el registro 0 x 00
entonces enviamos el número al que queremos establecer, y codificado en formato binario codificado decimal

Entonces, si queremos leer detrás de los segundos, el registro es nuevo, 0 x 00, primero enviamos
0b11010000
Note que esta es la dirección, pero todavía estamos especificando que queremos escribir
¿por qué especificar "escriba" cuando queremos leer? Porque no hemos dicho el DS1307 donde queremos leer (configuración de la dirección de registro dentro del DS1307). Por lo que enviar
0 x 00
luego terminamos la transferencia de datos
a continuación, enviar
0b11010001
Ahora estamos indicando que queremos leer y abordar el DS1307
luego nos dirigimos al reloj para leer de nuevo los datos, que el DS1307 se coloque en la línea de datos para nosotros. Entonces podemos descifrar los datos de formato binario codificado decimal.

Es importante entender que ya estamos usando el módulo incorporado de TWI de la AVR para la comunicación I2C, sabe para liberar automáticamente la línea SDA cuando indicamos "leer" en el primer byte que enviamos. El hardware y software (estamos usando "twi.c" de biblioteca "Wire" de Arduino). TODO es automatizado, incluso los reconocimientos.

Para nuestros propósitos, leer y escribir todos los parámetros de tiempo de una sola vez, para la eficiencia. Los detalles de cómo funciona esto es en la hoja de datos. También puede ver mi código fuente más adelante. La idea es la misma para los registros individuales, sino repetidamente de lectura/escritura sin finalizar a la transferencia. Verás cómo esto funciona a través de la hoja de datos, código fuente y mis formas de onda del analizador de lógica.

Une es una demostración de un programa simple que establece el tiempo y muestra el tiempo en su pantalla LCD. Demostrará mediante el bus de TWI para realizar operaciones de lectura y escritura de byte único o múltiple (ver las formas de onda que he proporcionado).

Añadir primero el DS1307 para su circuito según mi esquema. Una mayor resolución de imagen es dentro del. Paquete ZIP. El punto importante es que el DS1307 necesita 5V, y nosotros hemos modificado la Teensy ++ a 3.3V, el diagrama le muestra dónde obtener 5V de Teensy ++.

Usted necesitará el LCD todavía conectado si desea ver el funcionamiento del reloj. El terminal de serie todavía mostrará que usted mensajes de depuración.

He incluido las formas de onda del analizador de lógica para que pueda ver claramente lo que I2C parece, la hoja de datos del DS1307 también muestra formas de onda similares, estudiar las formas de onda juntos mientras que también ha examinado los datos que se intercambian (como lo mando, cuál fue la respuesta), tratar de emparejar los eventos a los puntos en el código fuente.

Artículos Relacionados

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
LittleBits reproductor de música Wi-Fi

LittleBits reproductor de música Wi-Fi

Sin hilos controlar este reproductor de música con el teléfono o a través de una variedad de canales IFTTT.Utilizar Control de Cloud (en su teléfono u ordenador) para avanzar de a canción a la siguiente o probar la fecha y hora canal de IFTTT para ha
Despertador de RaspberryPi

Despertador de RaspberryPi

Se trata de un despertador basado en un RaspberryPi. Cualquier RaspberryPi funcionará. Utilicé una modelo B1 versión 2 porque tiene los orificios de montaje y la velocidad no importa. Tengo una tarea que debe realizarse cada dos días. Por eso hay un
Teléfono móvil de carga / estación de música (altavoces de escritorio antigua de reutilización)

Teléfono móvil de carga / estación de música (altavoces de escritorio antigua de reutilización)

decidí usar mis viejos altavoces estéreos e incorporarlos en mi estación de carga, por lo que puedo reproducir mi música con el más bajo. (Mucho mejor que el altavoz del teléfono móvil) + puede ser utilizado como un altavoz muy fuerte o un despertado
Despertador de amplificador de guitarra

Despertador de amplificador de guitarra

Esta idea estaba tomando de un anterior instructable.por lonesoulsurferEsto puede ser uno de lo más fácil, barato, pero aún brillante instructivo que he visto. Como un maestro nos desafió a nuestros estudiantes de la escuela en una vieja radio. Despu
Rompecabezas reloj despertador

Rompecabezas reloj despertador

En este instructable voy a mostrar cómo construir un reloj de alarma que le permite ajustar el tiempo arreglando los dígitos.Casi nunca consigo en una discusión con mi novio, pero cuando lo hacemos es casi siempre acerca de la configuración de la hor
Personalizada alarma reloj/música en Radio

Personalizada alarma reloj/música en Radio

Este proyecto un Pi de frambuesa bastante sencillo para los entusiastas de Raspberry Pi nivel principiante. En este Instructable le mostrará cómo hacer un reloj de alarma que se transmiten en la banda de FM. Esto le permitirá poder escuchar la radio
Infalible despertador inteligente

Infalible despertador inteligente

¿Siempre despierta en su reloj de alarma sólo para apagarla, pone hacia abajo, cierre los ojos durante unos pocos segundos... y terminan despertando mucho más tarde que había querido? Este proyecto pretende resolver el problema mediante la construcci
Reloj despertador ensordecedor

Reloj despertador ensordecedor

un reloj de alarma (modificado) confiable que despertará a los muertos. Pongo este juntos después de haber tenido varias alarmas cuerdas romper conmigo. Básicamente es un despertador electrónico modificado para disparar una alarma. Ya que estoy práct
Auto-en la música en el Hack de baño

Auto-en la música en el Hack de baño

Tienen el juego de radio cada vez que encienda las luces en el cuarto de baño. Asegúrese de apagar las luces y los interruptores para evitar electrocución! Parche solo en su viejo despertador que ya no utilizas y viola! Auto de música cada vez que la
Reloj despertador con infrarrojo y Bluetooth altavoces

Reloj despertador con infrarrojo y Bluetooth altavoces

INTRODUCCIÓNHola, mi nombre es Ben Hur Gonçalves, soy Ingeniero Mecatrónico graduado en Universidade de São Paulo, Brasil en 2010. Hoy en día trabajo con bienes raíces, pero hacer estos proyectos con arduino en fines de semana, sólo por diversión. Es
Reloj despertador Pac_Man MP3

Reloj despertador Pac_Man MP3

InglésEste es mi primer instructables :-) lo siento por mi inglés... ¡ Soy francés!Tiene estructura para mi hija un despertador MP3 con la cara divertida de Pac_Man (ahora ella despertar todo solo)FrancésC ' est mon 1er instructables :-)J ' ai constr
WeggUp - un dormir del ciclo y la luz despertador

WeggUp - un dormir del ciclo y la luz despertador

A menudo tengo el problema, que tengo problemas para levantarme en la mañana, mientras que al mismo tiempo, tengo problemas para dormir en la noche.He comprobado varias posibilidades para hacer tanto más fácil.Levantarse en la mañanaAlarma de salida
Reloj despertador con Evive

Reloj despertador con Evive

Queremos hacer un reloj de alarma analógico y digital combinado. Reloj de tiempo real es esencial para el reloj mantener el tiempo, incluso si está apagada. Pero comúnmente disponibles tableros de microcontrolador como Arduino o frambuesa Pi no tiene