Numitron reloj y termómetro (1 / 8 paso)

Paso 1: El DS1307 en tiempo real reloj

El cronometraje se realizará por un IC DS1307. Esto es un IC poco práctico, ya que no sólo realiza un seguimiento de tiempo sino también de la fecha y el día de la semana.

Para este pequeño proyecto sólo usaremos lo del tiempo. Por lo tanto necesita un cristal de cuarzo de 32,768 kHz conectado entre los pines 1 y 2. También podemos agregar una batería con + al pin 3 y - al pin 4. Esto permite que el IC a seguir trabajando cuando se apaga el mainpower. Si no desea utilizar esta función, sólo puede conectar el pin 3 al pin 4 y todo funciona bien.

Patillas 5 y 6 se utilizará para transferir los datos a nuestro microprocesador. Debe ser conectados a los pines SCL y SDA en el microprocesador. Estas líneas deben tirar alto por un resistor de 4K 7 pullup.

Bascom facilita el trabajo con dispositivos I2C. Sólo necesita saber 4 comandos:

  1. I2cstart: este commant será comunicaciones de inicio de I2c
  2. I2cstop: este comando detiene la comunicación I2c
  3. Var I2crbyte : este comando Lee un byte desde el dispositivo y se almacena en 'var'
  4. Var I2cwbyte : este comando escribe la variable 'var' en el dispositivo

Utilizando el comando de escritura o lectura no basta, también tenemos que contar el dispositivo si queremos escribir en él o leer de él. Hacemos esto mediante el uso de la dirección correcta. Estas direcciones pueden encontrarse en la hoja de datos. La dirección de escritura para el DS1307 es D0H y la dirección de lectura D1H (la H detrás de él nos dicen que estas son cifras hexadecimales).

El DS1307 envía y quiere recibir datos en formato BCD. Esta es una variación en binario para la muestra donde cada dígito es representado por cuatro bits. Más sobre eso aquí. Por suerte convertir de BCD a decimal y viceversa es muy fácil en Bascom.

  • var = Makebcd(var) va a convertir decimal, hexadecimal y binario BCD
  • var = Makedec(var) va a convertir a hexadecimal, binario y BCD a decimal

Los datos se almacenan en la IC en registro. Te los imaginas como aquellos filingcabinets de antaño. Cada cajón tiene su número y contiene algo de información:

Segundos de 00H
H 01 minutos
02H horas
Día 03H
04 H fecha la H nos dicen que estas son cifras hexadecimales.
05H mes
06H año
07H Control
08H a 3FH Ram

Si queremos leer o almacenar algunos datos en primer lugar tendremos al dispositivo en que cajón que queremos ser. Podemos hacerlo escribiendo el código hex para ese cajón al dispositivo. El dispositivo entonces se nos otorga acceso a ese cajón. Después de escribir o leer algo o a este registro el dispositivo que automáticamente salta a la siguiente. Así que no es necesario enviar la ubicación cada vez

Ahora permite pone este código:

Este código necesita dim horas como byte, byte minutos y segundos como byte.

En primer lugar, estableceremos el reloj:

Segundos = Makebcd(Seconds) convertimos nuestras variables en formato BCD
Minutos = Makebcd(Minutes)
Horas = Makebcd(Hours)

restablecer hours.6 restablecemos bit 6 de la hoursbyte para asegurarse de
nuestro reloj se ejecuta en modo de 24h. Si el bit 6 es 1 entonces el
reloj funciona en modo de 12h y bit 5 será entonces
contienen los datos de AM/PM.

I2cstart
I2cwbyte y HD0 decimos el dispositivo que queremos escribir un byte
2cwbyte & H00 empezamos en el registro de segundos hex 00
I2cwbyte segundos Agregar segundos
Minutos de I2cwbyte minutos de adición
Agregar horas de I2cwbyte horas
I2cstop

Ahora es nuestro reloj! Permite leer de él ahora.

I2cstart
I2cwbyte y HD0 decimos el dispositivo que queremos escribir un byte de.
I2cwbyte & H00 pedimos el dispositivo para ir al registro segundos.
I2cstop
I2cstart                                                                       
I2cwbyte & HD1 decimos el dispositivo que queremos leer bytes.
Segundos I2crbyte Ack leemos los datos y reconocer que queremos
leer también el siguiente byte.

I2crbyte minutos, Ack
I2crbyte horas, Nack no ackowledge aquí para que el dispositivo sepa
que nos estamos leyendo.

I2cstop

Horas = horas y B00111111 que quitar los 6 y 7 ya que contienen otros
datos. Si usted está en modo de 12h, deberá
Retire la broca 5 también

Horas = Makedec(Hours) convertimos a formato decimal.
Minutos = Makedec(minutes)
Segundos = Makedec(seconds)

Ahora sabemos qué hora es.

En el siguiente paso se echa un vistazo en el DS18B20.

Artículos Relacionados

Construir usted mismo un reloj y termómetro

Construir usted mismo un reloj y termómetro

Hola chicos,En estas instrucciones paso a paso,Quiero compartir mi experiencia en la creación de un reloj y termómetro conArduino Mega 2560, LCD 16 x 2, sensor de resistencia térmica y reloj de tiempo real DS1307Proyectos más: http://rickelectronicpr
Reloj con termómetro usando Arduino i2c 16 x 2 lcd, RTC DS1307 y DHT11 sensor.

