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

Иш цаг: 5 алхам (зурагтай)
Иш цаг: 5 алхам (зурагтай)

Видео: Иш цаг: 5 алхам (зурагтай)

Видео: Иш цаг: 5 алхам (зурагтай)
Видео: НЕГАТИВНАЯ РЕАКЦИЯ / РАЗОБЛАЧЕНИЕ ПЕВЦА / ДИМАШ и ПОНАСЕНКОВ 2024, Долдугаар сарын
Anonim
Image
Image
Эд анги цуглуулах, модон эдлэл хийх
Эд анги цуглуулах, модон эдлэл хийх

Би ихэвчлэн юу хийхээ мэдэхгүй байгаа зүйлийг худалдаж авдаг. Энэхүү төсөл нь 12x WS2812b LED асаалттай бөгж худалдаж авсны үр дүн юм. Надад энэ талаар ямар ч төлөвлөгөө байгаагүй, гэхдээ энэ нь онлайнаар дажгүй харагдаж байсан тул би тэргээ нэг машинд хийчихээд ирэхэд нь тоглож байгаад бүгдийг нь мартсан.

Хэсэг хугацааны дараа би цаг хийх талаар бодож байхдаа юу ч хийхгүй сууж байснаа санажээ. Би 60 LED -тэй хоёр дахь бөгж худалдаж авах тухай бодож байсан боловч дараа нь бид цагийг хэрхэн харж, 5 минутын нарийвчлалтай эргүүлэх талаар бодож эхлэв.

Үүнийг ашиглан би 12 LED цагирагтайгаа ажил хийх цагийг бүтээв. Энэ нь 1 LED -ийг 1 секундын турш харуулдаг бөгөөд энэ нь цагийг (Цэнхэр LED), дараа нь минутуудыг (Улаан LED) доош нь харуулна.

Алхам 1: эд анги, модны ажлыг цуглуулах

Эд анги цуглуулах, модон эдлэл хийх
Эд анги цуглуулах, модон эдлэл хийх
Эд анги цуглуулах, модон эдлэл хийх
Эд анги цуглуулах, модон эдлэл хийх
Эд анги цуглуулах, модон эдлэл хийх
Эд анги цуглуулах, модон эдлэл хийх

Би нэг өдөр ажил дээрээ ирээд нэг тавиур олж харсан нь үнэхээр азтай хэрэг байлаа. Энэ тавиур нь тээрмийн тавиур дээр ажилладаг стандарт шиг биш байсан тул надад наалджээ. Энэ нь цэвэрхэн, дулаанаар боловсруулсан, хамгийн ер бусын хатуу царс байв.

Энэхүү төсөл нь уг тавиурын нэг хэсгээс хийгдсэн болно. (Би гэртээ харихаасаа өмнө даргаас нь асуусан)

Мөн ашигласан:

  • 12 пикселийн w282812b LED цагираг
  • Бодит цагийн цаг (RTC) модуль (I2C бүхий DS3231 ашиглаж байна)
  • Arduino Nano v3.0 нийцтэй
  • Нийлэг хуудас (5 мм)
  • Өнгөт утас

Багаж хэрэгсэл

  • Цахилгаан өрөм
  • Чиглүүлэгч
  • Тохируулах боломжтой хавтгай модон бит
  • Цахилгаан нунтаглагч
  • Гар хөрөө
  • Гагнуурын төмөр
  • Халуун цавуу буу
  • Элсний цаас
  • Данийн тос

Зүлгүүр

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

Нүхийг тэмдэглэх, огтлох

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

Чиглүүлэлт ба кабелийн нүх

Би чиглүүлэгчээ 12 мм бит ашиглан RTC болон Arduino -г нуухын тулд блокны доод хэсэгт завсарлага гаргав. Түүний гүн нь ойролцоогоор 15 мм бөгөөд аль ч ирмэгээс 5 мм -ээс багагүй байна. Би төвийг (иш) доод талаас нь тэмдэглээд, 10 мм -ийн зүсэлтийг дөнгөж хагас хагасын дараа өрөмдөж, LED утсыг зөвшөөрсөн. Дараа нь 5 мм -ийн бит ашиглан би LED завсарлагааны төвөөс өрөмдөж, 10 мм -ийн нүхийг доороос нь бөглөсөн.

Цахилгаан орж ирэхийн тулд арын 4 мм -ийн нүхийг нэмж, жижиг чиглүүлэгчийг ашиглан LED цагирагны ар талд байгаа утаснуудын суваг хийж, модон ажлыг хийж гүйцэтгэнэ.

