Агуулгын хүснэгт:
- Алхам 1: эд анги, модны ажлыг цуглуулах
- Алхам 2: Нийлэг дугуйлан
- Алхам 3: Гагнах
- Алхам 4: Код
- Алхам 5: Данийн тос
Видео: Иш цаг: 5 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Би ихэвчлэн юу хийхээ мэдэхгүй байгаа зүйлийг худалдаж авдаг. Энэхүү төсөл нь 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: Данийн тос
Эцсийн бөгөөд нэмэлт алхам бол модонд Данийн тос түрхэх явдал юм. Энэ нь үр тариа хэрхэн гаргаж авч байгаа нь үнэхээр таалагдаж байгаа бөгөөд толбо, чийгээс хамгаалдаг. Тиймээс би үүнийг маш их зөвлөж байна.
Та үүнийг угааж болно, эсвэл би хуучин даавуугаар арчиж арчих болно.
Одоо үлдсэн зүйл бол үүнийг залгаж, таашаал авах явдал юм.
Зөвлөмж болгож буй:
Цаг хэмжих (соронзон хальсны цаг): 5 алхам (зурагтай)
Цаг хэмжих (соронзон хальсны хэмжих цаг): Энэхүү төслийн хувьд бид (Алекс Фиел & Анна Линтон) өдөр тутмын хэмжих хэрэгслийг аваад цаг болгон хувиргасан. Анхны төлөвлөгөө нь одоо байгаа соронзон хальсны хэмжүүрийг моторжуулах явдал байв. Үүнийг хийхдээ бид өөрсдийнхөө бүрхүүлийг бүтээхэд илүү хялбар байх болно гэж шийдсэн
NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн: 8 алхам (зурагтай)
NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн: 1 жилийн турш 2 өөр байршилд амжилттай ажилласны дараа би нарны эрчим хүчээр ажилладаг цаг уурын станцын төслийн төлөвлөгөөгөө хуваалцаж, хэрхэн урт хугацаанд үнэхээр оршин тогтнож чадах систем болж хөгжсөн тухай тайлбарлаж байна. нарны эрчим хүчнээс үүссэн үе. Хэрэв та дагах бол
Түрлэг ба цаг агаарын цаг: 9 алхам (зурагтай)
Түрлэг ба цаг агаарын цаг: Хэдийгээр та далайн түрлэг өндөр эсвэл нам, эсвэл хаа нэгтээ байгаа эсэхийг харуулдаг цорын ганц гартай аналог цаг худалдаж авах боломжтой боловч миний хүсч байсан зүйл бол далайн түрлэг ямар үед болохыг хэлж өгөх байсан юм. Би q руу харах боломжтой зүйлийг хүсч байсан
ESP8266 ашиглан сүлжээний цаг дижитал цаг: 4 алхам (зурагтай)
ESP8266 ашиглан сүлжээний цагийн дижитал цаг: Бид NTP серверүүдтэй холбогддог, сүлжээ эсвэл интернетийн цагийг харуулдаг хөөрхөн бяцхан дижитал цаг бүтээх талаар суралцдаг. WeMos D1 mini -ийг ашиглан WiFi сүлжээнд холбогдож, NTP цагийг олж, OLED модуль дээр харуулна
WiFi цаг, таймер, цаг агаарын станц, Блинк хяналттай: 5 алхам (зурагтай)
WiFi цаг, таймер, цаг агаарын станц, Блинк хяналттай: Энэ бол Морфин дижитал цаг (ойлголт, кодын хувьд Хари Вигунагийн ачаар) бөгөөд энэ нь аналог цаг, цаг агаарын мэдээ, гал тогооны цаг хэмжигч юм. Ухаалаг гар утсан дээрээ WiFi -ээр Blynk програм. Энэхүү програм нь танд