Reloj con termómetro usando Arduino i2c 16 x 2 lcd, RTC DS1307 y DHT11 sensor.

Hello! Ya ha pasado un tiempo no me he posteado nada en Instructables, pero ahora hice un simple proyecto que he visto en internet en varias formas. He conseguido crear un código con otros códigos que he encontrado en internet y tengo que decir es tr
Altura de 2cm 7 segmentos 6 dígitos AVR reloj con termómetro de 4 dígitos

Altura de 2cm 7 segmentos 6 dígitos AVR reloj con termómetro de 4 dígitos

Este proyecto es explicar cómo crear un reloj de 6 dígitos de 7 segmentos con Microcontrolador AVRPaso 1: Preparar las piezas para este proyecto Tenemos que preparar una parte de este proyecto,6 x 7 segmentos ánodo común6 x transistores PNP para el c
Fin de semana proyecto reloj fecha termómetro y humedad con Arduino mega

Fin de semana proyecto reloj fecha termómetro y humedad con Arduino mega

chicos, quiero compartir mi proyecto de fin de semana en la creación de un reloj con sensor de temperatura y humedadEstá usando el sensor DHT11, RTC DS1307, LCD 16 x 2 y Arduino Mega 2560,Mantener lectura y buena suertePaso 1: Preparar todas las piez
Con un solo LED RGB o una tira de LED para mostrar información: reloj, termómetro y un comunicador raro

Con un solo LED RGB o una tira de LED para mostrar información: reloj, termómetro y un comunicador raro

Uno de los primeros proyectos que hice con un Arduino era una guirnalda de luces de Navidad. De hecho, fue hecho de una tira de LED RGB sencilla cortar en dos, como Arduino tiene sólo 6 salidas PWM de hardware. No quería triviales arcoiris y colores
Usted mismo hacer un reloj casero con termómetro usando ATMEGA128

Usted mismo hacer un reloj casero con termómetro usando ATMEGA128

en este paso a paso quiero compartir mi experiencia con temporizador ATMEGA128 e interrumpir con DS1307 y NTC casero reloj y termómetro.Muestra hora, minutos, segundos, día de la semana, día de mes, mes y año y la temperatura en grados CelsiusDisfrut
Termómetro interior/exterior reloj/Nixie de VFD Retro Fit Linden manto de reloj

Termómetro interior/exterior reloj/Nixie de VFD Retro Fit Linden manto de reloj

Me decidí a hacer algo que no había visto todavía y combinado (2) separar la electrónica usando pantallas de tubo de vacío de diferentes tipos (2) para hacer esta exhibición única. Nixie tubos para el termómetro y VFD (vacío flouresent pantalla) para
Escritorio de Reloj/termómetro hecho de nogal, chatarra, pieza cortada.

Escritorio de Reloj/termómetro hecho de nogal, chatarra, pieza cortada.

Usar un viejo pedazo de madera de nogal para hacer este escritorio de Reloj/termómetro. Un otra manera inútil pedazo de madera. Montón de divertido y funcional.Por favor Suscríbete a mi canal!http://www.youtube.com/Channel/UCoiFVDvzJX8tXXF5GsUPc_QFac
Termómetro de barbacoa Chef IMP: Internet-Connected

Termómetro de barbacoa Chef IMP: Internet-Connected

cuando era un niño, cocinar nuestras vacaciones pavo o asado con uno de los termómetros poco pop-up que usted simplemente pega en el pájaro, que aparece (probablemente) cuando el pájaro está hecho, o por lo menos seguro para comer. Teníamos un montón
Siete segmentos Display termómetro - Arduino basado

Siete segmentos Display termómetro - Arduino basado

Hoy voy a mostrar cómo hacer su propio termómetro de 7 segmentos - 2 dígitos - con Arduino uno y sensor de temperatura DS18B20.Prefiero construir mi propio circuito de arduino basado usando el poseedor de uno de ATmega328p, pero esto es opcional para
Binario termómetro USB alimentado

Binario termómetro USB alimentado

instrucciones de montaje Kit termómetro binario de lo diseñado.Usted puede adquirir uno en:http://www.etsy.com/listing/122729791/Paso 1: Obtener la plancha caliente Usar soldadura sin plomo con mi plancha a 320 grados Celsius.  Es una buena idea mant
Arduino desde cero - Termómetro Digital

Arduino desde cero - Termómetro Digital

He querido hacer proyectos con Arduinos, pero $ 30 una pieza de sus proyectos se caro. Así que quiero mostrarte cómo puedes hacer tu propio Arduino desde cero y ahorrar dinero haciéndolo. Hacer tu propio Arduino para alrededor $8. Para este instructa
Termómetro de precisión de 6 dígitos caseros Réamur, Kelvin, Farenheit y Celsius

Termómetro de precisión de 6 dígitos caseros Réamur, Kelvin, Farenheit y Celsius

chicos,En este artículo quiero compartir mi experiencia en la construcción de un termómetro digital casero con precisión de 6 dígitos,Utilicé una sencilla NTC y ATMEGA128.Vamos a comenzar con la preparación de las piezas...Paso 1: Las piezas necesari
Termómetro Digital barato y fácil

Termómetro Digital barato y fácil

tuve que controlar la temperatura de mi acuario. Para el propósito, la idea vino a mi mente por eso no uso reloj digital de mesa que también puede mostrar la temperatura del medio ambiente. La mayoría de ustedes tendrá tal un reloj en casa que estoy