Taula de continguts:

Rellotge de jubilació / Compte enrere / Rellotge Dn: 4 passos (amb imatges)
Rellotge de jubilació / Compte enrere / Rellotge Dn: 4 passos (amb imatges)

Vídeo: Rellotge de jubilació / Compte enrere / Rellotge Dn: 4 passos (amb imatges)

Vídeo: Rellotge de jubilació / Compte enrere / Rellotge Dn: 4 passos (amb imatges)
Vídeo: Йога для начинающих дома с Алиной Anandee #3. Здоровое гибкое тело за 40 минут. Продвинутый уровень. 2024, Juliol
Anonim
Rellotge de jubilació / Compte enrere / Rellotge Dn
Rellotge de jubilació / Compte enrere / Rellotge Dn

Tenia algunes d'aquestes pantalles de matriu de punts LED de 8x8 al calaix i pensava què fer-ne. Inspirat en altres instruccions, vaig tenir la idea de crear una pantalla de compte enrere / amunt per comptar el compte enrere fins a una data / hora futura i, si el temps objectiu va passar, fer el compte enrere. Ara el vaig fer el meu rellotge de jubilació assegut al prestatge.

La idea de posar-lo a una ampolla va ser més aviat un accident mentre es pensava en una carcassa. Altres posen vaixells en una ampolla, per què no un rellotge?

També volia fer que el rellotge obeís l’horari d’estiu i, per descomptat, recordar la configuració i l’hora en desconnectar-lo. Estic alimentant el rellotge mitjançant USB, cosa que el fa reprogramable si voleu fer alguna cosa diferent o simplement afegir funcions al codi. El codi és bastant senzill i també es pot optimitzar molt. No he tingut molta cura del consum de memòria RAM. Ho he de reconèixer. Si tinc temps i motivació, hi tornaré.

Subministraments

1. Arduino Nano

2. RTC (he utilitzat el DS3231 comú que també té una EEPROM)

3. Mòdul de matriu de punts de 12x 8x8. (Tenia els mòduls quad que són més fàcils de alinear)

4. LDR per ajustar la brillantor de la pantalla

5. Resistència 10 kOhm

6. Capacitor 5x 100 uF que suprimeix els pics de la pantalla

7. Per augmentar el contrast dels mòduls de 8x8, he utilitzat el "Window Film" de tons foscos. La pantalla mostra els LEDs com a punts blancs si no s’encén. La pel·lícula de la finestra el converteix en un aspecte negre brillant.

Pas 1: connecteu els components

Connecteu els components
Connecteu els components
Connecteu els components
Connecteu els components

He utilitzat tres de les pantalles quad per muntar la pantalla. Per mostrar una data amb barres incloses i l’hora amb dos punts, necessitem espai per a 8 caràcters. Utilitzant el tipus de lletra típic 5x7, necessitaríem sis blocs de 8x8 per fila. Vaig tallar un dels blocs quad per la meitat i els vaig disposar com a dues files per sis blocs, tal com es mostra a l'esquema de la taula.

Pas 2: peces impreses en 3D

Parts impreses en 3D
Parts impreses en 3D
Parts impreses en 3D
Parts impreses en 3D
Parts impreses en 3D
Parts impreses en 3D

Per mantenir les dues files de la pantalla i col·locar-les a l'ampolla, he imprès anells de distància rodona per al marc de la pantalla. A continuació he afegit els fitxers que he fet servir. Per poder imprimir-los sense suport, es divideixen en parts. A la captura de pantalla es mostren els dos anells enganxats al marc de la pantalla. La tapa del coll de l'ampolla conté els tres botons per canviar entre els modes de visualització i configurar l'hora actual i l'hora objectiu. La tapa del coll de l'ampolla que vaig imprimir en TPU permetia lliscar el cable USB a la coberta sense tallar els connectors i lligar-lo amb uns quants enrotllaments de filferro. Em vaig oblidar d’esmentar que feia servir una ampolla de vi d’1,5 L que vaig tallar a la part inferior. Totes les parts que s’imprimiran s’adapten a un llit d’impressora de 20x20 cm (8x8 in).

Pas 3: el codi

El codi Arduino utilitza algunes biblioteques d’ús habitual.

