Агуулгын хүснэгт:

Неопиксел ашигладаг LED цаг: 4 алхам (зурагтай)
Неопиксел ашигладаг LED цаг: 4 алхам (зурагтай)

Видео: Неопиксел ашигладаг LED цаг: 4 алхам (зурагтай)

Видео: Неопиксел ашигладаг LED цаг: 4 алхам (зурагтай)
Видео: Камера-ЛАМПА со слежением и определением человека. 2024, Арваннэгдүгээр
Anonim
Неопиксел ашигладаг LED цаг
Неопиксел ашигладаг LED цаг
Неопиксел ашигладаг LED цаг
Неопиксел ашигладаг LED цаг
Неопиксел ашигладаг LED цаг
Неопиксел ашигладаг LED цаг
Неопиксел ашигладаг LED цаг
Неопиксел ашигладаг LED цаг

60 неопиксел ашиглан LED цагийг хэрхэн яаж хийх тухай миний зааварчилгаанд тавтай морилно уу.

Та 3 PDF хавсаргасан файлыг нэг цагийн сегментэд, нөгөө нь сууринд, сүүлд нь нэг хэсгийг наахад туслах загвар болохыг олж мэдэх болно.

Тиймээс үүнийг дуусгахын тулд танд дараахь зүйл хэрэгтэй болно

  • 60 неопикселийн цагираг нь 4 улиралд ирдэг. "ws2812 бөгж 60" хайх (£ 12.00)
  • RTC хайлт "DS3231 модуль" (£ 2.50)
  • Ардуино Нано (4 фунт стерлинг)
  • 3 мм/1/8 "фанер.
  • утас ширхэг. Та эргэн тойрондоо жаахан байх болно гэж найдаж байна уу?
  • 5V USB тэжээлийн хангамжийн нэгж. Таны хүүхдүүд холбогчийг устгах болно.

Lipo батерейгаар ажилладаг эд зүйлсийг доор харуулав, гэхдээ туршилт хийсний дараа цаг хэт их эрчим хүч зарцуулсан тул батерейг цахилгаан тэжээлийн USB PSU -ийн оронд унагав.

  • dc-dc хөрвүүлэгч хайлт "хөрвүүлэгчийг нэмэгдүүлэх" (3 фунт стерлинг)
  • Цэнэглэх хэлхээ TP4056 хайлт "tp4056" (2 фунт стерлинг)
  • LiPo 1000Mah нэг эс. "1000mah lipo 3.7" OR "503450 lipo" (8.00 фунт стерлинг) хайх

LiPo дугаар нь 503450 бөгөөд энэ нь 50мм урт 34мм өргөн, 5.0 гүнтэй гэсэн үг гэдгийг мэдэхэд таатай байх болно.

Алхам 1: Модон битүүд

Модон битүүд
Модон битүүд
Модон битүүд
Модон битүүд
Модон битүүд
Модон битүүд

Та зураг дээр миний дизайныг хэвлээд фанер дээр наасан байгааг харах боломжтой байх ёстой. Тодорхой биш байж болох зүйл бол би 3 хэсгийг нэг дор хайчилж, доод хэсгийг нь эхлээд периметрийн эргэн тойронд хайчилж, дараа нь нэг хэсгийг нь (ар талаас) аваад дараа нь үлдсэн хоёр хэсэгт нүхийг хайчилж, дараа нь өөр хэсгийг нь таслав. зөвхөн урд талын хэсгийг үлдээгээд утсыг нь таслав.

Бүх хэсгүүдийг хайчилж авсны дараа та эхлээд хоорондоо хэрхэн нийцэж байгааг шалгаж, дараа нь бүгдийг нь нааж болно. Би бүх зүйлийг зөв тойрог хэлбэртэй болгохын тулд цагийн төлөвлөгөөний дээр 3 давхаргыг бүтээсэн. Доод талын хэсгүүдийг зөв чиглүүлж, дунд хэсгийг нь доош нь харуулан байрлуулсан байх ёстой.

Урд талын хэсгүүдийн нүхнүүд нь дөрөвний нэг хэсэгт гагнасан үеийг суулгах боломжийг олгодог бөгөөд доод хэсэг нь утас дамжин өнгөрөх боломжийг олгодог.

