Sadržaj:
- Korak 1: Prikupljanje potrepština i alata
- Korak 2: Označavanje, bušenje i usmjeravanje
- Korak 3: Toliko lemljenja, rezanja i skidanja
- Korak 4: Instaliranje
- Korak 5: Završni dodiri
Video: Sat od 132 piksela: 5 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
Ja sam, koliko se sjećam, bio opsjednut LED diodama i vremenom. U ovom projektu stvorio sam veliki zidni sat koji prikazuje trenutno vrijeme koristeći 132 neopikselne LED diode montirane i sijajući kroz smrekovu ploču. Hibridni analogni digitalni digitalni piksel s pojedinačnim pikselom za svaki sat, minutu i sekundu.
Ovo je bio najveći projekt koji sam do sada preuzeo, počeo sam razmišljati o tome prije 6 mjeseci i ideja se polako spojila. Zaista sam zadovoljan ishodom i radujem se što ću ga podijeliti s vama.
Korak 1: Prikupljanje potrepština i alata
Komponente
Ovaj je projekt izgrađen na jeftinoj hobi ploči iz moje lokalne DIY trgovine. Ploča ima širinu 850 mm, visinu 500 mm i dubinu 18 mm.
LED diode korištene u ovom projektu su 5050 WS2812b montirane na kružne tiskane ploče promjera približno 9 mm sa lemnim jastučićima na stražnjoj strani.
Koristim mikrokontroler kompatibilan s Arduino Pro Mini. Verzija je 5V 16 MHZ. Odabrao sam ovu jer ima super tanak dizajn, mali otisak stopala i sve potrebne priključke plus nešto rezervnih za buduće nadogradnje. Također ima 5 volti pa mogu koristiti jedno napajanje za LED diode, mikro kontroler i RTC
O mjerenju vremena brine se modul RTC (Sat u stvarnom vremenu) koji ima čip DS3231. Ovaj čip je vrlo precizan pa vrijeme ne bi smjelo previše lutati.
Također se koristi:
Žica. Lemljenje i vruće ljepilo.
Alati:
Električna bušilica i svrdla za drvo (10 mm i 5 mm)
Lemilica
Pištolj za vruće ljepilo
žice
Dremel pribor za usmjerivač
Korak 2: Označavanje, bušenje i usmjeravanje
Bušenje
- Pomoću uskog ruba pronađite središte ploče povlačenjem crte iz suprotnih kutova.
- Označite 3 kruga uzicom i olovkom. Najviše vanjski krug trebao bi biti udaljen oko 20 mm od ruba ploče, a ostale 2 linije pomaknute se 15 mm od posljednje linije.
- Koristio sam ispisani brojčanik sata kako bih lakše označio položaje svake minute i sekunde na vanjskim 2 reda i sata na unutarnjoj liniji.
- Izbušite rupe od 10 mm dubine približno 5 mm za svaki sat, minutu i sekundu.
- Bušilicom od 5 mm napravite rupe na ploči sat, minutu i sekundu.
Usmjeravanje
Iako ovaj korak nije nužan, omogućit će da se sat ugradio u ravninu sa zidom.
- Korištenje usmjerivača i kružnih vodiča usmjerite žičane kanale na ploči
- Označite i usmjerite udubljenje za stanovanje RTC -a i mikrokontrolera.
- Provucite kanal od vanjskih vodova do udubljenja za žice
Korak 3: Toliko lemljenja, rezanja i skidanja
Ovaj sljedeći dio mnogo je lakše reći nego učiniti. Moj savjet bi bio napomena da požurite. pokušajte pronaći sustav i uđite u ritam.
Svaka LED dioda treba 5 volti, 5 volti napona, ulaz podataka, izlaz podataka, uzemljenje i uzemljenje. uključujući napajanje za mikro kontroler i RTC njegovih preko 400 žica, sve skinute i lemljene na oba kraja.
Ljepljiva plava tvar vrlo je korisna za ovaj korak.
- Počeo sam postavljanjem 2 LED diode u njihove rupice jedna do druge kako bismo odredili duljinu žice potrebne za međusobno povezivanje.
- Koristeći prvi komad žice kao vodič, zatim sam izrezao 60 žica svake boje.
- S krajeva svake žice skinite 2 mm omotača i zalijepite ih lemljenjem.
- Lepite malu mrlju lema na svaki od LED jastučića.
- Lemite žice na LED diode kako biste formirali dva lanca od 60 za minute i sekunde i jedan lanac od 12 za sate. Koristio sam crvenu žicu za 5V, žutu za podatke i plavu za uzemljenje.
- Pripazite da svaki Data Out (DOUT) spojite na Data In (DIN) sljedeće LED diode
- Posljednji dio u svakoj dozi lanca ne treba žicu za prijenos podataka.
Nakon što su svi lanci dovršeni, dobro ih je testirati prije instaliranja. Koristio sam svoj Arduino UNO i Adafruit NeoPixel Strand Test kako bih potvrdio da svaka LED radi.
Lemite duže žice na svaki od lanaca za 5V, uzemljenje i podatke.
U ovom trenutku trebalo bi biti pet žica od 5 volti, tri podatkovne žice spojene na Arduino Pro Mini i 5 žica za uzemljenje.
Skinite 5 mm s krajeva 5 -voltnih žica i sve ih zalemite i ponovite za uzemljene žice.
Nakon što dovršite tri lanca, lemite žicu od 5 V na RAW pin Arduino Pro Mini, a također i na VCC pin za RTC. Žica za uzemljenje na GND na Arduino Pro Mini i RTC, a zatim još 2 žice:
SCL od RTC do A5 na Pro Mini
SDA od RTC -a do A4 na Pro Miniju
Podatkovni vodiči s LED dioda trebali bi se spojiti na:
- Sekunde - digitalni pin 3.
- Minute - DigitalPin 4
- Sati - DigitalPin 5
Korak 4: Instaliranje
Nakon lemljenja, postavljanje LED dioda u njihove rupe treba biti ravno naprijed. LED diode je potrebno instalirati tako da se podaci kreću u smjeru suprotnom od kazaljke na satu kada ih gledate sa stražnje strane jer je kod postavljen prema naprijed.
Koristio sam malu količinu vrućeg ljepila da ih držim pritisnute jer želim zamijeniti jednu LED diodu ako u budućnosti ne uspije.
Također sam koristio vruće ljepilo da sve žice budu čiste i uredne te da pričvrstim priključak cijevi na ploču.
Dostupni su brojni vodiči za programiranje arduino pro mini. Za učitavanje ovog koda na Arduino koristim metodu vanjskog USB -serijskog pretvarača:
Ovaj će kôd također postaviti vrijeme na RTC -u na vrijeme njegovog sastavljanja. pa je važno samo zaustaviti gumb za prijenos kako bi bio usklađen i učitao se što je brže moguće.
Veći dio ovog koda posudio je Andy Doro iz NeoPixel Ring Clock -a. Neke od Adafruit NeoPixel Strand testa, a neke sam sastavio.
Morat ćete imati instalirano nekoliko knjižnica. Dostupne su u upravitelju knjižnica u softveru Arduino.
Adafruit NeoPixel za LED diode ws2812b
Žica za razgovor s RTC -om preko I2C (ovo je standardno ugrađeno)
i RTClib jer zna što pitati RTC
/*********************************************** ***************************NeoPixel Ring Ring Andy Doro ([email protected]) https://andydoro.com/ringclock/ ************************************************ **************************
Povijest revizija
Datum po čemu
20140320 AFD Prvi nacrt 20160105 AFD Izblijedjeli lukovi 20160916 AFD Trinket kompatibilan 20170727 AFD dodan STARTPIXEL za 3D kućište, promjenjiva početna točka, dodana automatska podrška za DST 20180424 AFD pomoću DST knjižnice https://github.com/andydoro/DST_RTC *
/ uključi šifru knjižnice:
#include #include
#uključi
// definiramo pinove
#define SECPIN 3 #define MINPIN 4 #define HOUPIN 5
#define BRIGHTNESS 20 // postavite maksimalnu svjetlinu
#definirajte r 10
#define g 10 #define b 10 RTC_DS3231 rtc; // Uspostavljanje objekta sata
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); // bajt objekta objekta strip pixelColorRed, pixelColorGreen, pixelColorBlue; // sadrži vrijednosti boje
void setup () {
Wire.begin (); // Početak I2C rtc.begin (); // početak sata
Serial.begin (9600);
// postavlja pinmodes pinMode (SECPIN, OUTPUT); pinMode (MINPIN, OUTPUT); pinMode (HOUPIN, OUTPUT);
if (rtc.lostPower ()) {
Serial.println ("RTC je izgubio napajanje, dopustite da postavite vrijeme!"); // sljedeći redak postavlja RTC na datum i vrijeme sastavljanja ove skice rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Ovaj redak postavlja RTC s eksplicitnim datumom i vremenom, na primjer za postavljanje // 21. siječnja 2014. u 3 ujutro koje biste nazvali: // rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0)); }
stripS.begin ();
stripM.begin (); stripH.begin (); //strip.show (); // Pokretanje svih piksela na "isključeno"
// redoslijed pokretanja
kašnjenje (500);
colorWipeS (stripS. Color (0, g, 0), 5); // Plava bojaWipeM (stripM. Color (r, 0, 0), 5); // Plava bojaWipeH (stripH. Color (0, 0, b), 50); // Plava
kašnjenje (1000);
DateTime theTime = rtc.now (); // uzima u obzir DST bajt secondval = theTime.second (); // dobivamo sekundni bajt minuteval = theTime.minute (); // dobivamo minute int hourval = theTime.hour (); hourval = hourval % 12; // Ovaj sat je 12 sati, ako je 13-23, pretvorite u 0-11`
za (uint16_t i = 0; i <secondval; i ++) {stripS.setPixelColor (i, 0, 0, b); stripS.show (); kašnjenje (5); }
za (uint16_t i = 0; i <minuteval; i ++) {stripM.setPixelColor (i, 0, g, 0); stripM.show (); kašnjenje (5); }
za (uint16_t i = 0; i <hourval; i ++) {stripH.setPixelColor (i, r, 0, 0); stripH.show (); kašnjenje (5); }
}
void loop () {{100} {101}
// dobiti vrijeme
DateTime theTime = rtc.now (); // uzima u obzir ljetno računanje vremena
byte secondval = theTime.second (); // dobiti sekunde
byte minuteval = theTime.minute (); // dobijemo minute int hourval = theTime.hour (); // dobiti sate hourval = hourval % 12; // Ovaj sat je 12 sati, ako je 13-23, pretvorite u 0-11`
stripS.setPixelColor (secondval, 0, 0, 20); stripS.show (); kašnjenje (10); if (secondval == 59) {for (uint8_t i = stripS.numPixels (); i> 0; i--) {stripS.setPixelColor (i, 0, g, 0); stripS.show (); odgoda (16);}}
stripM.setPixelColor (minute, 0, g, 0);
stripM.show (); kašnjenje (10); if (secondval == 59 && minuteval == 59) {for (uint8_t i = stripM.numPixels (); i> 0; i--) {stripM.setPixelColor (i, r, 0, 0); stripM.show (); odgoda (16);}}
stripH.setPixelColor (sat, r, 0, 0);
stripH.show (); kašnjenje (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);}} // za serijsko otklanjanje pogrešaka Serial.print (hourval, DEC); Serial.print (':'); Serijski ispis (minuteval, DEC); Serial.print (':'); Serial.println (secondval, DEC); }
// Ispunite točkice jednu za drugom bojom
void colorWipeS (uint32_t c, uint8_t wait) {for (uint16_t i = 0; i <stripS.numPixels (); i ++) {stripS.setPixelColor (i, c); stripS.show (); odgoda (čekanje); }}
void colorWipeM (uint32_t c, uint8_t čekanje) {
za (uint16_t i = 0; i <stripM.numPixels (); i ++) {stripM.setPixelColor (i, c); stripM.show (); odgoda (čekanje); }}
void colorWipeH (uint32_t c, uint8_t čekanje) {
za (uint16_t i = 0; i <stripH.numPixels (); i ++) {stripH.setPixelColor (i, c); stripH.show (); odgoda (čekanje); }}
Korak 5: Završni dodiri
Sve što sada treba ostati je popraviti RTC i mikro kontroler dolje u udubljenju.
RTC bateriju sam okrenuo prema gore tako da prema potrebi mogu lako promijeniti bateriju.
Spojite žice 5V na + stranu konektora, a uzemljenje na - stranu
Uključite ga!
Ja sam svoj spojio na USB bateriju, ali bi i USB punjač za telefon radio jednako dobro.
Bilješka:
Svjetlina LED dioda postavljena je u kodu. Postavljeno je nisko kako bi se trenutna razina održala niskom. Pri punoj svjetlini sa svim LED diodama mogao bi izvući gotovo 8 ampera. S trenutnim postavkama manje je od 1.
Drugoplasirani na natjecanju satova
Preporučeni:
FLEXBALL - fleksibilna PCB kugla od sto piksela s WiFi -em: 6 koraka (sa slikama)
FLEXBALL - fleksibilna kugla od sto piksela sa fleksibilnom pločom sa WiFi -jem: Pozdrav proizvođači, to je proizvođač moekoe! Flexball se temelji na fleksibilnoj PCB -u koja je opremljena sa 100 WS2812 2020 adresabilnih LED dioda. Njime upravlja ESP8285-01f - najmanji Espressifov modul temeljen na ESP -u. Dodatno ima ADXL345 akcelerometar
Minecraft rudna svjetiljka - prilagodljiva veličina i gustoća piksela: 4 koraka
Minecraft rudna svjetiljka-prilagodljiva veličina i gustoća piksela: Moje sedmogodišnje dijete opsjednuto je Minecraftom, pa sam odlučila izgraditi nešto vezano za njega. U potrazi za mogućnostima, postoji sjajan projekt svjetiljke od Dan J Hamera u Thingiverseu, ali nakon što sam ga malo dotjerao, odlučio sam pokrenuti vlastiti projekt (vi
Postavljanje ERGO piksela: 5 koraka
Postavljanje piksela ERGO: Ovaj postupak će vam pokazati kako instalirati vaš ERGO
64 piksela: 8 koraka (sa slikama)
64 piksela: Ovo je mali uređaj za prikaz animacija i kratkih poruka. Sastoji se samo od tri komponente i vrlo je jednostavan za izgradnju. I zabavno za gledati. Ako vam se ne da da sami skupljate sve stvari, možete kupiti komplet sa svim potrebnim dijelovima i p
RGB LED zaslon od 64 piksela - još jedan Arduino klon: 12 koraka (sa slikama)
RGB LED zaslon od 64 piksela - još jedan Arduino klon: Ovaj se zaslon temelji na 8x8 RGB LED matrici. Za potrebe testiranja, spojen je na standardnu Arduino ploču (Diecimila) pomoću 4 registra pomaka. Nakon što sam ga pokrenuo, izradio sam ga na lakiranoj PCB -u. Registri pomaka široki su 8 bita i