Բովանդակություն:
- Քայլ 1: Պաշարների և գործիքների հավաքում:
- Քայլ 2: Նշում, հորատում և ուղղություն
- Քայլ 3: Այնքան շատ զինվելը, կտրելը և մերկացնելը:
- Քայլ 4: Տեղադրում
- Քայլ 5: Վերջնական հպումներ
Video: 132 պիքսել ժամացույց ՝ 5 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:50
Ես, որքան հիշում եմ, տարված էի լուսադիոդներով և ժամանակով: Այս նախագծում ես ստեղծել եմ պատի մեծ ժամացույց, որը ցուցադրում է ընթացիկ ժամանակը `օգտագործելով 132 նեոպիքսելային LED- ներ, որոնք տեղադրված և փայլում են զուգված տախտակի միջով: Դա հիբրիդային անալոգային թվային է `Անհատական պիքսելով` յուրաքանչյուր ժամի, րոպեի և վայրկյանի համար:
Սա մինչ օրս ստանձնած ամենամեծ ծրագիրն էր, որի մասին սկսեցի մտածել 6 ամիս առաջ և գաղափարը կամաց -կամաց համախմբվեց: Ես իսկապես գոհ եմ արդյունքից և անհամբերությամբ սպասում եմ այն կիսել ձեզ հետ:
Քայլ 1: Պաշարների և գործիքների հավաքում:
Բաղադրիչներ
Այս նախագիծը կառուցված է իմ տեղական DIY խանութի հոբբիի վրա: Տախտակի չափը 850 մմ լայնություն է 500 մմ բարձրություն և 18 մմ խորություն:
Այս նախագծում օգտագործվող LED- ները 5050 WS2812b- ն են, որոնք տեղադրված են շրջանաձև PCB- երի վրա, մոտավորապես 9 մմ տրամագծով, հետևի մասում `զոդման բարձիկներով:
Ես օգտագործում եմ Arduino Pro Mini համատեղելի միկրո վերահսկիչ: Դա 5V 16 MHZ տարբերակն է: Ես ընտրեցի այս մեկը, քանի որ այն ունի չափազանց բարակ ձևավորում, փոքր ոտնաթաթի տպագրություն և բոլոր անհրաժեշտ նավահանգիստները ՝ գումարած պահեստային ապագա արդիականացման համար: Այն նաև 5 վոլտ է, այնպես որ ես կարող եմ օգտագործել մեկ սնուցման աղբյուր LED- ների, միկրո վերահսկիչի և RTC- ի համար
Keepingամանակի պահպանումը հոգում է RTC (Իրական ժամանակի ժամացույց) մոդուլը, որը պարունակում է DS3231 չիպը: Այս չիպը շատ ճշգրիտ է, այնպես որ ժամանակը չպետք է շատ շեղվի:
Նաև օգտագործվում է.
Մետաղալար Sոդման և տաք սոսինձ:
Գործիքներ:
Էլեկտրական փորվածք և փայտի փորվածքներ (10 մմ և 5 մմ)
Oldոդման երկաթ
Տաք սոսինձ ատրճանակ
մետաղալարերի հատվածներ
Dremel և plunge երթուղիչի պարագաներ
Քայլ 2: Նշում, հորատում և ուղղություն
Հորատում
- Օգտագործելով նեղ եզր, գտեք տախտակի կենտրոնը ՝ հակառակ անկյուններից գիծ քաշելով:
- Նշեք 3 շրջանակ ՝ օգտագործելով լար և գրիչ: Շրջանի արտաքին մասը պետք է լինի տախտակի եզրից մոտ 20 մմ հեռավորության վրա, իսկ մնացած 2 գծերը վերջին գծից 15 մմ -ով շարժվում են դեպի ներս:
- Ես օգտագործեցի տպագիր ժամացույցի երես, որն ինձ օգնեց նշելու րոպեներից և վայրկյաններից յուրաքանչյուրի դիրքերը արտաքին 2 տողերում և ներքին գծի վրա:
- Հորատեք 10 մմ անցքեր մոտավորապես 5 մմ խորությամբ յուրաքանչյուր ժամ, րոպե և վայրկյան:
- Օգտագործեք 5 մմ տրամագծով փորվածք ՝ տախտակի վրա մեկ ժամ, րոպե և երկրորդ վայրկյան անցնելու համար:
Ուղղորդում
Չնայած այս քայլն անհրաժեշտ չէ, այն թույլ կտա ժամացույցը տեղավորել պատին:
- Օգտագործելով երթուղիչ և շրջանագծի ուղեցույց երթուղու մետաղալարեր տախտակում
- Նշեք և սահմանեք ընդմիջում RTC- ի և Micro Controller- ի համար:
- Ուղղորդեք մի ալիք արտաքին գծերից դեպի ընդմիջում լարերի համար
Քայլ 3: Այնքան շատ զինվելը, կտրելը և մերկացնելը:
Այս հաջորդ հատվածը շատ ավելի հեշտ է ասել, քան անել: Իմ խորհուրդն այն կլինի, որ շտապեք: փորձեք գտնել համակարգ և մտեք ռիթմի մեջ:
LED- ներից յուրաքանչյուրին անհրաժեշտ է 5 վոլտ ներս, 5 վոլտ ելք, Տվյալների մուտքագրում, Տվյալների ելք, Գրունտ ներս և հող դուրս: ներառյալ միկրոկառավարիչի և RTC- ի իր ավելի քան 400 լարերը, բոլորը պոկված և զոդված երկու ծայրերում:
Կապույտ կպչուն նյութը շատ օգտակար է այս քայլի համար:
- Սկսեցի միմյանց կողքի 2 լուսադիոդային լուսադիոդ տեղադրելով ՝ միմյանց միանալու համար անհրաժեշտ լարերի երկարությունը մշակելու համար:
- Օգտագործելով մետաղալարերի 1 -ին կտորը որպես ուղեցույց, ես կտրեցի յուրաքանչյուր գույնի մետաղալարից 60 հատ:
- Յուրաքանչյուր մետաղալարերի ծայրերից հանել 2 մմ թևք և թիթեղել դրանք զոդով:
- LEDոդեք մի փոքրիկ բլուր զոդիչ LED բարձիկներից յուրաքանչյուրի վրա:
- Լարերը կպցրեք LED- ներին `րոպեների և վայրկյանների համար կազմելով երկու շղթա` 60 հատ, իսկ ժամերի համար `12 շղթա: 5V- ի համար օգտագործել եմ կարմիր մետաղալար, տվյալների համար `դեղին, իսկ գետնին` կապույտ:
- Հոգ տանել, որ յուրաքանչյուր Data Out (DOUT) - ը միանա հաջորդ LED- ի Data In (DIN) - ին
- Վերջին շղթայի յուրաքանչյուր դոզայի դեպքում անհրաժեշտ չէ տվյալների հեռացում:
Բոլոր շղթաներն ավարտվելուց հետո լավ գաղափար է դրանք տեղադրելուց առաջ դրանք փորձարկել: Ես օգտագործեցի իմ Arduino UNO- ն և Adafruit NeoPixel Strand Test- ը `հաստատելու համար, որ յուրաքանչյուր LED- ն աշխատում է:
Ավելի երկար լարեր կպցրեք շղթաներից յուրաքանչյուրի վրա `5V, Ground և Data in:
Այս պահին պետք է լինի հինգ 5 վ լար, երեք տվյալների հաղորդալար `միացված Arduino Pro Mini- ին և 5 գրունտային լար:
Հեռացրեք 5 վ լարերի ծայրերից 5 մմ հեռավորության վրա և կպցրեք դրանք բոլորը միասին և կրկնում գրունտի լարերի համար:
Երեք շղթաներն ավարտելուց հետո միացրեք 5 Վ լարը Arduino Pro Mini- ի RAW կապում, ինչպես նաև RTC- ի համար VTC կապում: Arduino Pro Mini- ի և RTC- ի վրա GND- ի հիմնավորված մետաղալար և այնուհետև ևս 2 լար:
SCL RTC- ից A5 ՝ Pro Mini- ով
SDA RTC- ից A4 ՝ Pro Mini- ով
LED- ների տվյալների գծերը պետք է միացվեն հետևյալին.
- Վայրկյաններ - Թվային փին 3:
- Րոպեներ - DigitalPin 4
- Oursամեր - DigitalPin 5
Քայլ 4: Տեղադրում
Soldոդումից հետո LED- ների տեղադրումն իրենց անցքերի մեջ պետք է ուղիղ առաջ ընթանա: LED- ները պետք է տեղադրվեն այնպես, որ տվյալները հետևի ժամացույցի սլաքի հակառակ ուղղությամբ պտտվեն, երբ հետևից նայում եք, քանի որ ծածկագիրը տեղադրված է առջևից:
Ես մի փոքր քանակությամբ տաք սոսինձ օգտագործեցի դրանք պահելու համար, քանի որ ցանկանում եմ, որ ապագայում այն չկարողանա փոխարինել մեկ LED:
Ես նաև օգտագործեցի տաք սոսինձ ՝ բոլոր լարերը կոկիկ և կոկիկ պահելու և տակառի միակցիչը տախտակին ամրացնելու համար:
Կան մի շարք arduino pro մինի ծրագրավորման ուղեցույցներ: Ես օգտագործում եմ արտաքին USB- ի սերիական փոխարկիչ մեթոդը `այս կոդը Arduino- ում բեռնելու համար.
Այս ծածկագիրը նաև RTC- ի ժամանակը կդարձնի այն կազմման ժամանակը: ուստի կարևոր է պարզապես ծածկել վերբեռնման կոճակը, որպեսզի այն համապատասխանի և հնարավորինս արագ վերբեռնվի:
Այս ծածկագրի մեծ մասը վերցվել է NeoPixel Ring Clock- ից ՝ Էնդի Դորոյի կողմից: Ոմանք Adafruit NeoPixel Strand Test- ից, իսկ ոմանք ՝ միասին:
Ձեզ հարկավոր կլինի տեղադրել մի քանի գրադարան: Դրանք հասանելի են Գրադարանների կառավարչից ՝ Arduino ծրագրակազմով:
Adafruit NeoPixel- ը ws2812b LED- ների համար
Հաղորդալար RTC- ի հետ I2C- ով խոսելու համար (սա ներկառուցված է որպես ստանդարտ)
և RTClib- ը `իմանալու համար, թե ինչ հարցնել RTC- ին
/********************************************* **************************NeoPixel Ring Clock ՝ Էնդի Դորոյի կողմից ([email protected]) https://andydoro.com/ringclock/ *********************************************** *************************
Վերանայման պատմություն
Ամսաթիվ Ինչով
20140320 AFD Առաջին նախագիծ 20160105 AFD Խունացած աղեղներ 20160916 AFD Trinket համատեղելի 20170727 AFD ավելացրեց STARTPIXEL- ը 3D պարիսպի համար, փոփոխական ելակետ, ավելացրեց ավտոմատ DST աջակցություն 20180424 AFD ՝ օգտագործելով DST գրադարանը https://github.com/andydoro/DST_RTC *
/ ներառել գրադարանի ծածկագիրը ՝
#ներառել #ներառել
#ներառում
// սահմանել կապում
#սահմանել SECPIN 3 #սահմանել MINPIN 4 #սահմանել HOUPIN 5 -ը
#սահմանեք ՊԱՀՈՍՏՈ //ԹՅՈ 20Ն 20 // սահմանեք առավելագույն պայծառություն
#սահմանի r 10
#սահմանել g 10 #սահմանել b 10 RTC_DS3231 rtc; // Ստեղծեք ժամացույցի օբյեկտ
Adafruit_NeoPixel շերտ = S Adafruit_NeoPixel (60, SECPIN, NEO_GRB + NEO_KHZ800); // շերտի օբյեկտ
Adafruit_NeoPixel ժապավեն M = Adafruit_NeoPixel (60, MINPIN, NEO_GRB + NEO_KHZ800); // շերտի օբյեկտ Adafruit_NeoPixel stripH = Adafruit_NeoPixel (24, HOUPIN, NEO_GRB + NEO_KHZ800); // շերտի օբյեկտի բայթ pixelColorRed, pixelColorGreen, pixelColorBlue; // պահում է գունային արժեքներ
void setup () {
Wire.begin (); // Սկիզբ I2C rtc.begin (); // սկսել ժամացույցը
Serial.begin (9600);
// սահմանել pinMode pinmode (SECPIN, OUTPUT); pinMode (MINPIN, OUTPUT); pinMode (HOUPIN, OUTPUT);
եթե (rtc.lostPower ()) {
Serial.println («RTC- ն կորցրեց էներգիան, թույլ տվեք սահմանել ժամանակը»); // հաջորդ տողը RTC- ն սահմանում է այս ուրվագծի կազմման ամսաթվի և ժամի rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Այս տողը սահմանում է RTC- ն հստակ ամսաթվով և ժամով, օրինակ `սահմանելու համար // 2014 թ. Հունվարի 21 -ին, ժամը 3 -ին, դուք կզանգահարեք ՝ // rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0)); }
stripS.begin ();
stripM.begin (); stripH.gegin (); //strip.show (); // Նախագծել բոլոր պիքսելները «անջատված»
// գործարկման հաջորդականություն
ուշացում (500);
colorWipeS (շերտեր. Գույն (0, գ, 0), 5); // Blue colorWipeM (stripM. Color (r, 0, 0), 5); // Կապույտ գույնWipeH (շերտագիծ. Գույն (0, 0, բ), 50); // Կապույտ
ուշացում (1000);
DateTime theTime = rtc.now (); // հաշվի է առնում DST բայթ secondval = theTime.second (); // ստանալ վայրկյաններ բայթ րոպեական = theTime.minute (); // ստանալ րոպե int hourval = theTime.hour (); ժամային ժամ = ժամային ժամ % 12; // Այս ժամացույցը 12 ժամ է, եթե 13-23, փոխակերպեք 0-11`
for (uint16_t i = 0; i <secondval; i ++) {stripS.setPixelColor (i, 0, 0, b); stripS.show (); ուշացում (5); }
for (uint16_t i = 0; i <րոպեանոց; i ++) {stripM.setPixelColor (i, 0, g, 0); stripM.show (); ուշացում (5); }
for (uint16_t i = 0; i <hourval; i ++) {stripH.setPixelColor (i, r, 0, 0); stripH.show (); ուշացում (5); }
}
դատարկ շրջան () {
// ժամանակ ստանալ
DateTime theTime = rtc.now (); // հաշվի է առնում DST- ն
բայթ secondval = theTime.second (); // ստացեք վայրկյաններ
բայթ minuteval = theTime.minute (); // ստանալ րոպեներ int hourval = theTime.hour (); // ստանալ ժամային ժամ = ժամային ժամ 12 %; // Այս ժամացույցը 12 ժամ է, եթե 13-23, փոխակերպեք 0-11`
stripS.setPixelColor (երկրորդ կարգ, 0, 0, 20); stripS.show (); ուշացում (10); if (secondval == 59) {for (uint8_t i = stripS.numPixels (); i> 0; i--) {stripS.setPixelColor (i, 0, g, 0); stripS.show (); ուշացում (16);}}
stripM.setPixelColor (րոպե, 0, գ, 0);
stripM.show (); ուշացում (10); if (secondval == 59 && minuteval == 59) {for (uint8_t i = stripM.numPixels (); i> 0; i--) {stripM.setPixelColor (i, r, 0, 0); stripM.show (); ուշացում (16);}}
stripH.setPixelColor (ժամային ժամ, r, 0, 0);
stripH.show (); ուշացում (10); if (secondval == 59 && minuteval == 59 && hourval == 11) {for (uint8_t i = stripH.numPixels (); i> 0; i--) {stripH.setPixelColor (i, 0, 0, բ); stripH.show (); ուշացում (83);}} // սերիական վրիպազերծման համար Serial.print (hourval, DEC); Serial.print (':'); Serial.print (րոպե, DEC); Serial.print (':'); Serial.println (երկրորդ կարգ, DEC); }
// Կետերը մեկը մյուսի հետևից լրացրու գույնով
void colorWipeS (uint32_t c, uint8_t սպասել) {for (uint16_t i = 0; i <stripS.numPixels (); i ++) {stripS.setPixelColor (i, c); stripS.show (); ուշացում (սպասել); }}
դատարկ գույնWipeM (uint32_t գ, uint8_t սպասել) {
for (uint16_t i = 0; i <stripM.numPixels (); i ++) {stripM.setPixelColor (i, c); stripM.show (); ուշացում (սպասել); }}
դատարկ գույն WipeH (uint32_t գ, uint8_t սպասել) {
for (uint16_t i = 0; i <stripH.numPixels (); i ++) {stripH.setPixelColor (i, c); stripH.show (); ուշացում (սպասել); }}
Քայլ 5: Վերջնական հպումներ
Մնում է միայն RTC- ն և Micro Controller- ը իջեցնել ներքևի փոսում:
Ես տեղադրել եմ RTC մարտկոցի կողմը, որպեսզի անհրաժեշտության դեպքում կարողանամ հեշտությամբ փոխել մարտկոցը:
5 վ լարերը միացրեք միակցիչի + կողմին, իսկ գետինը `կողային
Միացրու ուժը:
Ես ունեմ միացված USB մարտկոցի բանկին, բայց USB հեռախոսի լիցքավորիչը նույնքան լավ կաշխատի:
Նշում:
LED- ների պայծառությունը սահմանվում է ծածկագրում: Այն սահմանվել է ցածր `ընթացիկ վիճակահանությունը ցածր պահելու համար: Ամբողջ պայծառության դեպքում, լուսավորված բոլոր LED- ների դեպքում, այն կարող է քաշել գրեթե 8 ամպեր: Ընթացիկ կարգավորմամբ այն 1 -ից պակաս է:
Երկրորդ տեղը զբաղեցնող ժամացույցների մրցույթում
Խորհուրդ ենք տալիս:
FLEXBALL - հարյուր պիքսել ճկուն PCB գնդակ WiFi- ով: 6 քայլ (նկարներով)
FLEXBALL - Հարյուր պիքսել ճկուն PCB գնդակ WiFi- ով. Ողջույն, արտադրողներ, այն արտադրող է: Flexball- ը հիմնված է ճկուն PCB- ի վրա, որը հագեցած է 100 WS2812 2020 հասցեական LED- ով: Այն վերահսկվում է ESP8285-01f- ով `Espressif- ի կողմից ESP- ի վրա հիմնված ամենափոքր մոդուլով: Բացի այդ, այն ունի ADXL345 արագացուցիչ
Կենսաթոշակային ժամացույց / հաշվել / Dn ժամացույց ՝ 4 քայլ (նկարներով)
Կենսաթոշակային ժամացույց / Count Up / Dn ockամացույց. Ես դարակում ունեի այս 8x8 LED dot-matrix ցուցադրումներից մի քանիսը և մտածում էի, թե ինչ անել դրանց հետ: Ոգեշնչված այլ հրահանգներով, ես գաղափար ստացա կառուցել հետհաշվարկի/վերևի ցուցադրում `հետ հաշվելու համար մինչև ապագա ամսաթիվը/ժամը և եթե նպատակային ժամանակը պ
C51 4 բիթանոց էլեկտրոնային ժամացույց - փայտյա ժամացույց ՝ 15 քայլ (նկարներով)
C51 4 բիթանոց էլեկտրոնային ժամացույց - Փայտե ժամացույց. Այս հանգստյան օրերին որոշ ժամանակ ունեի, այնպես որ առաջ գնացի և հավաքեցի այս 2.40 ԱՄՆ դոլար արժողությամբ 4 -բիթանոց DIY էլեկտրոնային թվային ժամացույցը, որը ես գնել էի AliExpress- ից քիչ առաջ
Ուղղել խրված պիքսել LCD մոնիտորի վրա. 5 քայլ (նկարներով)
Ուղղեք խրված պիքսել LCD մոնիտորի վրա. Եթե ձեզ դուր եկավ այս հրահանգը, ապա հավանաբար ձեզ դուր կգան այստեղ իմ կայքի այլ բաները … Չեղյալ համարվող երաշխիքներ Թարմացում. Այս հրահանգը Engadget- ում էր: http://www.engadget.com/2007/12/24/how-to-guide-details-fix-for-stuck-pixels/ Ես պատրաստվում եմ
64 պիքսել ՝ 8 քայլ (նկարներով)
64 պիքսել. Սա փոքրիկ սարք է ՝ անիմացիաներ և կարճ հաղորդագրություններ ցուցադրելու համար: Այն բաղկացած է միայն երեք բաղադրիչներից և իսկապես հեշտ է կառուցել: Եվ զվարճալի է դիտելը: Եթե դուք չեք ցանկանում հավաքել ամբողջ իրը ինքներդ, կարող եք ձեռք բերել մի հավաքածու ՝ անհրաժեշտ բոլոր մասերով և մի կտոր