Цуврал зургууд нь мөн суурийг хэрхэн яаж нэгтгэж байгааг харуулдаг.

Алхам 2: LED бөгжийг холбоно уу

LED бөгжийг холбож байна
LED бөгжийг холбож байна
LED бөгжийг холбож байна
LED бөгжийг холбож байна
LED бөгжийг холбож байна
LED бөгжийг холбож байна
LED бөгжийг холбож байна
LED бөгжийг холбож байна

Энэ алхамын талаар нэг их хэлэх зүйл алга, гэхдээ хэрэв та WS2812LED -ийн туузыг ашиглаагүй бол тэд ухаалаг тул хүн бүр оролт, өгөгдөлтэй байдаг. 15 LED -ийн нуман дээр ПХБ нь бүх холболтыг зохицуулдаг, гэхдээ та хэсгүүдэд нэгдэх үед та тэжээлийн холболт, өгөгдлийг хийх ёстой. Тэдгээр нь тойрог дотор байгаа тул та холболтыг буруу авч чадахгүй, гэхдээ тойрог дууссаны дараа та IN/OUT өгөгдөл дээр нэг холбоос дутагдаж, утсыг өгөгдөлд оруулах боломжийг олгоно. Утаснууд нь өгөгдөлд холбогдсон тохиолдолд IN нь анхны LED буюу тэг гэж зөв дугаарласан болно.

LED бөгжийг модон цагирган дээр яаж засах нь хамгийн сайн арга байсан гэж би гайхаж байсан. Гэхдээ эцэст нь би тойрог орчимд уяа, уяа сойз ашиглахаар шийдэж, LED асаах болгондоо л шийдсэн.

Алхам 3: Arduino Nano ба Power -ийг холбох

Arduino Nano ба Power -ийг холбож байна
Arduino Nano ба Power -ийг холбож байна
Arduino Nano ба Power -ийг холбож байна
Arduino Nano ба Power -ийг холбож байна
Arduino Nano ба Power -ийг холбож байна
Arduino Nano ба Power -ийг холбож байна

Би анх энэ төсөл дээр LiPo ашиглахаар шийдсэн боловч туршиж үзэхэд батерей нь нэг шөнийн дотор дууссан. Эхэндээ би батерей нь цэнэггүй байсан гэж бодсон тул гүйдлийг хэмжиж, хэлхээ нь 73 мА зурж байгааг олж мэдсэн нь батерейны хувьд илүү их байх болно гэсэн үг юм. Үнэн хэрэгтээ би батерей дахь гүйдлийг хэмжиж (хүчдэл хувиргагчийн өмнө) 110 мА -аас дээш болохыг олж мэдэв. Тиймээс энэ цаг нь батерейгаар ажиллахгүй нь тодорхой байв.

Үүний оронд би 5V USB цэнэглэгч ашиглахаар шийдсэн. Холбогч хоёр бяцхан хүүхдээс хүчирхийлэлд өртсөний улмаас би маш их үхсэн USB цэнэглэгчтэй байдаг.

Тиймээс бид WS2812 LED -ийг ашиглаж байгаа тул Arduino Nano -той 3 холболттой байна.

  • Эрчим хүч
  • Газар
  • Өгөгдөл IN. Nano дээр D2 хүртэл улбар шар өнгөтэй

Дараа нь бид RTC -тэй бөгөөд энэ нь зөвхөн 4 утастай.

  • Эрчим хүч 5 вольт
  • Газар
  • Нано дээрх SCL (I2C цаг) цэнхэрээс A5 хүртэл
  • SDA (I2C өгөгдөл) нано дээрх А4 -аас шар өнгөтэй

Эцэст нь бидэнд хүч хэрэгтэй бөгөөд энэ нь Нано дээрх 5 В-ийн хүчдэлийн терминал руу ордог.

Алхам 4: Хөтөлбөр

Би програмчлалд үнэхээр дуртай, би тийм ч сайн биш.

Асуудал 1