Алхам 2: Нийлэг дугуйлан

Нийлэг дугуйлан
Нийлэг дугуйлан
Нийлэг дугуйлан
Нийлэг дугуйлан
Нийлэг дугуйлан
Нийлэг дугуйлан

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

Энэ нь яг тохирох хүртэл туршилт, алдааны удаан бөгөөд уйтгартай үйл явц байсан боловч эцсийн үр дүн нь үнэ цэнэтэй байсан гэж бодож байна. Акрилийн урд хэсгийг царцсан харагдуулахын тулд маш нарийн ширхэгтэй цаас ашиглаж дуусгалаа.

Алхам 3: Гагнах

Гагнах
Гагнах
Гагнах
Гагнах
Гагнах
Гагнах
Гагнах
Гагнах

Би тохиолдуулан утсандаа өнгөний системийг ашиглах дуртай.

  • Эрчим хүчний улаан (5v)
  • Газарт зориулсан цагаан
  • Мэдээллийн хувьд шар
  • Цагны ногоон

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

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

RTC

  • SCL (Цаг) аналог Pin 5 руу
  • SDA (өгөгдөл) 4 -р аналог пин рүү
  • VCC - 5V хүртэл
  • Arduino дээрх GND руу GND

LED бөгж

Din to Digital Pin 6

Надад хуучин USB кабель өлгөөтэй байсан тул үүнийг ашиглан цагийг ажиллуулахаар шийдсэн. Би ямар нэгэн зүйлд холбогдож буй үзүүрийг тасдаж, арын нүхээр түлхэв. Дараа нь VCC -ийг Arduino -д, LED цагиргийг эерэг тал руу, Arduino -аас LED -ийг Газар руу гагнахын өмнө үзүүрийг нь хуулж, нарийн хий. Хожим нь би бага зэрэг халж, сайхан харагдаж байв.

Халуун цавуу буу бүх зүйлийг барьж байхын тулд буцаж гарч ирэв. Би Arduino -г орхиж тоглохоор шийдсэн тул ирээдүйд USB порт руу нэвтрэх боломжтой болно, гэхдээ тийм ч их унахгүй.

Алхам 4: Код

Та одоо энэ кодыг Arduino руу байршуулах боломжтой байх ёстой.

Хэрэв RTC энэ кодыг ажиллуулахгүй байгаа бол кодыг эмхэтгэсэн хугацааг үндэслэн цагийг тохируулах тул байршуулах товчлуурыг дараад баталгаажуулахгүй байхыг анхаарна уу.

Энэ нь цагийг тохируулахад маш сайн ажилладаг.

www.instructables.com/id/Setting-the-DS130…

Энэ кодын ихэнхийг би Adafruit NeoPixel номын сангаас зээлж авсан бөгөөд заримыг нь RTC номын сангаас олж авсан бөгөөд заримыг нь би өөрөө хийсэн.

// номын сангийн кодыг оруулна уу: #include

#оруулах

#оруулах

// тээглүүрийг тодорхойлох

#PIN 6 тодорхойлох

#BRIGHTNESS 20 -ийг тодорхойлох // хамгийн их тод байдлыг тохируулах

#тодорхойлох r 5

#тодорхойлох g 5

#тодорхойлох b 5

RTC_DS3231 rtc; // Цагийн объект бий болгох

Adafruit_NeoPixel зурвас = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // зурвасын объект

хүчингүй тохиргоо () {

Wire.begin (); // I2C эхэлнэ

rtc.begin (); // эхлэх цаг

Цуваа эхлэх (9600);

// pinmodes тохируулах

pinMode (PIN, OUTPUT);

if (rtc.lostPower ()) {

Serial.println ("RTC хүчээ алдсан, цагийг тохируулцгаая!");

// Дараах мөр нь RTC -ийг энэхүү ноорог эмхэтгэсэн огноо, цагт тохируулна

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))));

// Энэ мөр нь RTC -ийг тодорхой огноо, цаг, жишээлбэл тохируулахаар тохируулдаг

// 2014 оны 1 -р сарын 21 -ний 3 цагт та дараахь утсаар ярих болно.

// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0));

}

strip.begin ();

strip.show (); // Бүх пикселийг "унтраах" болгож эхлүүлэх

DateTime theTime = rtc.now (); // DST -ийг харгалзан үздэг

байт секундын утга = theTime.second (); // секунд авах

минут байт = theTime.minute (); // минут авах

int hourval = theTime.hour ();

цэг (зурвас Өнгө (0, g, 0), 50);

}

void loop () {

// цаг авах

DateTime theTime = rtc.now (); // DST -ийг харгалзан үздэг

int minuteval = theTime.minute (); // минут авах

int hourval = theTime.hour (); // цаг авах

int secondval = theTime.second ();

хэрэв (минут 0) {

strip.setPixelColor (0, r, 0, 0);

strip.show ();}

өөр бол (минутын <= 9) {

strip.setPixelColor (1, r, 0, 0);

strip.show ();}

өөр бол (минутын <= 14) {

strip.setPixelColor (2, r, 0, 0);

strip.show ();}

өөр бол (минутын <= 19) {

strip.setPixelColor (3, r, 0, 0);

strip.show ();}

өөр бол (минутын <= 24) {

strip.setPixelColor (4, r, 0, 0);

strip.show ();}

өөр бол (минутын <= 29) {

strip.setPixelColor (5, r, 0, 0);

strip.show ();}

өөр бол (минутын <= 34) {

strip.setPixelColor (6, r, 0, 0);

strip.show ();}

өөр бол (минут <= 39) {

strip.setPixelColor (7, r, 0, 0);

strip.show ();}

өөр бол (минутын <= 44) {

strip.setPixelColor (8, r, 0, 0);

strip.show ();}

өөр бол (минутын <= 49) {

strip.setPixelColor (9, r, 0, 0);

strip.show ();}

өөр бол (минутын <= 54) {

strip.setPixelColor (10, r, 0, 0);

strip.show ();}

өөр бол (минутын <= 59) {

strip.setPixelColor (11, r, 0, 0);

strip.show ();}

саатал (1000);

for (int i = 0; i <12; i ++) {

strip.setPixelColor (i, 0, 0, 0);

strip.show ();

}

хэрэв (цагийн хуваарь == 0) {

strip.setPixelColor (0, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 1) {

strip.setPixelColor (1, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 2) {

strip.setPixelColor (2, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 3) {

strip.setPixelColor (3, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 4) {

strip.setPixelColor (4, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 5) {

strip.setPixelColor (5, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 6) {

strip.setPixelColor (6, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 7) {

strip.setPixelColor (7, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 8) {

strip.setPixelColor (8, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 9) {

strip.setPixelColor (9, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 10) {

strip.setPixelColor (10, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 11) {

strip.setPixelColor (11, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 12) {

strip.setPixelColor (0, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 13) {

strip.setPixelColor (1, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 14) {

strip.setPixelColor (2, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 15) {

strip.setPixelColor (3, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 16) {

strip.setPixelColor (4, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 17) {

strip.setPixelColor (5, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 18) {

strip.setPixelColor (6, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 19) {

strip.setPixelColor (7, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 20) {

strip.setPixelColor (8, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 21) {

strip.setPixelColor (9, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 22) {

strip.setPixelColor (10, 0, 0, b);

strip.show ();}

өөр бол (цагийн хуваарь == 23) {

strip.setPixelColor (11, 0, 0, b);

strip.show ();}

саатал (1000);

for (int i = 0; i <12; i ++) {

strip.setPixelColor (i, 0, 0, 0);

strip.show ();

}

// цуврал дибаг хийх зориулалттай

Цуваа.хэвлэх (цагийн хуваарь, DEC);

Serial.print (':');

Цуваа.хэвлэх (хамгийн сүүлийн үеийн, DEC);

Serial.print (':');

Serial.println (secondval, DEC);

}

хүчингүй цэг (uint32_t c, uint8_t хүлээх) {

for (int j = 0; j <3; j ++) {

for (int i = 0; i <12; i ++) {

strip.setPixelColor (i, c);

strip.show ();

хойшлуулах (хүлээх);

for (int i = 0; i <12; i ++) {

strip.setPixelColor (i, 0, 0, 0);

strip.show ();}

}

}

}

Алхам 5: Данийн тос

Данийн тос
Данийн тос
Данийн тос
Данийн тос
Данийн тос
Данийн тос
Данийн тос
Данийн тос

Эцсийн бөгөөд нэмэлт алхам бол модонд Данийн тос түрхэх явдал юм. Энэ нь үр тариа хэрхэн гаргаж авч байгаа нь үнэхээр таалагдаж байгаа бөгөөд толбо, чийгээс хамгаалдаг. Тиймээс би үүнийг маш их зөвлөж байна.

Та үүнийг угааж болно, эсвэл би хуучин даавуугаар арчиж арчих болно.

Одоо үлдсэн зүйл бол үүнийг залгаж, таашаал авах явдал юм.

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