תוכן עניינים:
וִידֵאוֹ: שעון דיוק: 3 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:13
כולנו זקוקים לשעונים אז למה שלא תכינו בעצמכם במדריך הזה אני הולך להראות לכם איך להכין שעון מדויק ברגע שתגדירו יעקוב אחר הזמן הנוכחי ברקע של הכל באופן אוטומטי. למרות שצריך רק מעט מאוד אספקה ואפס הלחמות.
אספקה
ראשית, תזדקק לארדואינו אך כל ארדואינו יעבוד
לאחר מכן, תזדקק למבחר חוטי מגשר כלליים.
2 מתגי לחיצת כפתורים 12 מ מ
לוח לחם מסורתי
ותצוגת 16 160 פינים LCD 1602
שלב 1: חיווט
כדי שהשעון הזה יעבוד אתה צריך לחבר את זה בצורה מאוד ספציפית אחרת תקבל חבורה של מספרים אקראיים על המסך ולא על הזמן.
שלב 2: הקוד
מכיוון שאיננו משתמשים ב- RTC, הקוד יהיה מעט ארוך אך למרבה המזל עשיתי עבורך את כל העבודה הקשה וסיפקתי אותו כאן.
פשוט העתק והדבק אותו ב- IDE של Arduino או בעורך האינטרנט.
#כלול "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 Constrast LCD int cs = 9; // pin 9 עבור ניגודיות PWM const int contrast = 100; // ניגודיות ברירת מחדל
// תצוגת השעה הראשונית היא 12:59:45 PM int h = 12; int m = 59; int s = 45; int flag = 1; //אחר הצהריים
// כפתורי הגדרת זמן int כפתור 1; int button2;
// הגדרת סיכות לכפתורי Set Time int hs = 0; // pin 0 להגדרת שעות int ms = 1; // pin 1 להגדרת דקות.
// פסק זמן תאורה אחורית const int Time_light = 150; int bl_TO = Time_light; // פסק זמן תאורה אחורית int bl = 10; // תאורה אחורית סיכת const int תאורה אחורית = 120; // לא יותר מ 7mA !!!
// לקריאת זמן מדויקת, השתמשו בשעון בזמן אמת של Arduino ולא רק עיכוב () uint32_t סטטי בזמן האחרון, עכשיו = 0; // RTC
הגדרת חלל () {lcd.begin (16, 2); pinMode (hs, INPUT_PULLUP); // הימנעו מנגדי Pullup חיצוניים עבור לחצן 1 pinMode (ms, INPUT_PULLUP); // ולחצן 2 analogWrite (cs, contrast); // התאם ניגודיות VO analogwrite (bl, תאורה אחורית); // סובב על תאורה אחורית עכשיו = מיליס (); // קרא ערך התחלתי של RTC}
לולאת void () {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 (":"); if (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); אם (s <10) lcd.print ("0"); lcd.print (ים);
if (flag == 0) lcd.print ("AM"); if (flag == 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 = עכשיו; // להתכונן ללולאה הבאה
// כפתור הגדרת לחצני קריאה 1 = digitalRead (hs); // לחצן Read Buttons2 = digitalRead (ms);
// פסק זמן תאורה אחורית bl_TO--; אם (bl_TO == 0) {analogWrite (bl, 0); // תאורה אחורית כבויה bl_TO ++; } // הקש על כל אחד כדי להפעיל תאורה אחורית אם (((button1 == 0) | (button2 == 0)) & (bl_TO == 1)) {bl_TO = Time_light; analogWrite (bl, תאורה אחורית); // המתן עד שהכפתור ישוחרר בזמן ((כפתור 1 == 0) | (כפתור 2 == 0)) {כפתור 1 = digitalRead (hs); // לחצן קריאת כפתורים 2 = digitalRead (ms); }} else // עיבוד כפתור 1 או לחצן 2 כאשר מכה אותו בזמן שתאורה אחורית מופעלת {if (button1 == 0) {h = h+1; bl_TO = אור_זמן; analogWrite (bl, תאורה אחורית); }
אם (כפתור 2 == 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; אם (דגל == 2) דגל = 0; }
אם ((כפתור 1 == 0) | (כפתור 2 == 0)) // עדכון תצוגה אם לחצן הגדרת הזמן נלחץ {// עדכן תצוגת LCD // הדפס זמן בשעה, דקות, שניות + AM/PM lcd.setCursor (0, 0); lcd.print ("זמן"); if (h <10) lcd.print ("0"); // תמיד 2 ספרות lcd.print (h); lcd.print (":"); if (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); אם (s <10) lcd.print ("0"); lcd.print (ים);
if (flag == 0) lcd.print ("AM"); if (flag == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // עבור שורה 2 lcd.print ("שעון דיוק"); }
} // סוף אם אחרת} // סוף עבור
// לולאה חיצונית של 1000ms
s = s+1; // תוספת שניות. ספירה // ---- נהל שניות, דקות, שעות בין שעות הצהריים/שעות הצפת ---- אם (s == 60) {s = 0; m = m+1; } אם (m == 60) {m = 0; h = h+1; } אם (h == 13) {h = 1; דגל = דגל+1; אם (דגל == 2) דגל = 0; }
// סוף לולאה}
שלב 3: סכמטי (זה ממש לא שלב)
אם מישהו שקורא את זה הוא חנון טכנולוגי הנה גם סכמטי אתה יכול להסתכל על זה להשתגע.
תהנו ותהנו ובעיקר הישארו טריים.
מוּמלָץ:
שעון רשת ESP8266 ללא כל RTC - Nodemcu NTP שעון אין RTC - פרויקט שעון אינטרנט: 4 שלבים
שעון רשת ESP8266 ללא כל RTC | Nodemcu NTP שעון אין RTC | פרויקט שעון אינטרנט: בפרויקט תעשה פרויקט שעון ללא RTC, ייקח זמן מהאינטרנט באמצעות wifi והוא יציג אותו בתצוגה st7735
פטל Pi A1332 אולם דיוק - חיישן זווית אפקט Java הדרכה: 4 שלבים
Raspberry Pi A1332 אולם דיוק - חיישן זווית אפקט Java הדרכה: A1332 הוא חיישן מיקום זווית מגנטי ברזולוציה גבוהה הניתן לתכנות 360 מעלות. הוא מיועד למערכות דיגיטליות באמצעות ממשק I2C. הוא בנוי על טכנולוגיית Circular Vertical Hall (CVH) ואות מבוסס מיקרו -מעבד לתכנות
דיוק גבוה מרחוק רישום נתונים באמצעות מודד/Arduino/pfodApp: 10 שלבים (עם תמונות)
דיוק גבוה רישום נתונים מרחוק באמצעות מולטימטר/Arduino/pfodApp: עודכן 26 באפריל 2017 מעגל ולוח מתוקן לשימוש עם מדי USB 4000 ZC. אין צורך בקידוד אנדרואיד הוראה זו מראה לך כיצד לגשת למגוון רחב של מדידות דיוק גבוהות מהארדואינו שלך ולשלוח אותן מרחוק. לרישום ו
ניסוי לתיקון דיוק: 11 שלבים
ניסוי לתיקון דיוק: לאחרונה ביצעתי ניסוי במעגל תיקון דיוק וקיבלתי כמה מסקנות גסות. בהתחשב בכך שמעגל מיישר הדיוק הוא מעגל נפוץ, תוצאות ניסוי זה יכולות לספק מידע אסמכתא כלשהו
מד דופק עם דיוק משופר בהרבה: 6 שלבים (עם תמונות)
מד דופק עם דיוק משופר בהרבה: אם ביקרת לאחרונה אצל רופא, רוב הסיכויים שהסימנים החיוניים הבסיסיים שלך נבדקו על ידי אחות. משקל, גובה, לחץ דם, כמו גם קצב לב (HR) ורוויה חמצן בדם היקפי (SpO2). אולי, השניים האחרונים התקבלו מ