Секунд, минутыг 0-59 хүртэлх тоог зөв оруулсан болно. Гэсэн хэдий ч эхний LED, тэг тэгээс доод талд байна. Тиймээс үүнийг засах шаардлагатай байсан.

хүчингүй зөвPos (int A)

{хэрэв (A 30) {A = A - 31; }} температур = A; }

Асуудал 2

Шинэ байрлалыг харуулахаасаа өмнө би бүх LED -ийг цэвэрлэхийг оролдсон боловч энэ нь LED анивчихад хүргэсэн. Тиймээс би дараагийн LED -ийг асааж, дараа нь өмнөх гэрлийг унтраахаар шийдсэн. Энэ зүгээр сайн ажилласан уу ?? Үгүй, учир нь хэрэв шинэ байрлал тэг байсан бол -1 -ийг унтраах болно. Тиймээс үүнийг нэгэн зэрэг шийдсэн.

void delete Өмнөх (int B)

// өмнөх удирдамжийг устгаарай, хэрэв тэг байсан бол // унтраана уу 59 өөр 1 -ийг хасна уу. {if (B == 0) {strip.setPixelColor (59, 0, 0, 0); // Бүгд унтраалттай} өөр {strip.setPixelColor (B - 1, 0, 0, 0); // бүгд унтраалттай}}

Асуудал 3

Дээрх зүйлийг хийх нь шинэ минутын хоёр дахь байрлал хуучин минутын оронд байх хүртэл үнэхээр сайн ажилласан. Энэ нь секундын дараа шинэчлэгдсэн минут унтарсан гэсэн үг юм! Цаг/минутын хувьд ч мөн адил

хэрэв (секунд == мин-1)

{strip.setPixelColor (мин-1, 0, 30, 0); }

Асуудал 4

Бүх зүйл сайхан харагдаж эхэлж байгаа тул ижил байрлалд унах үед өнгийг нь хольж үзье?

хэрэв (мин == сек)

{strip.setPixelColor (мин, 15, 13, 0); // ногоон, улаан өнгийг шар болгох. }

Асуудал 5

Цаг нь 24 цагийн форматаар эхэлдэг. Тиймээс үүнийг эхлээд засах шаардлагатай байна

хэрэв (цаг> 12)

{цаг = цаг -12; }

Асуудал 6

Өдөрт 24 цаг байдаг бөгөөд 60 LED байдаг гэдгийг мартаж болохгүй. Үнэхээр 5 -аар үржүүлдэг

цаг = цаг * 5;

Асуудал 7

Дээр дурдсаныг хийсний дараа бид 4 LED -тэй үсрэх боломжтой болсон, хэрэв бүх LED -ийг ашиглаж, нэг цагийн бутархайг зөв харуулсан бол хамаагүй дээр байх болов уу? Дахин хэлэхэд энэ бол хялбар засвар байсан бөгөөд би анхны минутны тоог 12 -д хуваасан тоог нэмсэн.

цаг = цаг + (addMin/12);

Асуудал 8

Цаг эсвэл минутын удирдамж доод талд байх үед секундын өмнө нэг секундын турш алга болно.

цаг = хэрэв (мин == 0)

{if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // green}} if (hours == 0) {if (secs == 59) {strip.setPixelColor (59, 0), 30, 0); // ногоон}}

Асуудал 9

Цагийг тохируулж байна. Би энэ бүтцийг маш энгийн байлгахаар шийдсэн тул цагийг тохируулах товчлуурыг оруулаагүй болно. Тиймээс цагийг компьютерт холбож, шинэ цаг ачаалах л үлдлээ. Зүгээр л доорх хэсгийг тайлж, шаардлагатай хугацааг тохируулаад програмыг ачаална уу. Мөрийг зөв тайлбарлаж, програмыг дахин илгээсэн тохиолдолд, хэрэв та хүч алдвал тохиргоог дахин эхлүүлж, хуучин цагийг дахин ачаална.

// 2020 оны 4 -р сарын 12 -ны 23:20 цагт та дараах утас руу залгах болно.

//rtc.adjust(DateTime(2020, 4, 12, 23, 20, 0));

Зөвлөмж болгож буй: