Indholdsfortegnelse:
- Trin 1: Indsamling af forbrugsvarer og værktøjer
- Trin 2: Markering, boring og routing
- Trin 3: Så meget soldatering, opskæring og stripping
- Trin 4: Installation
- Trin 5: Sidste hånd
Video: 132 pixelur: 5 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Jeg har, så længe jeg kan huske været besat af lysdioder og tid. I dette projekt har jeg skabt et stort vægur, der viser den aktuelle tid ved hjælp af 132 neopixel LED'er monteret og skinner gennem et granbræt. Det er en hybrid analog digital med en individuel pixel for hver time, minut og sekund.
Dette var det største projekt, jeg har taget på til dato, jeg begyndte at tænke på det for 6 måneder siden, og ideen kom langsomt sammen. Jeg er virkelig glad for resultatet, og jeg glæder mig til at dele det med jer.
Trin 1: Indsamling af forbrugsvarer og værktøjer
Komponenter
Dette projekt er bygget på et billigt hobbybræt fra min lokale byggemarked. Pladen måler 850 mm bred med 500 mm høj og 18 mm dyb.
Lysdioderne, der bruges i dette projekt, er 5050 WS2812b monteret på cirkulære printkort, der er cirka 9 mm i diameter med loddepuder på bagsiden.
Jeg bruger en Arduino Pro Mini -kompatibel mikrocontroller. Det er 5V 16 MHZ versionen. Jeg valgte denne, da den har et superslank design, lille fodprint og alle de nødvendige porte plus nogle ekstra til fremtidige opgraderinger. Det er også 5 volt, så jeg kan bruge en enkelt strømforsyning til lysdioderne, mikrokontrolleren og RTC
Tidsopbevaringen varetages af et RTC -modul (Real Time Clock), der har DS3231 -chippen. Denne chip er meget præcis, så tiden bør ikke glide for meget.
Også brugt:
Tråd. Loddemiddel og varm lim.
Værktøjer:
El -boremaskine og træbor (10 mm og 5 mm)
Loddekolbe
Varm limpistol
trådklip
Dremel og dyk router tilbehør
Trin 2: Markering, boring og routing
Boring
- Find midten af brættet ved hjælp af en strædekant ved at tegne en linje fra modsatte hjørner.
- Marker 3 cirkler med et stykke snor og en pen. Den yderste cirkel skal være cirka 20 mm fra kanten af brættet med de to andre linjer, der bevæger sig 15 mm fra den sidste linje.
- Jeg brugte et trykt urskive til at hjælpe mig med at markere positionerne for hvert minut og sekund på de ydre 2 linjer og timer på den indre linje.
- Bor 10 mm huller cirka 5 mm dybe for hver time, minut og sekund.
- Brug 5 mm boret til at lave huller på tavlen i time, minut og sekund.
Routing
Selvom dette trin ikke er nødvendigt, vil det muliggøre montering af uret i en væg.
- Brug en router og en cirkelguide til at føre trådkanaler i kortet
- Markér og læg en fordybning for RTC og Micro Controller at bo i.
- Før en kanal fra de ydre linjer til fordybningen for ledninger
Trin 3: Så meget soldatering, opskæring og stripping
Denne næste del er meget lettere at sige end at gøre. Mit råd ville være notat at skynde det. prøv at finde et system og kom ind i en rytme.
Hver af LED'erne har brug for 5 volt ind, 5 volt ud, data ind, data ud, jord ind og jord ud. inklusive strøm til mikrokontrolleren og RTC dens over 400 ledninger, alle fjernet og loddet i begge ender.
En klæbrig blå substans er meget nyttig til dette trin.
- Jeg startede med at placere 2 lysdioder i deres huller ved siden af hinanden for at regne ud den længde af ledning, der er nødvendig for at forbinde til hinanden.
- Ved hjælp af det første stykke tråd som en vejledning skar jeg derefter 60 af hver farvetråd.
- Fjern 2 mm sleeving fra enderne af hver tråd og hæld dem med loddetin.
- Lod en lille klat lodde på hver af LED -pads.
- Lod lodningerne til LED'erne for at danne to kæder på 60 i minutter og sekunder og en kæde på 12 i timerne. Jeg brugte rød ledning til 5V, gul til data og blå til jorden.
- Sørg for at tilslutte hver Data Out (DOUT) til Data In (DIN) på den næste LED
- Den sidste led i hver kædedosis behøver ikke en datatråd.
Når alle kæderne er færdige, er det en god idé at teste dem, før de installeres. Jeg brugte min Arduino UNO og Adafruit NeoPixel Strand Test til at bekræfte, at hver LED fungerede.
Lodde længere ledninger på hver af kæderne til 5V, jord og data ind.
På dette tidspunkt bør der være fem 5v -ledninger, tre datatråde tilsluttet Arduino Pro Mini og 5 jordledninger.
Fjern 5 mm fra enderne af 5v -ledningerne, og lod dem alle sammen, og gentag for jordledningerne.
Efter at have afsluttet de tre kæder loddes en 5V ledning til RAW pin på Arduino Pro Mini og også på VCC pin til RTC. En jordledning til GND på Arduino Pro Mini og RTC og derefter yderligere 2 ledninger:
SCL fra RTC til A5 på Pro Mini
SDA fra RTC til A4 på Pro Mini
Datalinjerne fra lysdioderne skal oprette forbindelse til:
- Sekunder - Digital pin 3.
- Minutter - DigitalPin 4
- Timer - DigitalPin 5
Trin 4: Installation
Når de er loddet, skal installationen af lysdioderne i deres huller være lige frem. Lysdioderne skal installeres, så dataene kører rundt mod uret, når man ser på det bagfra, da koden er opsat på forsiden.
Jeg brugte en lille smule varm lim til at holde dem nede, da jeg gerne vil kunne udskifte en enkelt LED, hvis den fejler i fremtiden.
Jeg brugte også varm lim til at holde alle ledninger pæne og ryddelige og til at fastgøre tøndeforbindelsen til brættet.
Der findes en række arduino pro mini programmeringsguider. Jeg bruger den eksterne USB til seriel konverteringsmetode til at indlæse denne kode på Arduino:
Denne kode vil også indstille tiden på RTC til det tidspunkt, den blev kompileret. så det er vigtigt bare at lukke upload -knappen, så den overholder og uploades så hurtigt som muligt.
Meget af denne kode blev lånt fra NeoPixel Ring Clock af Andy Doro. Nogle fra Adafruit NeoPixel Strand Test og nogle satte jeg sammen.
Du skal have installeret et par biblioteker. De er tilgængelige fra Libraries Manager på Arduino -softwaren.
Adafruit NeoPixel til ws2812b LED'erne
Tråd til at tale med RTC over I2C (dette er indbygget som standard)
og RTClib for at vide, hvad de skal spørge RTC
/************************************************* ***************************NeoPixel Ringur af Andy Doro ([email protected]) https://andydoro.com/ringclock/ ************************************************* ***************************
Revisionshistorik
Dato efter hvad
20140320 AFD Første udkast 20160105 AFD Faded buer 20160916 AFD Trinket -kompatibel 20170727 AFD tilføjet STARTPIXEL til 3D -kabinet, variabelt udgangspunkt, tilføjet automatisk DST -understøttelse 20180424 AFD ved hjælp af DST -bibliotek https://github.com/andydoro/DST_RTC *
/ inkludere bibliotekskoden:
#include #include
#omfatte
// definer pins
#define SECPIN 3 #define MINPIN 4 #define HOUPIN 5
#define BRIGHTNESS 20 // indstil maksimal lysstyrke
#define r 10
#define g 10 #define b 10 RTC_DS3231 rtc; // Etabler urobjekt
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 farveværdier
ugyldig opsætning () {
Wire.begin (); // Start I2C rtc.begin (); // startur
Serial.begin (9600);
// sæt pinmodes pinMode (SECPIN, OUTPUT); pinMode (MINPIN, OUTPUT); pinMode (HOUPIN, OUTPUT);
hvis (rtc.lostPower ()) {
Serial.println ("RTC mistede strøm, lad os indstille tiden!"); // følgende linje indstiller RTC til dato og klokkeslæt, hvor denne skitse blev udarbejdet rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Denne linje indstiller RTC med en eksplicit dato og tid, f.eks. Til at indstille // 21. januar 2014 kl. 03.00, du vil kalde: // rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0)); }
stripS.begin ();
stripM.begin (); stripH.begin (); //strip.show (); // Initialiser alle pixels til 'off'
// startsekvens
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 (); // tager hensyn til DST byte secondval = theTime.second (); // få sekunder byte minuteval = theTime.minute (); // få minutter int hourval = theTime.hour (); timeval = timeval % 12; // Dette ur 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 (); // tager hensyn til sommertid
byte secondval = theTime.second (); // få sekunder
byte minuteval = theTime.minute (); // få minutter int hourval = theTime.hour (); // få timer hourval = hourval % 12; // Dette ur er 12 timer, hvis 13-23, konverter til 0-11 '
stripS.setPixelColor (anden værdi, 0, 0, 20); stripS.show (); forsinkelse (10); hvis (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); hvis (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 seriel fejlfinding Serial.print (hourval, DEC); Serial.print (':'); Serial.print (minuteval, DEC); Serial.print (':'); Serial.println (secondval, DEC); }
// Fyld prikkerne efter hinanden med en farve
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); }}
Trin 5: Sidste hånd
Det eneste, der skal være tilbage nu, er at reparere RTC og Micro Controller nede i fordybningen.
Jeg har monteret RTC batterisiden opad, så jeg nemt kan skifte batteri, hvis det er nødvendigt.
Tilslut 5v -ledningerne til + siden af stikket og jorden til siden -
Tænd for det!
Jeg har min tilsluttet en USB -batteribank, men en USB -telefonoplader ville fungere lige så godt.
Bemærk:
Lysdiodernes lysstyrke er indstillet i koden. Det er blevet sat lavt for at holde den nuværende træk lav. Ved fuld lysstyrke med alle lysdioder tændt kunne den trække næsten 8 ampere. Med den nuværende opsætning er den mindre end 1.
Nummer to i urkonkurrencen
Anbefalede:
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: 7 trin (med billeder)
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: Jeg planlægger at bruge denne Rapsberry PI i en masse sjove projekter tilbage i min blog. Tjek det gerne ud. Jeg ville tilbage til at bruge min Raspberry PI, men jeg havde ikke et tastatur eller en mus på min nye placering. Det var et stykke tid siden jeg konfigurerede en hindbær
Arduino Halloween Edition - Pop -out -skærm med zombier (trin med billeder): 6 trin
Arduino Halloween Edition - Zombies Pop -out -skærm (trin med billeder): Vil du skræmme dine venner og lave skrigende støj i Halloween? Eller vil du bare lave en god sjov? Denne pop-out-skærm fra Zombies kan gøre det! I denne Instructable vil jeg lære dig, hvordan du nemt laver jump-out zombier ved hjælp af Arduino. HC-SR0
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
Ciclop 3d Scanner My Way Trin for trin: 16 trin (med billeder)
Ciclop 3d Scanner My Way Step by Step: Hej alle sammen, jeg kommer til at indse den berømte Ciclop 3D -scanner.Alle trin, der er godt forklaret på det originale projekt, er ikke til stede.Jeg lavede nogle rettelser for at forenkle processen, først Jeg udskriver basen, og end jeg genstarter printkortet, men fortsæt
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: 7 trin (med billeder)
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: Selv efter 25 års introduktion til forbrugermarkedet er infrarød kommunikation stadig meget relevant i de seneste dage. Uanset om det er dit 55 tommer 4K -fjernsyn eller dit billydsystem, har alt brug for en IR -fjernbetjening for at reagere på vores