Taula de continguts:

Rellotge de 132 píxels: 5 passos (amb imatges)
Rellotge de 132 píxels: 5 passos (amb imatges)

Vídeo: Rellotge de 132 píxels: 5 passos (amb imatges)

Vídeo: Rellotge de 132 píxels: 5 passos (amb imatges)
Vídeo: RTX 3090 Ti vs RTX 3060 Ultimate Showdown for Stable Diffusion, ML, AI & Video Rendering Performance 2024, De novembre
Anonim
Image
Image
Rellotge de 132 píxels
Rellotge de 132 píxels

He estat, durant el temps que recordo, obsessionat pels LED i el temps. En aquest projecte he creat un gran rellotge de paret que mostra l’hora actual mitjançant 132 LED de neopixel muntats i brillants a través d’una placa d’avet. És un digital analògic híbrid amb un píxel individual per hora, minut i segon.

Aquest va ser el projecte més gran que he fet fins ara, vaig començar a pensar-hi fa 6 mesos i la idea es va anar reunint lentament. Estic molt content del resultat i espero compartir-lo amb vosaltres.

Pas 1: recollida de subministraments i eines

Subministraments i eines de recollida
Subministraments i eines de recollida
Subministraments i eines de recollida
Subministraments i eines de recollida
Subministraments i eines de recollida
Subministraments i eines de recollida
Subministraments i eines de recollida
Subministraments i eines de recollida

Components

Aquest projecte es basa en una pissarra de la meva botiga de bricolatge local. El tauler mesura 850 mm d'ample per 500 mm d'alt i 18 mm de profunditat.

Els LED que s’utilitzen en aquest projecte són 5050 WS2812b muntats en PCB circulars de 9 mm de diàmetre aproximat amb coixinets de soldadura a la part posterior.

Estic fent servir un micro controlador compatible Arduino Pro Mini. És la versió de 5V 16 MHZ. Vaig escollir aquest ja que té un disseny súper prim, petita impremta i tots els ports nessary, a més de recanvis per a futures actualitzacions. També té 5 volts, de manera que puc utilitzar una sola font d'alimentació per als LEDs, el controlador micro i el RTC

El mòdul RTC (Real Time Clock) que compta amb el xip DS3231 s’encarrega de mantenir el temps. Aquest xip és molt precís, de manera que el temps no ha de passar massa.

També s'utilitza:

Filferro. Soldadura i cola calenta.

Eines:

Broques elèctriques i broques de fusta (10 mm i 5 mm)

Soldador

Pistola de cola calenta

retalls de filferro

Accessoris per a encaminadors Dremel i plunge

Pas 2: Marcatge, perforació i encaminament

Marcatge, perforació i encaminament
Marcatge, perforació i encaminament
Marcatge, perforació i encaminament
Marcatge, perforació i encaminament
Marcatge, perforació i encaminament
Marcatge, perforació i encaminament

Perforació

  • Mitjançant una vora estret, trobeu el centre del tauler dibuixant una línia des de cantonades oposades.
  • Marqueu 3 cercles amb un tros de corda i un bolígraf. El cercle més exterior hauria d’estar a uns 20 mm de la vora del tauler i les altres 2 línies es desplaçarien 15 mm de l’última línia.
  • Vaig utilitzar una cara de rellotge impresa per ajudar-me a marcar les posicions de cadascun dels minuts i segons a les 2 línies externes i les hores a la línia interior.
  • Practicar forats de 10 mm aproximadament de 5 mm de profunditat per cada hora, minut i segon.
  • Utilitzeu el trepant de 5 mm per fer forats al tauler durant hores, minuts i segons.

Encaminament

Tot i que aquest pas no és necessari, permetrà que el rellotge s’ajusti a la paret.

  • Utilitzar un enrutador i una guia de cercle per canals de fil de ruta a la placa
  • Marqueu i encamineu un recés per viure-hi el RTC i el micro controlador.
  • Dirigeixi un canal des de les línies exteriors fins al recés per a cables

Pas 3: Tanta soldadura, tall i despullament

Tant soldar, tallar i despullar
Tant soldar, tallar i despullar
Tant soldar, tallar i despullar
Tant soldar, tallar i despullar
Tant soldar, tallar i despullar
Tant soldar, tallar i despullar

Aquesta següent part és molt més fàcil de dir que de fer. El meu consell seria una nota a corre-cuita. intenta trobar un sistema i entra en un ritme.

Cadascun dels LED necessita 5 volts d’entrada, 5 volts de sortida, dades d’entrada, sortida de dades, entrada de terra i sortida de terra. incloent l’alimentació del microcontrolador i RTC els seus més de 400 cables, tot pelat i soldat als dos extrems.

