Satura rādītājs:
- 1. darbība: piederumu un rīku savākšana
- 2. solis: marķēšana, urbšana un maršrutēšana
- 3. solis: tik daudz karavīru, griešanas un noņemšanas
- 4. solis: instalēšana
- 5. solis: pēdējie pieskārieni
Video: 132 pikseļu pulkstenis: 5 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Es, cik vien atceros, esmu aizrāvies ar gaismas diodēm un laiku. Šajā projektā esmu izveidojis lielu sienas pulksteni, kas parāda pašreizējo laiku, izmantojot 132 neopikseļu gaismas diodes, kas uzstādītas un spīd caur egles dēli. Tas ir hibrīda analogs digitālais cipars ar atsevišķu pikseļu katrai stundai, minūtei un sekundei.
Šis bija līdz šim lielākais projekts, ko esmu uzņēmies, par to sāku domāt pirms 6 mēnešiem, un ideja lēnām radās. Esmu patiesi apmierināts ar iznākumu un ar nepacietību gaidu, kad varu to padalīties ar jums.
1. darbība: piederumu un rīku savākšana
Sastāvdaļas
Šis projekts ir veidots uz mana vietējā DIY veikala vaļasprieku dēļa. Plāksnes platums ir 850 mm, augstums 500 mm un dziļums 18 mm.
Šajā projektā izmantotās gaismas diodes ir 5050 WS2812b, kas uzstādītas uz apļveida PCB, kuru diametrs ir aptuveni 9 mm, un lodēšanas spilventiņi aizmugurē.
Es izmantoju ar Arduino Pro Mini saderīgu mikrokontrolleri. Tā ir 5V 16 MHZ versija. Es izvēlējos šo, jo tam ir īpaši plāns dizains, mazs pēdas nospiedums un visas nepieciešamās pieslēgvietas, kā arī dažas rezerves turpmākiem uzlabojumiem. Tā ir arī 5 volti, lai es varētu izmantot vienu barošanas avotu gaismas diodēm, mikro kontrolierim un RTC
Par laika saglabāšanu rūpējas RTC (reālā laika pulksteņa) modulis ar DS3231 mikroshēmu. Šī mikroshēma ir ļoti precīza, tāpēc laikam nevajadzētu pārvietoties pārāk daudz.
Izmanto arī:
Vads. Lodēšana un karstā līme.
Rīki:
Elektriskie urbji un koka urbji (10 mm un 5 mm)
Lodāmurs
Karstās līmes pistole
stieples fragmenti
Dremel un ienirt maršrutētāja piederumi
2. solis: marķēšana, urbšana un maršrutēšana
Urbšana
- Izmantojot šauruma malu, atrodiet tāfeles centru, uzzīmējot līniju no pretējiem stūriem.
- Atzīmējiet 3 apļus, izmantojot auklu un pildspalvu. Ārējam vislielākajam aplim jābūt apmēram 20 mm attālumā no tāfeles malas, bet pārējām 2 līnijām pārvietojoties par 15 mm no pēdējās līnijas.
- Es izmantoju iespiestu pulksteņa ciparnīcu, lai palīdzētu man iezīmēt katras minūtes un sekundes pozīcijas 2 ārējās rindās un stundas iekšējā līnijā.
- Katru stundu, minūti un sekundi urbiet 10 mm caurumus, kuru dziļums ir aptuveni 5 mm.
- Izmantojiet 5 mm urbi, lai caurumā uz stundas, minūtes un sekundes izveidotu caurumus.
Maršrutēšana
Lai gan šis solis nav nepieciešams, tas ļaus pulksteni piestiprināt pie sienas.
- Izmantojot maršrutētāju un apļa vadotni, maršruta vadu kanāli uz tāfeles
- Atzīmējiet un izveidojiet padziļinājumu, kurā dzīvot RTC un mikrokontrolleram.
- Novietojiet kanālu no ārējām līnijām līdz vadu padziļinājumam
3. solis: tik daudz karavīru, griešanas un noņemšanas
Šo nākamo daļu ir daudz vieglāk pateikt nekā darīt. Mans padoms būtu piezīme - pasteidzieties. mēģiniet atrast sistēmu un ieiet ritmā.
Katrai no gaismas diodēm ir nepieciešami 5 volti, 5 volti, dati, dati, izeja, zemējums un zemējums. ieskaitot strāvu mikrokontrolleram un RTC tā vairāk nekā 400 vadiem, visi noņemti un pielodēti abos galos.
Šim solim ļoti noder lipīga zila viela.
- Es sāku, ievietojot 2 gaismas diodes savos caurumos blakus, lai noteiktu stieples garumu, kas nepieciešams, lai izveidotu savienojumu.
- Izmantojot vadu 1. gabalu kā vadotni, es pēc tam izgriezu 60 katras krāsas stieples.
- No katra stieples galiem noņemiet 2 mm uzmavu un tiniet tos ar lodmetālu.
- Pie katra LED spilventiņa pielodējiet nelielu lodēšanas lāsīti.
- Lodējiet vadus pie gaismas diodēm, veidojot divas ķēdes pa 60 minūtēm un sekundēm un vienu ķēdi pa 12 stundām. Es izmantoju sarkanu vadu 5V, dzeltenu - datiem un zilu - zemei.
- Uzmanieties, lai katru datu izeju (DOUT) savienotu ar nākamās gaismas diodes datu ievadi (DIN)
- Katras ķēdes devas pēdējam vadam nav nepieciešams datu izvades vads.
Kad visas ķēdes ir pabeigtas, ieteicams tās pirms instalēšanas pārbaudīt. Es izmantoju savu Arduino UNO un Adafruit NeoPixel Strand Test, lai apstiprinātu, ka katra gaismas diode darbojas.
Lodējiet garākus vadus uz katras ķēdes 5V, zemes un datu ievadīšanai.
Šajā brīdī vajadzētu būt pieciem 5v vadiem, trim datu vadiem, kas savienoti ar Arduino Pro Mini, un 5 zemējuma vadiem.
Noņemiet 5 mm no 5 V vadu galiem un pielodējiet tos visus kopā un atkārtojiet to ar zemējuma vadiem.
Pēc trīs ķēžu pabeigšanas pielodējiet 5V vadu pie Arduino Pro Mini RAW tapas un arī uz VCC tapas RTC. Zemējuma vads līdz GND Arduino Pro Mini un RTC un pēc tam vēl 2 vadi:
SCL no RTC līdz A5 Pro Mini
SDA no RTC līdz A4 Pro Mini
Datu līnijām no gaismas diodēm jābūt savienotām ar:
- Sekundes - digitālā tapa 3.
- Minūtes - DigitalPin 4
- Stundas - DigitalPin 5
4. solis: instalēšana
Kad gaismas diodes ir pielodētas, tām jābūt uzstādītām caurumos. Gaismas diodes ir jāuzstāda tā, lai, skatoties no aizmugures, dati darbotos pretēji pulksteņrādītāja virzienam, jo kods ir uzstādīts uz priekšu.
Es izmantoju nelielu daudzumu karstas līmes, lai tos noturētu, jo vēlos, lai nākotnē varētu nomainīt vienu gaismas diodi.
Es arī izmantoju karstu līmi, lai visi vadi būtu kārtīgi un kārtīgi, un lai piestiprinātu mucas savienotāju pie tāfeles.
Ir pieejamas vairākas arduino pro mini programmēšanas rokasgrāmatas. Es izmantoju ārējo USB uz sērijas pārveidotāja metodi, lai ielādētu šo kodu Arduino:
Šis kods arī iestatīs laiku RTC uz laiku, kad tas tika apkopots. tāpēc ir svarīgi vienkārši nospiest augšupielādes pogu, lai tā atbilstu un augšupielādētos pēc iespējas ātrāk.
Lielu daļu no šī koda aizņēmās Endijs Doro no NeoPixel Ring Clock. Dažus no Adafruit NeoPixel Strand Test un dažus es saliku kopā.
Jums būs jāinstalē dažas bibliotēkas. Tie ir pieejami bibliotēku pārvaldniekā, izmantojot programmatūru Arduino.
Adafruit NeoPixel gaismas diodēm ws2812b
Vads sarunai ar RTC, izmantojot I2C (tas ir iebūvēts standartā)
un RTClib, lai zinātu, ko jautāt RTC
/************************************************ ***************************Endija Doro NeoPixel gredzena pulkstenis ([email protected]) https://andydoro.com/ringclock/ ************************************************* **************************
Pārskatīšanas vēsture
Datums Pēc kā
20140320 AFD Pirmais uzmetums 20160105 AFD Izbalējuši loki 20160916 Ar AFD piekariņiem saderīgs 20170727 AFD pievienots STARTPIXEL 3D korpusam, mainīgs sākuma punkts, pievienots automātiskais DST atbalsts 20180424 AFD, izmantojot DST bibliotēku https://github.com/andydoro/DST_RTC *
/ iekļaut bibliotēkas kodu:
#iekļaut #iekļaut
#iekļaut
// definēt tapas
#define SECPIN 3 #define MINPIN 4 #define HOUPIN 5
#define BRIGHTNESS 20 // iestatiet maksimālo spilgtumu
#definējiet r 10
#define g 10 #define b 10 RTC_DS3231 rtc; // Izveidot pulksteņa objektu
Adafruit_NeoPixel stripS = Adafruit_NeoPixel (60, SECPIN, NEO_GRB + NEO_KHZ800); // sloksnes objekts
Adafruit_NeoPixel strip M = Adafruit_NeoPixel (60, MINPIN, NEO_GRB + NEO_KHZ800); // sloksnes objekts Adafruit_NeoPixel stripH = Adafruit_NeoPixel (24, HOUPIN, NEO_GRB + NEO_KHZ800); // sloksnes objekta baits pixelColorRed, pixelColorGreen, pixelColorBlue; // satur krāsu vērtības
void setup () {
Wire.begin (); // Begin I2C rtc.begin (); // sākt pulksteni
Sērijas sākums (9600);
// iestatīt pinmodes pinMode (SECPIN, OUTPUT); pinMode (MINPIN, OUTPUT); pinMode (HOUPIN, OUTPUT);
ja (rtc.lostPower ()) {
Serial.println ("RTC zaudēja jaudu, ļauj iestatīt laiku!"); // nākamā rinda nosaka RTC datumu un laiku, kad šī skice tika apkopota rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Šī rindiņa nosaka RTC ar precīzu datumu un laiku, piemēram, lai iestatītu // 2014. gada 21. janvāris plkst. 3:00 jūs zvanītu: // rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0)); }
stripS.begin ();
stripM.begin (); sloksneH.sākas (); //strip.show (); // Inicializēt visus pikseļus, lai tie būtu izslēgti
// startēšanas secība
kavēšanās (500);
colorWipeS (sloksne. Krāsa (0, g, 0), 5); // Zilā krāsaWipeM (stripM. Color (r, 0, 0), 5); // Zilā krāsaWipeH (sloksneH. Krāsa (0, 0, b), 50); // Zils
kavēšanās (1000);
DateTime theTime = rtc.now (); // ņem vērā DST baitu secondval = theTime.second (); // iegūt sekundes baitu minuteval = theTime.minute (); // iegūt minūtes int hourval = theTime.hour (); hourval = hourval % 12; // Šis pulkstenis ir 12 stundas, ja 13-23, konvertējiet uz 0-11`
par (uint16_t i = 0; i <secondval; i ++) {stripS.setPixelColor (i, 0, 0, b); stripS.show (); kavēšanās (5); }
par (uint16_t i = 0; i <minuteval; i ++) {stripM.setPixelColor (i, 0, g, 0); stripM.show (); kavēšanās (5); }
par (uint16_t i = 0; i <hourval; i ++) {stripH.setPixelColor (i, r, 0, 0); stripH.show (); kavēšanās (5); }
}
void loop () {
// dabū laiku
DateTime theTime = rtc.now (); // ņem vērā DST
baits secondval = theTime.second (); // iegūt sekundes
baits minuteval = theTime.minute (); // iegūt minūtes int hourval = theTime.hour (); // iegūt stundas hourval = hourval % 12; // Šis pulkstenis ir 12 stundas, ja 13-23, konvertējiet uz 0-11`
stripS.setPixelColor (secondval, 0, 0, 20); stripS.show (); kavēšanās (10); ja (secondval == 59) {for (uint8_t i = stripS.numPixels (); i> 0; i--) {stripS.setPixelColor (i, 0, g, 0); stripS.show (); kavēšanās (16);}}
stripM.setPixelColor (minūti, 0, g, 0);
stripM.show (); kavēšanās (10); if (secondval == 59 && minuteval == 59) {for (uint8_t i = stripM.numPixels (); i> 0; i--) {stripM.setPixelColor (i, r, 0, 0); stripM.show (); kavēšanās (16);}}
stripH.setPixelColor (stundā, r, 0, 0);
stripH.show (); kavēšanās (10); ja (secondval == 59 && minuteval == 59 && hourval == 11) {for (uint8_t i = stripH.numPixels (); i> 0; i--) {stripH.setPixelColor (i, 0, 0, b); stripH.show (); kavēšanās (83);}} // sērijveida atkļūdošanai Serial.print (hourval, DEC); Serial.print (':'); Sērijas nospiedums (minūti, DEC); Serial.print (':'); Serial.println (otrais, DEC); }
// Aizpildiet punktus vienu pēc otra ar krāsu
void colorWipeS (uint32_t c, uint8_t wait) {for (uint16_t i = 0; i <stripS.numPixels (); i ++) {stripS.setPixelColor (i, c); stripS.show (); aizkavēties (gaidīt); }}
void colorWipeM (uint32_t c, uint8_t gaidīt) {
par (uint16_t i = 0; i <stripM.numPixels (); i ++) {stripM.setPixelColor (i, c); stripM.show (); aizkavēties (gaidīt); }}
void colorWipeH (uint32_t c, uint8_t gaidīt) {
par (uint16_t i = 0; i <stripH.numPixels (); i ++) {stripH.setPixelColor (i, c); stripH.show (); aizkavēties (gaidīt); }}
5. solis: pēdējie pieskārieni
Viss, kas tagad jāatliek, ir RTC un mikrokontrollera nostiprināšana padziļinājumā.
Esmu uzstādījis RTC akumulatoru ar pusi uz augšu, lai vajadzības gadījumā varētu viegli nomainīt akumulatoru.
Pievienojiet 5v vadus savienotāja + pusei un zemējumu - pusei
Ieslēdziet to!
Manējais ir pievienots USB akumulatoru bankai, bet USB tālruņa lādētājs darbotos tikpat labi.
Piezīme:
Gaismas diodes spilgtums ir iestatīts kodā. Tas ir iestatīts zemā līmenī, lai saglabātu zemu pašreizējo samazinājumu. Pilnā spilgtumā ar visām iedegtajām gaismas diodēm tas varētu uzņemt gandrīz 8 ampērus. Ar pašreizējo iestatījumu tas ir mazāks par 1.
Otrā vieta pulksteņu konkursā
Ieteicams:
FLEXBALL - simts pikseļu elastīga PCB bumba ar WiFi: 6 soļi (ar attēliem)
FLEXBALL - simts pikseļu elastīga PCB bumba ar WiFi: Sveiki, veidotāji! To kontrolē ESP8285-01f - mazākais uz ESP balstītais Espressif modulis. Turklāt tam ir ADXL345 akselerometrs
RGB LED pikseļu nokrāsas: 17 soļi (ar attēliem)
RGB LED pikseļu nokrāsas: Sveiki visiem, šajā pamācībā es jums parādīšu, kā izveidot LED pikseļu toņu pāri. Sākotnēji es tos radīju, lai Ziemassvētkos / Jaunajā gadā nēsātu apkārt mājai, kā mobilais rotājums, bet galu galā tie bija nedaudz kiberpunkti
Pikseļu ķirbis: 8 soļi (ar attēliem)
Pikseļu ķirbis: izveidojiet neuzkrītošu ķirbi, kas ar tālvadības pulti iedegas dažādos veidos. Lai gan pikseļi ir daudzkrāsaini, ķirbja biezā āda filtrēs visu, izņemot oranžo, tāpēc mūsu pikseļu krāsas tiek pārveidotas
500 LED pikseļu RGB ķieģelis: 9 soļi (ar attēliem)
500 LED pikseļu RGB-ķieģeļi: Pirms kāda laika es izveidoju 10x10 LED kompensējamo materiālu ar dažiem no šiem WS2812 gaismas diodēm, taču, pat ja ir iespējams spēlēt vecās skolas spēli Snake ar tam pievienotu viedtālruni, es vēlos kaut ko vairāk īpašs. Tāpēc es nolēmu tam pievienot vēl dažus gaismas diodes, arra
Stikla sešstūra LED pikseļu stiprinājums: 8 soļi (ar attēliem)
Stikla sešstūra LED pikseļu stiprinājums: uz LED pikseļiem balstīts mākslas darbs, kas paredzēts NLED kontrolieru un programmatūras potenciāla demonstrēšanai. Būvēts ap izkausētu gaismas ierīci, kas izgatavota no lodēta bronzas un stikla, iespējams, datēta ar 70. gadiem. Kombinācijā ar standarta APA102 pikseļu joslu, cus