Innholdsfortegnelse:
- Trinn 1: Samle rekvisita og verktøy
- Trinn 2: Merking, boring og ruting
- Trinn 3: Så mye soldering, kutting og stripping
- Trinn 4: Installere
- Trinn 5: Siste berøringer
Video: 132 Pixel Clock: 5 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Jeg har så lenge jeg kan huske vært besatt av lysdioder og tid. I dette prosjektet har jeg laget en stor veggklokke som viser gjeldende tid ved hjelp av 132 neopiksel -lysdioder montert og skinner gjennom et granbrett. Det er en hybrid analog digital med en individuell piksel for hver time, minutt og sekund.
Dette var det største prosjektet jeg har påtatt meg til nå, jeg begynte å tenke på det for 6 måneder siden, og ideen kom sakte sammen. Jeg er veldig fornøyd med resultatet, og jeg gleder meg til å dele det med deg.
Trinn 1: Samle rekvisita og verktøy
Komponenter
Dette prosjektet er bygget på et cheep hobbybrett fra min lokale byggemarked. Tavlen måler 850 mm bred og 500 mm høy og 18 mm dyp.
Lysdiodene som brukes i dette prosjektet er 5050 WS2812b montert på sirkulære PCB -er som er omtrent 9 mm i diameter med loddeputer på baksiden.
Jeg bruker en Arduino Pro Mini -kompatibel mikrokontroller. Det er 5V 16 MHZ -versjonen. Jeg valgte denne siden den har en superslank design, liten fotavtrykk og alle nødvendige porter pluss noen ekstra for fremtidige oppgraderinger. Den er også 5 volt, så jeg kan bruke en enkelt strømforsyning til lysdiodene, mikrokontrolleren og RTC
Tidsoppbevaringen blir ivaretatt av en RTC -modul (Real Time Clock) som har DS3231 -brikken. Denne brikken er veldig nøyaktig, så tiden bør ikke drive for mye.
Også brukt:
Metalltråd. Lodding og varmt lim.
Verktøy:
Bore- og trebor (10 mm og 5 mm)
Loddejern
Varm limpistol
trådklipp
Dremel og stupfres tilbehør
Trinn 2: Merking, boring og ruting
Boring
- Finn midten av brettet ved å bruke en sundkant ved å tegne en linje fra motsatte hjørner.
- Merk 3 sirkler med en snor og en penn. Den ytre mest sirkelen skal være omtrent 20 mm fra kanten av brettet med de to andre linjene som beveger seg 15 mm fra den siste linjen.
- Jeg brukte et trykt urskive for å hjelpe meg med å markere posisjonene til hvert av minuttene og sekundene på de ytre 2 linjene og timene på den indre linjen.
- Bor 10 mm hull på omtrent 5 mm dyp for hver time, minutt og sekund.
- Bruk 5 mm boret til å lage hull gjennom brettet i time, minutt og sekund.
Ruting
Selv om dette trinnet ikke er nødvendig, kan klokken monteres i flukt til en vegg.
- Bruke en ruter og sirkelguide til å rute trådkanaler i brettet
- Merk av og legg en fordypning for RTC og mikrokontrolleren å bo i.
- Før en kanal fra de ytre linjene til utsparingen for ledninger
Trinn 3: Så mye soldering, kutting og stripping
Denne neste delen er mye lettere å si enn å gjøre. Mitt råd vil være oppmerksom på å skynde det. prøve å finne et system og komme inn i en rytme.
Hver av lysdiodene trenger 5 volt inn, 5 volt ut, data inn, data ut, jording inn og jording ut. inkludert strøm til mikrokontrolleren og RTC sine over 400 ledninger, alle strippet og loddet i begge ender.
En klebrig blå substans er veldig nyttig for dette trinnet.
- Jeg begynte med å plassere 2 lysdioder i hullene ved siden av hverandre for å regne ut kabellengden som trengs for å koble til hverandre.
- Ved å bruke det første ledningsstykket som en guide, klipper jeg deretter 60 av hver fargetråd.
- Fjern 2 mm ermer fra endene på hver ledning og tinn dem med loddetinn.
- Lodd en liten klatt loddetinn på hver av LED -putene.
- Lodd ledningene til lysdiodene for å danne to kjeder på 60 i minuttene og sekundene og en kjede på 12 i timene. Jeg brukte rød ledning for 5V, gul for data og blå for bakken.
- Pass på å koble hver Data Out (DOUT) til Data In (DIN) på neste LED
- Den siste ledningen i hver kjededose trenger ikke en datatråd.
Når alle kjedene er fullført, er det en god idé å teste dem før du installerer dem. Jeg brukte min Arduino UNO og Adafruit NeoPixel Strand Test for å bekrefte at hver LED fungerte.
Lodd lengre ledninger på hver av kjedene for 5V, Ground og Data in.
På dette tidspunktet bør det være fem 5v -ledninger, tre datakabler koblet til Arduino Pro Mini og 5 jordledninger.
Fjern 5 mm fra endene på 5v -ledningene og lodd dem alle sammen og gjenta for jordledningene.
Etter å ha fullført de tre kjedene loddet en 5V ledning på RAW -pinnen på Arduino Pro Mini og også på VCC -pinnen for RTC. En jordledning til GND på Arduino Pro Mini og RTC og deretter to ledninger til:
SCL fra RTC til A5 på Pro Mini
SDA fra RTC til A4 på Pro Mini
Datalinjene fra lysdiodene bør koble til:
- Sekunder - Digital pin 3.
- Minutter - DigitalPin 4
- Timer - DigitalPin 5
Trinn 4: Installere
Når de er loddet, bør installasjonen av lysdiodene i hullene være rett frem. Lysdiodene må installeres slik at dataene løper rundt mot klokken når du ser på den bakfra når koden er satt opp foran.
Jeg brukte en liten mengde varmt lim for å holde dem nede, ettersom jeg ønsker å kunne bytte ut en enkelt LED hvis den feiler i fremtiden.
Jeg brukte også varmt lim for å holde alle ledningene rene og ryddige og for å feste fatkontakten til brettet.
Det er en rekke arduino pro mini programmeringsguider tilgjengelig. Jeg bruker den eksterne USB til serieomformer -metoden for å laste denne koden til Arduino:
Denne koden vil også sette tiden på RTC til tidspunktet den ble kompilert. så det er viktig å bare stenge opplastingsknappen slik at den samsvarer og lastes opp så raskt som mulig.
Mye av denne koden ble lånt fra NeoPixel Ring Clock av Andy Doro. Noen fra Adafruit NeoPixel Strand Test og noen jeg satte sammen.
Du må ha installert noen få biblioteker. De er tilgjengelige fra Libraries Manager på Arduino -programvaren.
Adafruit NeoPixel for ws2812b lysdioder
Ledning for å snakke med RTC over I2C (dette er innebygd som standard)
og RTClib for å vite hva du skal spørre RTC
/************************************************* ***************************NeoPixel ringeklokke av Andy Doro ([email protected]) https://andydoro.com/ringclock/ ************************************************* **************************
Endringshistorikk
Dato etter hva
20140320 AFD Første utkast 20160105 AFD Faded buer 20160916 AFD Trinket -kompatibel 20170727 AFD lagt til STARTPIXEL for 3D -kabinett, variabelt utgangspunkt, lagt til automatisk DST -støtte 20180424 AFD ved bruk av DST -bibliotek https://github.com/andydoro/DST_RTC *
/ inkluderer bibliotekskoden:
#include #include
#inkludere
// definere pins
#define SECPIN 3 #define MINPIN 4 #define HOUPIN 5
#define BRIGHTNESS 20 // angi maks lysstyrke
#define r 10
#define g 10 #define b 10 RTC_DS3231 rtc; // Etablere klokkeobjekt
Adafruit_NeoPixel stripS = Adafruit_NeoPixel (60, SECPIN, NEO_GRB + NEO_KHZ800); // strip objekt
Adafruit_NeoPixel stripM = Adafruit_NeoPixel (60, MINPIN, NEO_GRB + NEO_KHZ800); // strip objekt Adafruit_NeoPixel stripH = Adafruit_NeoPixel (24, HOUPIN, NEO_GRB + NEO_KHZ800); // strip objekt byte pixelColorRed, pixelColorGreen, pixelColorBlue; // holder fargeverdier
ugyldig oppsett () {
Wire.begin (); // Start I2C rtc.begin (); // start klokke
Serial.begin (9600);
// sett pinmodes pinMode (SECPIN, OUTPUT); pinMode (MINPIN, OUTPUT); pinMode (HOUPIN, OUTPUT);
if (rtc.lostPower ()) {
Serial.println ("RTC mistet strøm, lar oss angi tiden!"); // følgende linje angir RTC til dato og klokkeslett denne skissen ble kompilert rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Denne linjen angir RTC med en eksplisitt dato og klokkeslett, for eksempel for å angi // 21. januar 2014 klokken 03.00 du vil ringe: // rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0)); }
stripS.begin ();
stripM.begin (); stripH.begin (); //strip.show (); // Initialiser alle piksler til "av"
// oppstartssekvens
forsinkelse (500);
colorWipeS (stripS. Color (0, g, 0), 5); // Blå colorWipeM (stripM. Color (r, 0, 0), 5); // Blå colorWipeH (stripH. Color (0, 0, b), 50); // Blå
forsinkelse (1000);
DateTime theTime = rtc.now (); // tar hensyn til DST byte secondval = theTime.second (); // få sekunder byte minuteval = theTime.minute (); // få minutter int hourval = theTime.hour (); timeval = timeval % 12; // Denne klokken er 12 timer, hvis 13-23, konverter til 0-11 '
for (uint16_t i = 0; i <secondval; i ++) {stripS.setPixelColor (i, 0, 0, b); stripS.show (); forsinkelse (5); }
for (uint16_t i = 0; i <minuteval; i ++) {stripM.setPixelColor (i, 0, g, 0); stripM.show (); forsinkelse (5); }
for (uint16_t i = 0; i <hourval; i ++) {stripH.setPixelColor (i, r, 0, 0); stripH.show (); forsinkelse (5); }
}
void loop () {
// få tid
DateTime theTime = rtc.now (); // tar hensyn til sommertid
byte secondval = theTime.second (); // få sekunder
byte minuteval = theTime.minute (); // få minutter int hourval = theTime.hour (); // få timer hourval = hourval % 12; // Denne klokken er 12 timer, hvis 13-23, konverter til 0-11 '
stripS.setPixelColor (andreverdi, 0, 0, 20); stripS.show (); forsinkelse (10); if (secondval == 59) {for (uint8_t i = stripS.numPixels (); i> 0; i--) {stripS.setPixelColor (i, 0, g, 0); stripS.show (); forsinkelse (16);}}
stripM.setPixelColor (minuteval, 0, g, 0);
stripM.show (); forsinkelse (10); if (secondval == 59 && minuteval == 59) {for (uint8_t i = stripM.numPixels (); i> 0; i--) {stripM.setPixelColor (i, r, 0, 0); stripM.show (); forsinkelse (16);}}
stripH.setPixelColor (timeval, r, 0, 0);
stripH.show (); forsinkelse (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 (); forsinkelse (83);}} // for seriell feilsøking Serial.print (hourval, DEC); Serial.print (':'); Serial.print (minuteval, DEC); Serial.print (':'); Serial.println (secondval, DEC); }
// Fyll prikkene etter hverandre med en farge
void colorWipeS (uint32_t c, uint8_t wait) {for (uint16_t i = 0; i <stripS.numPixels (); i ++) {stripS.setPixelColor (i, c); stripS.show (); forsinkelse (vent); }}
void colorWipeM (uint32_t c, uint8_t wait) {
for (uint16_t i = 0; i <stripM.numPixels (); i ++) {stripM.setPixelColor (i, c); stripM.show (); forsinkelse (vent); }}
void colorWipeH (uint32_t c, uint8_t wait) {
for (uint16_t i = 0; i <stripH.numPixels (); i ++) {stripH.setPixelColor (i, c); stripH.show (); forsinkelse (vent); }}
Trinn 5: Siste berøringer
Alt som skal være igjen nå er å fikse RTC og mikrokontrolleren ned i fordypningen.
Jeg har montert RTC -batterisiden opp slik at jeg enkelt kan bytte batteri om nødvendig.
Koble 5v -ledningene til + siden av kontakten og bakken til siden
Slå på den!
Jeg har min koblet til en USB -batteribank, men en USB -telefonlader ville fungere like bra.
Merk:
Lysstyrken til lysdiodene er angitt i koden. Det er satt lavt for å holde gjeldende trekning lav. Ved full lysstyrke med alle lysdiodene tent kunne den trekke nesten 8 ampere. Med det nåværende oppsettet er det mindre enn 1.
Andreplass i klokkekonkurransen
Anbefalt:
LED Matrix Alarm Clock (med MP3 -spiller): 6 trinn (med bilder)
LED Matrix Alarm Clock (med MP3 -spiller): Denne Arduino -baserte vekkerklokken har alt du kan forvente av alarmen din - muligheten til å vekke deg med hver sang du liker, slumre -knappen og er enkel å kontrollere via tre knapper. Det er tre hovedblokker - LED -matrise, RTC -modul og
Vertikal Bartop -arkade med integrert PIXEL LED -skjerm: 11 trinn (med bilder)
Vertikal Bartop -arkade med integrert PIXEL LED -skjerm: **** Oppdatert med ny programvare juli 2019, detaljer her ****** En bartop -arkade med den unike funksjonen som LED -matrisemarkedet endres for å matche det valgte spillet. Karakterkunsten på skapets sider er laserskåret innlegg og ikke stikk
DIY Smart Scale With Alarm Clock (med Wi-Fi, ESP8266, Arduino IDE og Adafruit.io): 10 trinn (med bilder)
DIY Smart Scale With Alarm Clock (med Wi-Fi, ESP8266, Arduino IDE og Adafruit.io): I mitt forrige prosjekt utviklet jeg en smart badevekt med Wi-Fi. Den kan måle brukerens vekt, vise den lokalt og sende den til nettskyen. Du kan få mer informasjon om dette på lenken nedenfor: https: //www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Rainbow Word Clock med full Rainbow -effekt og mer: 13 trinn (med bilder)
Rainbow Word Clock Med Full Rainbow Effect og mer: Mål1) Enkel2) Ikke dyrt3) Så energieffektiv som mulig Rainbow Word Clock med full regnbueeffekt. En Smilefjes på Word Clock. Enkel IR-fjernkontroll Oppdater 03-nov-18 LDR for Brightness Control of the NeopixelsUpdate 01-jan
LED Pixel Art Frame med Retro Arcade Art, appstyrt: 7 trinn (med bilder)
LED Pixel Art Frame med Retro Arcade Art, App Controlled: LAG EN APP -KONTROLLERT LED ART -FRAME MED 1024 LEDS DET VISER RETRO 80 -tallet ARCADE GAME ART PartsPIXEL Makers Kit - $ 59Adafruit 32x32 P4 LED Matrix - $ 49.9512x20 tommers akrylark, 1/8 " tomme tykk - Gjennomsiktig lett røyk fra Tap Plastics