Una substància blava pegajosa és molt útil per a aquest pas.

  • Vaig començar col·locant 2 LED als seus forats l'un al costat de l'altre per determinar la longitud del fil necessari per connectar-se entre ells.
  • Utilitzant el primer tros de filferro com a guia, després tallo 60 de cada filferro de color.
  • Retireu 2 mm de mànigues dels extrems de cada filferro i esteneu-los amb soldadura.
  • Soldeu una petita taca de soldadura a cadascun dels coixinets LED.
  • Soldeu els cables als LED per formar dues cadenes de 60 durant els minuts i segons i una cadena de 12 per a les hores. He utilitzat fil vermell per a 5V, groc per a dades i blau per a terra.
  • Tingueu cura de connectar cada Data Out (DOUT) a la Data In (DIN) del següent LED
  • El darrer led de cada dosi de cadena no necessita un cable de sortida de dades.

Un cop acabades totes les cadenes, és una bona idea provar-les abans d’instal·lar-les. Vaig utilitzar el meu Arduino UNO i el test de cadenes NeoPixel Adafruit per confirmar que cada LED funcionava.

Soldeu cables més llargs a cadascuna de les cadenes per a 5 V, terra i entrada de dades.

En aquest punt hi hauria d’haver cinc cables de 5 V, tres cables de dades connectats a l’Arduino Pro Mini i 5 cables de terra.

Tireu 5 mm dels extrems dels cables de 5 v i soldeu-los tots junts i repetiu els cables de terra.

Després de completar les tres cadenes, soldeu un cable de 5V al pin RAW de l’Arduino Pro Mini i també al pin VCC per al RTC. Un cable de terra a GND a l'Arduino Pro Mini i RTC i, a continuació, 2 cables més:

SCL des del RTC fins a l'A5 al Pro Mini

SDA del RTC a A4 al Pro Mini

Les línies de dades dels LED s’han de connectar a:

  • Segons: Pin digital 3.
  • Minuts - DigitalPin 4
  • Hores - DigitalPin 5

Pas 4: Instal·lació

Instal·lant
Instal·lant
Instal·lant
Instal·lant
Instal·lant
Instal·lant

Un cop soldats, la instal·lació dels LED als forats hauria de ser directa. Cal instal·lar els LED perquè les dades funcionin en sentit antihorari quan les mireu des de la part posterior, ja que el codi està configurat cap a la part frontal.

Vaig utilitzar una petita quantitat de cola calenta per mantenir-les premudes, ja que vull poder substituir un sol LED si falla en el futur.

També vaig fer servir cola calenta per mantenir tots els cables ordenats i fixar el connector del canó a la placa.

Hi ha diverses guies de programació arduino pro mini disponibles. Utilitzo el mètode extern del convertidor USB a sèrie per carregar aquest codi a l’Arduino:

Aquest codi també establirà l'hora a l'RTC al moment en què es va compilar. per tant, és important que només es tiri el botó de pujada perquè compleixi i pengi el més ràpidament possible.

Bona part d’aquest codi va ser manllevat del NeoPixel Ring Clock per Andy Doro. Alguns de l'Adafruit NeoPixel Strand Test i alguns els he ajuntat.

Haureu d’haver instal·lat algunes biblioteques. Estan disponibles al gestor de biblioteques al programari Arduino.

L’Adafruit NeoPixel per als LEDs ws2812b

Cable per parlar amb el RTC per I2C (està integrat de sèrie)

i RTClib per saber què demanar al RTC

/ ************************************************** ************************* * * NeoPixel Ring Clock per Andy Doro ([email protected]) https://andydoro.com/ringclock/ * * ************************************************* **************************

Historial de versions

Data per què

20140320 AFD Primer esborrany 20160105 AFD Arcs desapareguts 20160916 AFD compatible amb quincalla 20170727 AFD ha afegit STARTPIXEL per a un recinte 3D, punt d'inici variable, ha afegit suport automàtic DST 20180424 AFD mitjançant la biblioteca DST https://github.com/andydoro/DST_RTC *

/ inclou el codi de la biblioteca:

#include #include

#incloure

// defineix pins

#define SECPIN 3 #define MINPIN 4 #define HOUPIN 5

#define BRIGHTNESS 20 // defineix la brillantor màxima

#defineix r 10

#define g 10 #define b 10 RTC_DS3231 rtc; // Establir objecte de rellotge

Adafruit_NeoPixel stripS = Adafruit_NeoPixel (60, SECPIN, NEO_GRB + NEO_KHZ800); // objecte de tira

Adafruit_NeoPixel stripM = Adafruit_NeoPixel (60, MINPIN, NEO_GRB + NEO_KHZ800); // objecte de tira Adafruit_NeoPixel stripH = Adafruit_NeoPixel (24, HOUPIN, NEO_GRB + NEO_KHZ800); // byte object object stripColorRed, pixelColorGreen, pixelColorBlue; // manté valors de color