MD_MAX72xx

SPI

Filferro

RTClib

Fus horari

TimeLib

Hi ha algunes línies al fitxer INO que poden ser necessàries per canviar:

Línia 38: #define HARDWARE_TYPE MD_MAX72XX:: FC16_HW <- depèn del mòdul 8x8 i de la seva orientació

en lloc de FC16_HW es podria fer un de:

- MD_MAX72XX:: PAROLA_HW

- MD_MAX72XX:: GENERIC_HW

- MD_MAX72XX:: ICSTATION_HW

- MD_MAX72XX:: FC16_HW

El codi utilitza la configuració de l'hora central dels EUA i cal ajustar-lo per a altres zones horàries:

Línia 53/54:

TimeChangeRule myDST = {"CDT", Second, Sun, Mar, 2, -300}; // Hora d'estiu UTC-5TimeChangeRule mySTD = {"CST", First, Sun, Nov, 2, -360}; // Hora estàndard UTC -6

Això és fàcil d'ajustar. El nom CST / CDT és només per tenir una referència. No mostro l'abreviatura de tres lletres, per tant, no importa. Els paràmetres següents fan referència a quin dia del mes s'està produint el canvi. L'ajust es fa en minuts, de manera que les ubicacions que utilitzen ajustos de +/- 30 minuts també funcionaran.

El RTC s’executa internament a l’hora UTC, cosa que permet que la biblioteca de la zona horària funcioni com es volia. Us podeu preguntar per què el codi fa referència al xip DS1307 més antic al contrari del xip de rellotge que he utilitzat, però això no importa. La biblioteca funciona bé amb qualsevol dels dos xips. El DS1307 té la tendència a desviar-se més que el DS3132. el DS3132 és el rellotge preferit. Per a aquells que vulguin afegir temps a Internet, un ESP8266 farà la feina amb força facilitat. Això podria fer que el RTC quedés obsolet. Si feu aquests canvis, utilitzeu l'Arduino EEPROM per emmagatzemar el temps objectiu; he utilitzat la RTC EEPROM per fer-ho.

Pas 4: operació i configuració

Funcionament i configuració
Funcionament i configuració
Funcionament i configuració
Funcionament i configuració
Funcionament i configuració
Funcionament i configuració

Hi ha tres botons

1. Menú / configuració

2. Amunt

3. A baix

El botó de menú permet recórrer els tres tipus de pantalla: hora actual, hora objectiu, hora delta. L'hora Delta mostra el nombre de dies, HH / MM / SS entre l'hora actual i l'hora objectiu. Es mostrarà t- i compte enrere si l'objectiu està en el futur o t + i compte enrere si l'objectiu és en el passat.

Per ajustar l'hora actual o objectiu, seleccioneu l'hora actual o la visualització de l'hora objectiu. Per canviar l'hora, manteniu premut el botó de menú durant 2 segons i deixeu anar el que us portarà al mode de configuració. El veí "/" o ":" es convertirà en "" per indicar el dígit que esteu ajustant. Utilitzeu els botons amunt / avall per ajustar les dimensions hh / mm / ss i mm / dd / aa. No he afegit cap configuració per canviar entre mm / dd / aa i dd / mm / aa, això ha de canviar al codi o potser algú estigui disposat a afegir aquesta característica.

Notareu que si passeu els minuts per sobre de 59 o per sota de 00, la visualització de l’hora també s’ajustarà. el mateix passa amb els segons, les hores i els dies que canvien el següent valor superior si es creua per sota de 0 o per sobre del màxim d’aquest dígit. Ho vaig fer per evitar la programació dels diversos límits de cada mes i si febrer necessita 29 dies en un any bixest. L’ajust del temps es realitza en temps d’època, segons des de l’1 de gener de 1970.

He afegit un vídeo senzill per mostrar el recompte. Volia fer-los com una pantalla de rodes giratòries. Si voleu ajustar la durada del canvi, la línia 69 de l’INO us ofereix algunes opcions per accelerar o alentir el canvi. 120 ms faria que els dígits es desplaçessin prou lentament, ja que seria una roda en funcionament continu.

Espero que us hagi agradat aquest instructiu.

Patrick Geschwindner

Recomanat: