Агуулгын хүснэгт:
Видео: Нарийвчлалтай цаг: 3 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:01
Бидэнд бүгдэд нь цаг хэрэгтэй байдаг тул энэхүү зааварчилгаанд өөрийн цагийг бүү хий, яагаад нарийвчлалтай цаг хийхийг бүх зүйлд цаана нь автоматаар хянаж байх болно. Зөвхөн маш бага хангамж, тэг гагнуур шаардагдана.
Хангамж
Нэгдүгээрт, танд Arduino хэрэгтэй болно, гэхдээ ямар ч Arduino ажиллах болно
Дараа нь танд ерөнхий холбогч утаснуудын төрөл хэрэгтэй болно.
2 12 мм хэмжээтэй Sparkfun товчлуурын унтраалга
Уламжлалт талхны самбар
мөн LCD 1602 16 зүү дэлгэцтэй
Алхам 1: Цахилгааны утас
Энэ цагийг ажиллуулахын тулд та үүнийг маш тодорхой утсаар холбох хэрэгтэй, эс тэгвээс цаг биш харин дэлгэцэн дээр олон тооны санамсаргүй тоонууд гарч ирэх болно.
Алхам 2: Код
Бид RTC ашигладаггүй тул код нь жаахан урт байх болно, гэхдээ талархаж хэлэхэд би танд зориулж бүх шаргуу хөдөлмөрөө хийж, энд өгсөн болно.
Үүнийг Arduino IDE эсвэл вэб засварлагч руу хуулж, буулгана уу.
#"LiquidCrystal.h" -ийг оруулна уу
// Энэ нь LCD утсыг DIGITALpins const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
// Digital LCD Constrast тохиргоо int cs = 9; // тодосгогч 9 -р зүү PWM const int тодосголт = 100; // анхдагч тодосгогч
// Цагийн анхны дэлгэц нь 12:59:45 PM int h = 12; int m = 59; int s = 45; int туг = 1; // PM
// Time Set Buttons int button1; int товчлуур2;
// Цаг тогтоох товчлууруудын зүү тодорхойлох int hs = 0; // цагийн тохиргооны 0 зүү int ms = 1;
// Арын гэрэлтүүлэг Time Out const int Time_light = 150; int bl_TO = Цагийн гэрэл; // Арын гэрэлтүүлэг дууссан int bl = 10; // Арын гэрэлтүүлэг pin const int гэрэлтүүлэг = 120; // 7mA -аас хэтрэхгүй !!!
// Цагийг үнэн зөв уншихын тулд Arduino Real Time Clock -ийг ашиглаарай, зүгээр л () static uint32_t last_time, now = 0; // RTC
void setup () {lcd.begin (16, 2); pinMode (hs, INPUT_PULLUP); // Button 1 pinMode (ms, INPUT_PULLUP); // ба Button 2 analogWrite (cs, kontrast); // Contrast VO analogWrite (bl, backlight) -ийг тохируулах гадаад татах эсэргүүцэлээс зайлсхий Арын гэрэлтүүлэг дээр одоо = millis (); // RTC анхны утгыг уншина уу}
void loop () {lcd.begin (16, 2); // секунд тутамд // LCD дэлгэцийг шинэчлэх // Цагийг Цаг, Мин, Сек + AM/PM -д хэвлэх lcd.setCursor (0, 0); lcd.print ("Цаг"); if (h <10) lcd.print ("0"); // үргэлж 2 оронтой lcd.print (h); lcd.print (":"); хэрэв (m <10) lcd.print ("0"); lcd хэвлэх (м); lcd.print (":"); хэрэв (s <10) lcd.print ("0"); lcd.хэв (ууд);
хэрэв (туг == 0) lcd.print ("AM"); хэрэв (туг == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // 2 -р мөрийн хувьд lcd.print ("Нарийн цаг");
// хоцролтыг орлуулах сайжруулалт (1000) // Илүү нарийвчлалтай, давталтын гүйцэтгэх хугацаанаас хамааралгүй болно
for (int i = 0; i <5; i ++) // 5 цаг 200ms давталт хийх, Товчлуурын хариултыг хурдан болгохын тулд {
while ((now-last_time) <200) // delay200ms {now = millis (); } // дотоод 200ms давталт last_time = одоо; // дараагийн давталтад бэлдэх
// унших Setting Buttons button1 = digitalRead (hs); // Read Buttons button2 = digitalRead (ms);
// Арын гэрлийн хугацаа дууссан bl_TO--; if (bl_TO == 0) {analogWrite (bl, 0); // Арын гэрэлтүүлэг OFF bl_TO ++; } // Хэрэв (((button1 == 0) | (button2 == 0)) & (bl_TO == 1)) {bl_TO = Time_light; analogWrite (bl, арын гэрэл); // ((button1 == 0) | (button2 == 0)) {button1 = digitalRead (hs); // Buttons товчлуурыг унших2 = digitalRead (ms); }} өөр // Процессийн товчлуур 1 эсвэл 2 -р товчлуурыг арын гэрэлтүүлэг асахад {if (button1 == 0) {h = h+1; bl_TO = Цагийн гэрэл; analogWrite (bl, арын гэрэл); }
хэрэв (button2 == 0) {s = 0; m = m+1; bl_TO = Цагийн гэрэл; analogWrite (bl, арын гэрэл); }
/* ---- секунд, минут, цагийг өглөөний/оройн халиаг удирдах ----*/if (s == 60) {s = 0; m = m+1; } хэрэв (m == 60) {m = 0; h = h+1; } бол (h == 13) {h = 1; туг = туг+1; if (туг == 2) туг = 0; }
if ((button1 == 0) | (button2 == 0)) // Цаг тохируулах товчлуур дарагдсан бол дэлгэцийг шинэчлэх {// LCD дэлгэцийг шинэчлэх // Цагийг хэвлэх, мин, сек + AM/PM lcd.setCursor (0, 0); lcd.print ("Цаг"); if (h <10) lcd.print ("0"); // үргэлж 2 оронтой lcd.print (h); lcd.print (":"); хэрэв (m <10) lcd.print ("0"); lcd хэвлэх (м); lcd.print (":"); хэрэв (s <10) lcd.print ("0"); lcd.хэв (ууд);
хэрэв (туг == 0) lcd.print ("AM"); хэрэв (туг == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // 2 -р мөрийн хувьд lcd.print ("Нарийн цаг"); }
} // төгсгөл бол өөр} // төгсгөл
// гаднах 1000 мс гогцоо
s = s+1; // өсөлт сек. тоолох // ---- секунд, минут, цагийг өглөөний/үерийн хэтрэлтийг удирдах ---- if (s == 60) {s = 0; m = m+1; } хэрэв (m == 60) {m = 0; h = h+1; } бол (h == 13) {h = 1; туг = туг+1; if (туг == 2) туг = 0; }
// Давталтын төгсгөл}
Алхам 3: Схем (энэ нь үнэхээр алхам биш юм)
Хэрэв үүнийг уншиж байгаа хүн бол технологийн мэргэжилтэн юм бол энд байгаа схемийг та харж болно.
Хөгжилтэй, хөгжилтэй байж, хамгийн гол нь шинэлэг байгаарай.
Зөвлөмж болгож буй:
Өндөр нарийвчлалтай давтамжийн тоолуур: 5 алхам (зурагтай)
Өндөр нарийвчлалтай давтамжийн тоолуур: Энэхүү зааварчилгаа нь давтамжийг хурдан, боломжийн нарийвчлалтай хэмжих чадвартай харилцан давтамжийн тоолуурыг харуулдаг. Энэ нь стандарт бүрэлдэхүүн хэсгүүдээр хийгдсэн бөгөөд үүнийг амралтын өдрүүдэд хийх боломжтой (надад жаахан удсан :-)) EDIT: Код одоо бэлэн боллоо
Waveshare E-бэх дэлгэцийн нарийвчлалтай вольтметр (0-90v DC) Arduino Nano-той: 3 алхам
Waveshare E-ink Display Precision Voltmeter (0-90v DC) Arduino Nano-той: Энэхүү зааварт би 90 хүртэлх нарийвчлалтай хүчдэлийг харуулахын тулд Arduino Nano, хүчдэл хуваагч, ADS1115 бүхий 2.9 инчийн Waveshare цахим цаасан дэлгэцийг ашигладаг. Цахим цаасан дэлгэц дээрх DC вольт. Энэхүү зааварчилгаа нь өмнөх хоёр төслийг хослуулсан:- Ardui
Arduino нарийн ба нарийвчлалтай вольт тоолуур (0-90V DC): 3 алхам
Arduino Precise & Accutate Volt Meter (0-90V DC): Энэхүү зааварчилгаанд би Arduino Nano ашиглан өндөр хүчдэлийн тогтмол гүйдлийг (0-90v) харьцангуй нарийвчлалтай, нарийвчлалтай хэмжих вольтметрийг бүтээсэн. Миний авсан туршилтын хэмжилтүүд хангалттай нарийвчлалтай байсан бөгөөд ихэвчлэн хүчдэлийн 0.3 в -ийн хооронд хэмжигддэг
3d хэвлэсэн төгсгөлийн тоглоомын нуман реактор (киног нарийвчлалтай, өмсөх боломжтой): 7 алхам (зурагтай)
3d хэвлэмэл төгсгөлийн тоглоомын нуман реактор (киног нарийвчлалтай, өмсөх боломжтой): Youtube -ийн бүрэн заавар: Марк 50 нуман реактор/нано хэсгүүдэд зориулагдсан тусгай 3D киног би олж чадаагүй тул найзтайгаа хамт хэдэн чихэрлэг хоол хийсэн. Энэ зүйлийг нарийвчлалтай, гайхалтай харагдуулахын тулд маш олон удаа засвар хийх шаардлагатай болсон
Java (+-1s) ашиглан DS3231 RTC (Бодит цагийн цаг) -ыг нарийвчлалтай, хурдан, автоматаар тохируулах: 3 алхам
Java (+-1s) ашиглан DS3231 RTC (Бодит цагийн цаг) -ыг нарийвчлалтай, хурдан, автоматаар тохируулах: Энэхүү заавар нь Arduino болон жижиг Java програмыг ашиглан DS3231 бодит цагийн цагийг хэрхэн тохируулахыг танд үзүүлэх болно. Arduino -ийн цуваа холболт Энэ програмын үндсэн логик: 1. Arduino цуврал хүсэлт илгээдэг