Агуулгын хүснэгт:
- Алхам 1: Хэрэгсэл, багаж хэрэгслийг цуглуулах
- Алхам 2: Тэмдэглэгээ хийх, өрөмдөх, чиглүүлэх
- Алхам 3: Маш их цэргүүд, хайчлах, хөрс хуулалт
- Алхам 4: Суулгаж байна
- Алхам 5: Эцсийн шүргэлт
Видео: 132 пиксел цаг: 5 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Би санаж байгаа хугацаанд LED болон цаг хугацааны талаар санаа зовж байсан. Энэхүү төсөлд би гацуур модны самбар дээр суурилуулж, гэрэлтүүлж буй 132 неопикселийн LED ашиглан одоогийн цагийг харуулдаг том ханын цаг бүтээжээ. Энэ нь цаг, минут, секунд тутамд хувь хүний пиксел бүхий хосолсон аналог дижитал юм.
Энэ бол миний өнөөг хүртэл хэрэгжүүлсэн хамгийн том төсөл байсан бөгөөд 6 сарын өмнөөс энэ талаар бодож эхэлсэн бөгөөд санаа аажмаар нэгдэж чадсан юм. Би үр дүнд үнэхээр баяртай байгаа бөгөөд үүнийг та бүхэнтэй хуваалцахыг тэсэн ядан хүлээж байна.
Алхам 1: Хэрэгсэл, багаж хэрэгслийг цуглуулах
Бүрэлдэхүүн хэсгүүд
Энэхүү төсөл нь миний орон нутгийн DIY дэлгүүрийн хобби самбар дээр бүтээгдсэн болно. Самбарын өргөн нь 850 мм, өндөр нь 500 мм, гүн нь 18 мм байна.
Энэхүү төсөлд ашигласан LED нь ойролцоогоор 9мм диаметртэй дугуй ПХБ дээр суурилуулсан 5050 WS2812b бөгөөд арын хэсэгт гагнуурын дэвсгэртэй.
Би Arduino Pro Mini нийцтэй микро хянагч ашиглаж байна. Энэ нь 5V 16 MHZ хувилбартай. Би үүнийг сонгосон, учир нь энэ нь маш нарийхан хийцтэй, жижиг хөлийн хэвлэмэл зураг, шаардлагатай бүх порттой, ирээдүйд хийх шинэчлэлтүүдтэй холбоотой юм. Энэ нь бас 5 вольт тул би LED, микро хянагч, RTC -ийн нэг тэжээлийн хангамжийг ашиглах боломжтой
Цагийг DS3231 чиптэй RTC (Real Time Clock) модуль хариуцдаг. Энэхүү чип нь маш нарийвчлалтай тул цаг хугацаа хэт их холдох ёсгүй.
Мөн ашигласан:
Утас. Гагнуур ба халуун цавуу.
Хэрэгсэл:
Цахилгаан өрөм ба модон өрөмдлөг (10 мм ба 5 мм)
Гагнуурын төмөр
Халуун цавуу буу
утас таслах
Дремел ба чиглүүлэгчийн дагалдах хэрэгсэл
Алхам 2: Тэмдэглэгээ хийх, өрөмдөх, чиглүүлэх
Өрөмдлөг
- Давхар ирмэг ашиглан самбарын төвийг эсрэг булангаас шугам зурж олоорой.
- Утас, үзэг ашиглан 3 тойргийг тэмдэглээрэй. Гаднах хамгийн тойрог нь самбарын ирмэгээс 20 мм орчим, бусад 2 шугам нь сүүлчийн мөрөөс 15 мм зайд шилжих ёстой.
- Би хэвлэсэн цагны нүүр ашиглан гаднах 2 мөр, дотоод шугам дээрх цаг, минут бүрийн байрлалыг тэмдэглэхэд тусалсан.
- Цаг, минут, секунд тутамд ойролцоогоор 5 мм гүнтэй 10 мм -ийн цооног өрөмдөнө.
- 5 мм -ийн өрмийн тусламжтайгаар самбар дээр цаг, минут, секундын турш нүх гарга.
Чиглүүлэлт
Хэдийгээр энэ алхам шаардлагагүй боловч цагийг хананд наалдуулах боломжтой болно.
- Самбар дахь чиглүүлэгч ба тойргийн чиглүүлэгч чиглүүлэгч утсыг ашиглах
- RTC болон Micro Controller -ийг амьдрах завсарлага аваад маршрут хийх.
- Сувгийг гаднах шугамаас утаснуудын завсарлага руу чиглүүлнэ
Алхам 3: Маш их цэргүүд, хайчлах, хөрс хуулалт
Дараагийн хэсэг нь хийхээс хамаагүй хялбар юм. Миний зөвлөгөө бол үүнийг яаравчлах болно. оролдож, системийг олж, хэмнэлд ороорой.
LED тус бүр 5 вольт, 5 вольт, өгөгдөл оруулах, өгөгдөл гаргах, газардуулах, газардуулах шаардлагатай. микро хянагч болон RTC -ийн хүчийг багтаасан 400 гаруй утсыг бүгдийг нь хоёр талаас нь хуулж, гагнасан.
Наалдамхай цэнхэр бодис нь энэ алхамд маш хэрэгтэй байдаг.
- Би хоорондоо холбоход шаардлагатай утасны уртыг тооцоолохын тулд 2 LED -ийг нүхнийхээ хажууд байрлуулж эхлэв.
- 1 -р утасыг хөтөч болгон ашигласны дараа өнгөт утас бүрээс 60 ширхэг хайчилж авав.
- Утас бүрийн үзүүрээс 2 мм ханцуйвчийг хайчилж, гагнуураар бүрнэ.
- Бага оврын гагнуурыг LED дэвсгэр дээр гагнана.
- Утаснуудаа LED -д гагнах нь минут, секундын турш 60 -ийн хоёр гинж, 12 гинжин хэлхээг бий болгоно. Би 5В -ийн улаан утсыг, өгөгдөлд шар, газрын хувьд цэнхэр өнгийг ашигласан.
- Data Out (DOUT) бүрийг дараагийн LED -ийн Data In (DIN) -д холбохдоо анхаарна уу
- Сүлжээний тун тус бүрийн сүүлчийн залгуурт өгөгдөл дамжуулах утас шаардлагагүй болно.
Бүх сүлжээг дуусгасны дараа тэдгээрийг суулгахаасаа өмнө туршиж үзэх нь зүйтэй юм. Би Arduino UNO болон Adafruit NeoPixel Strand Test ашиглан LED тус бүр ажиллаж байгааг баталгаажуулсан.
Урт утсыг 5V, Ground ба Data in гинж тус бүр дээр гагнана.
Энэ үед 5 5в утас, Arduino Pro Mini -тэй холбогдсон гурван өгөгдлийн утас, 5 газардуулгын утас байх ёстой.
5В -ийн утаснуудын үзүүрээс 5мм -ийг хуулж, бүгдийг нь гагнаж, газардуулгын утсыг давтана.
Гурван гинжийг хийж дууссаны дараа 5V утсыг Arduino Pro Mini -ийн RAW зүүгээр холбож, мөн RTC -ийн VCC зүү дээр холбоно. Arduino Pro Mini ба RTC дээрх GND -ийн газардуулгын утас, дараа нь өөр 2 утас:
SCL нь RTC -ээс A5 хүртэл Pro Mini дээр
SD Mini нь RTC -ээс A4 хүртэл Pro Mini дээр
LED -ээс авсан өгөгдлийн шугамууд дараах холболттой байх ёстой.
- Секунд - Дижитал зүү 3.
- Минут - DigitalPin 4
- Цаг - DigitalPin 5
Алхам 4: Суулгаж байна
Гагнуурын дараа LED -ийг нүхэндээ суулгах нь шууд урагшаа чиглэсэн байх ёстой. LED-ийг суурилуулах шаардлагатай бөгөөд кодыг урд талд нь тохируулсан тул өгөгдлийг ар талаас нь харахад цагийн зүүний эсрэг эргэдэг.
Би ирээдүйд бүтэлгүйтвэл ганц л LED сольж өгөхийг хүсч байгаа тул бага зэрэг халуун цавуу хэрэглэв.
Би мөн халуун утсыг ашиглан бүх утсыг эмх цэгцтэй байлгаж, баррель холбогчийг самбар дээр зассан.
Олон тооны arduino pro mini програмчлалын гарын авлага байдаг. Би энэ кодыг Arduino дээр ачаалахын тулд гадаад USB -ийг цуваа хөрвүүлэх аргыг ашигладаг.
Энэ код нь ЗТБХ -ны цагийг эмхэтгэсэн цаг хүртэл тохируулах болно. Байршуулах товчийг дарах нь чухал бөгөөд ингэснээр үүнийг дагаж мөрдөж, аль болох хурдан байршуулах болно.
Энэ кодын ихэнх хэсгийг NeoPixel Ring Clock -аас Энди Доро зээлсэн. Adafruit NeoPixel Strand тестийн зарим хэсэг, заримыг нь би нэгтгэсэн.
Та хэд хэдэн номын сан суулгасан байх шаардлагатай. Тэдгээрийг Arduino програм хангамжийн номын сангийн менежерээс авах боломжтой.
Ws2812b LED -д зориулсан Adafruit NeoPixel
I2C -ээр RTC -тэй холбоо барих утас (үүнийг стандарт байдлаар суурилуулсан болно)
болон RTClib нь RTC -ээс юу асуухаа мэдэх болно
/*********************************************** ***************************NeoPixel Ring Clock by Andy Doro ([email protected]) https://andydoro.com/ringclock/ ************************************************ **************************
Шалгах түүх
Огноо
20140320 AFD Анхны төсөл 20160105 AFD бүдгэрсэн нуман хаалга 20160916 AFD Trinket нийцтэй 20170727 AFD нь 3D хашлага, хувьсах эхлэх цэгийн STARTPIXEL -ийг нэмж, DST номын санг ашиглан 20180424 AFD автомат DST дэмжлэгийг нэмэв https://github.com/andydoro/DST_RTC *
/ номын сангийн кодыг оруулна уу:
#оруулах #оруулах
#оруулах
// тээглүүрийг тодорхойлох
#тодорхойлох SECPIN 3 #тодорхойлох MINPIN 4 #тодорхойлох HOUPIN 5
#BRIGHTNESS 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; // өнгөний утгыг хадгална
хүчингүй тохиргоо () {
Wire.begin (); // Эхлэх I2C rtc.begin (); // эхлэх цаг
Цуваа эхлэх (9600);
// pinMode тохируулах pinMode (SECPIN, OUTPUT); pinMode (MINPIN, OUTPUT); pinMode (HOUPIN, OUTPUT);
if (rtc.lostPower ()) {
Serial.println ("RTC хүчээ алдсан, цагийг тохируулцгаая!"); // дараах мөр нь энэ ноорогийг эмхэтгэсэн огноо, цагийг RTC болгож тохируулдаг (DateTime (F (_ DATE_), F (_ TIME_))))); // Энэ мөр нь RTC -ийг тодорхой огноо, цагаар тохируулдаг, жишээлбэл, 2014 оны 1 -р сарын 21 -ний өдрийн 3 цагт та үүнийг дуудах болно: // rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0)); }
stripS.begin ();
stripM.begin (); stripH.begin (); // зурвас.шоу (); // Бүх пикселийг "унтраах" болгож эхлүүлэх
// эхлүүлэх дараалал
саатал (500);
colorWipeS (stripS. Color (0, g, 0), 5); // Цэнхэр өнгөWipeM (stripM. Color (r, 0, 0), 5); // Цэнхэр өнгөWipeH (stripH. Color (0, 0, b), 50); // Цэнхэр
саатал (1000);
DateTime theTime = rtc.now (); // DST байтыг харгалзан үздэг secondval = theTime.second (); // авах секунд байт minuteval = 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 <minuteval; 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); }
}
void loop () {
// цаг авах
DateTime theTime = rtc.now (); // DST -ийг харгалзан үздэг
байт секундын утга = theTime.second (); // секунд авах
минут байт = 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, g, 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, b); stripH.show (); delay (83);}} // цуврал дибаг хийх зориулалттай Serial.print (цагийн хуваарь, DEC); Serial.print (':'); Цуваа.хэвлэх (хамгийн сүүлийн үеийн, DEC); Serial.print (':'); Serial.println (secondval, DEC); }
// Цэгүүдийг дараалан өнгөөр дүүргэ
void colorWipeS (uint32_t c, uint8_t хүлээх) {for (uint16_t i = 0; i <stripS.numPixels (); i ++) {stripS.setPixelColor (i, c); stripS.show (); хойшлуулах (хүлээх); }}
хүчингүй colorWipeM (uint32_t c, uint8_t хүлээх) {
for (uint16_t i = 0; i <stripM.numPixels (); i ++) {stripM.setPixelColor (i, c); stripM.show (); хойшлуулах (хүлээх); }}
хүчингүй colorWipeH (uint32_t c, uint8_t хүлээх) {
for (uint16_t i = 0; i <stripH.numPixels (); i ++) {stripH.setPixelColor (i, c); stripH.show (); хойшлуулах (хүлээх); }}
Алхам 5: Эцсийн шүргэлт
Одоо үлдэх ёстой зүйл бол завсарлагааны үеэр RTC болон Micro Controller -ийг засах явдал юм.
Би RTC батерейг хажуу тийш нь суулгасан тул шаардлагатай бол батерейг хялбархан сольж болно.
5V утсыг холбогчийн + талд, Газардуулгыг хажуу талд нь холбоно уу
Эрчим хүчээ асаана уу!
Би USB батерейны банктай холбогдсон боловч USB гар утасны цэнэглэгч яг адилхан ажиллах болно.
Тэмдэглэл:
LED -ийн гэрлийг кодыг зааж өгсөн болно. Одоогийн сугалааны түвшинг бага байлгахын тулд үүнийг доод түвшинд тавьсан. Бүх LED гэрлийг бүрэн гэрэлтүүлснээр бараг 8 ампер зурж болно. Одоогийн тохиргооны хувьд 1 -ээс бага байна.
Цагийн уралдаанд хоёрдугаар байр эзэлсэн
Зөвлөмж болгож буй:
RGB LED пиксел сүүдэр: 17 алхам (зурагтай)
RGB LED пиксел сүүдэр: Сайн байцгаана уу, энэ зааварчилгаанд би танд LED пикселийн хос сүүдэр хэрхэн хийхийг зааж өгөх болно. Эхэндээ би эдгээрийг зул сарын баяр / шинэ жилээр байшингийн эргэн тойронд зөөврийн гоёл чимэглэл болгон өмсөх зорилгоор бүтээсэн боловч эцэст нь тэд арай илүү киберпанк болж хувирсан
PIXELCADE - Нэгдсэн пиксел LED дэлгэц бүхий Mini Bartop аркад: 13 алхам (зурагтай)
PIXELCADE - Нэгдсэн пиксел LED дэлгэц бүхий мини бартоп аркада: **** нэгдсэн LED марктай сайжруулсан хувилбар **** энд сонгосон тоглоомтой нийцсэн нэгдсэн LED дэлгэцийн өвөрмөц онцлог бүхий бартоп аркад загвар. Засгийн газрын хажуугийн дүрүүдийн урлаг бол наалт биш лазераар хийсэн шигтгээ юм. Асар том
500 LED-пиксел RGB-тоосго: 9 алхам (зурагтай)
500 LED-пиксел RGB-тоосго: Хэсэг хугацааны өмнө би эдгээр WS2812 LED-ээр 10х10 хэмжээтэй LED-Coffetable бүтээсэн боловч хуучин сургуулийн тоглоом болох Могойг ухаалаг гар утсаараа тоглуулах боломжтой байсан ч би өөр зүйл хүсч байна. Онцгой. Тиймээс би үүнд ахиад хэдэн лед тавихаар шийдлээ, arra
Шилэн зургаан өнцөгт LED пиксел бэхэлгээ: 8 алхам (зурагтай)
Шилэн зургаан өнцөгт LED пиксел бэхэлгээ: NLED хянагч, програм хангамжийн боломжийг харуулах зориулалттай LED пиксел дээр суурилсан урлагийн бүтээл. Гагнасан хүрэл, шилээр хийсэн хог хаягдал гэрэлтүүлгийн эргэн тойронд барьсан бөгөөд магадгүй 70 -аад оны үеийнх. Стандарт APA102 пиксел туузтай хослуулсан нь
Нео пиксел, хамгийн хурдан эрхий хурууны тоглоом: 8 алхам (зурагтай)
Нео пиксел, хамгийн хурдан эрхий хурууны тоглоом. Би Их Британийн Ньюкасл хотод байрлах өөрийн Makerfaire -д зориулан энэхүү төслийг бүтээсэн юм. Сургуулийн хашааны тоглоомыг харьцангуй хямд, үйлдвэрлэхэд хялбар болгох санаа байсан. Санаа нь маш энгийн, ялахын тулд та товчлуураа дарах хүртэл дахин дарах хэрэгтэй