configuració nul·la () {

Wire.begin (); // Començar I2C rtc.begin (); // començar rellotge

Serial.begin (9600);

// estableix els modes pinMode pin (SECPIN, OUTPUT); pinMode (MINPIN, OUTPUT); pinMode (HOUPIN, OUTPUT);

if (rtc.lostPower ()) {

Serial.println ("RTC ha perdut energia, permetem definir l'hora!"); // següent línia estableix el RTC a la data i hora en què es va compilar aquest esbós rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))); // Aquesta línia defineix el RTC amb una data i hora explícites, per exemple, per establir // el 21 de gener de 2014 a les 3:00 de la matinada a la qual trucaríeu: // rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0)); }

stripS.begin ();

stripM.begin (); stripH.begin (); //strip.show (); // Inicialitza tots els píxels a "off"

// seqüència d'inici

retard (500);

colorWipeS (stripS. Color (0, g, 0), 5); // Blau colorWipeM (stripM. Color (r, 0, 0), 5); // Color blau EsborrarH (stripH. Color (0, 0, b), 50); // Blau

retard (1000);

Hora Data el Temps = rtc.now (); // té en compte el byte DST segon valor = theTime.second (); // obtenir segons byte minuteval = theTime.minute (); // get minutes int hourval = theTime.hour (); hourval = hourval% 12; // Aquest rellotge dura 12 hores, si és de 13 a 23, converteix-lo a 0-11 '

per a (uint16_t i = 0; i <segon valor; i ++) {stripS.setPixelColor (i, 0, 0, b); stripS.show (); retard (5); }

per a (uint16_t i = 0; i <minuteval; i ++) {stripM.setPixelColor (i, 0, g, 0); stripM.show (); retard (5); }

per a (uint16_t i = 0; i <hourval; i ++) {stripH.setPixelColor (i, r, 0, 0); stripH.show (); retard (5); }

}

bucle buit () {

// obtenir temps

Hora Data el Temps = rtc.now (); // té en compte el DST

byte secondval = theTime.second (); // obtenir segons

byte minuteval = theTime.minute (); // obtenir minuts int hourval = theTime.hour (); // obtenir hores hourval = hourval% 12; // Aquest rellotge dura 12 hores, si és de 13 a 23, converteix-lo a 0-11 '

stripS.setPixelColor (segon valor, 0, 0, 20); stripS.show (); retard (10); if (secondval == 59) {for (uint8_t i = stripS.numPixels (); i> 0; i--) {stripS.setPixelColor (i, 0, g, 0); stripS.show (); retard (16);}}

stripM.setPixelColor (minuteval, 0, g, 0);

stripM.show (); retard (10); if (secondval == 59 && minuteval == 59) {for (uint8_t i = stripM.numPixels (); i> 0; i--) {stripM.setPixelColor (i, r, 0, 0); stripM.show (); retard (16);}}

stripH.setPixelColor (hora, r, 0, 0);

stripH.show (); retard (10); if (secondval == 59 && minuteval == 59 && hourval == 11) {for (uint8_t i = stripH.numPixels (); i> 0; i--) {stripH.setPixelColor (i, 0, 0, b); stripH.show (); delay (83);}} // per a la depuració en sèrie Serial.print (hourval, DEC); Serial.print (':'); Serial.print (minuteval, DEC); Serial.print (':'); Serial.println (secondval, DEC); }

// Ompliu els punts un darrere l’altre d’un color

void colorWipeS (uint32_t c, uint8_t wait) {for (uint16_t i = 0; i <stripS.numPixels (); i ++) {stripS.setPixelColor (i, c); stripS.show (); retard (esperar); }}

void colorWipeM (uint32_t c, uint8_t espera) {

per a (uint16_t i = 0; i <stripM.numPixels (); i ++) {stripM.setPixelColor (i, c); stripM.show (); retard (esperar); }}

void colorWipeH (uint32_t c, uint8_t espera) {

per a (uint16_t i = 0; i <stripH.numPixels (); i ++) {stripH.setPixelColor (i, c); stripH.show (); retard (esperar); }}

Pas 5: tocs finals

Image
Image
Tocs finals
Tocs finals

Ara només s’hauria de fixar el controlador RTC i el microcontrolador al recés.

He instal·lat la bateria RTC cap amunt per poder canviar-la fàcilment si cal.

Connecteu els cables de 5v al costat + del connector i la terra al costat -

Enceneu-lo!

Tinc el meu connectat a un banc de bateries USB, però un carregador de telèfon USB funcionaria igual de bé.

Nota:

La brillantor dels LED s’estableix al codi. S'ha definit com a mínim per mantenir el sorteig actual baix. Amb una lluminositat completa, amb tots els LEDs encesos, podria treure gairebé 8 amperes. Amb la configuració actual és inferior a 1.

Concurs de rellotges
Concurs de rellotges
Concurs de rellotges
Concurs de rellotges

Accèssit al concurs de rellotges

Recomanat: