טיימר הוא סוג של שעון המשמש למדידת מרווחי זמן. ישנם שני סוגים של טיימר, אחד הסופרים כלפי מעלה מאפס, למדידת הזמן שחלף, המכונה סטופר. והשני נספר משך זמן מוגדר המסופק על ידי המשתמש, המכונה בדרך כלל טיימר לספירה לאחור.
כאן, במדריך זה אנו נראה לך כיצד ליצור טיימר לספירה לאחור באמצעות Arduino. כאן איננו משתמשים בשום מודול של שעון זמן אמת (RTC) לצורך קבלת הזמן. משך הזמן מסופק על ידי המשתמש בעזרת לוח המקשים ו- LCD 16x2. וכשהטיימר יגיע לאפס, יופק צליל התראה בעזרת הבאזר.
חומר נדרש
- ארדואינו UNO
- LCD 16 * 2
- לוח מקשים מטריצה 4 * 4
- זַמזָם
- לחץ על הכפתור
- פוטנציומטר (10k)
- נגד (10k, 100 אוהם)
- חוטי חיבור
תרשים מעגל טיימר של ארדואינו
Arduino Uno משמש כאן כבקר ראשי. לוח מקשים משמש להזנת משך הזמן ו- LCD 16 * 2 משמש להצגת הספירה לאחור. כפתור הלחצן משמש להפעלת השעה. בדוק כאן כיצד לממשק לוח מקשים 4x4 עם Arduino ו- LCD 16x2 עם Arduino.
קוד והסבר על טיימר לספירה לאחור של ארדואינו
קוד טיימר מלא של Arduino ניתן בסוף פרויקט זה.
בקוד זה למטה אנו מאתחלים ספריות עבור לוח המקשים וה- LCD והמשתנים המשמשים בקוד.
#לִכלוֹל
כעת, בקוד שלמטה אנו מאותחלים את המס '. של שורות ועמודות להגדרת המטריצה עבור לוח המקשים.
שורות בתים קונסט = 4; // ארבע שורות const byte COLS = 4; // שלוש עמודות מקשי תו = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
לחיבור לוח המקשים 4 * 4 למטריצה עם Arduino עלינו להגדיר את הפינים עבור השורות והעמודות. אז בקוד שלמטה הגדרנו סיכות עבור לוח המקשים כמו גם 16x2 LCD.
בתים rowPins = {6, 7, 8, 9}; // חבר את לוח המקשים ROW0, ROW1, ROW2 ו- ROW3 לסיכות Arduino אלה בתים colPins = {10, 11, 12, 13}; // חבר את לוח המקשים COL0, COL1 ו- COL2 to t LiquidCrystal lcd (A0, A1, 5, 4, 3, 2); // יוצר אובייקט LC. פרמטרים: (rs, הפעל, d4, d5, d6, d7)
הקוד שלמטה משמש להכנת לוח המקשים, לוח מקשים kpd = לוח מקשים (makeKeymap (מקשים), rowPins, colPins, ROWS, COLS);
בשנות ה setFeedingTime החלל () קוד הפונקציה, לאחר לחיצה על לחצן אנו מסוגלים להיכנס זמן טיימר, אז לאחר הזנת משך זמן הטיימר, יש לנו את העיתונות D כדי להתחיל את הספירה לאחור.
בטל setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("הגדר זמן האכלה"); lcd.clear (); lcd.print ("HH: MM: SS"); lcd.setCursor (0,1); בעוד (1) {key = kpd.getKey (); char j; אם (מפתח! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (מפתח); r = מפתח -48; i ++; j ++; אם (j == 2 - j == 5) {lcd.print (":"); j ++; } עיכוב (500); } אם (key == 'D') {key = 0; לשבור; }} lcd.clear (); }
בשנת ההתקנה החלל (פונקציה) , יש לנו אותחל LCD ו תקשורת טורית, והגדיר את הסיכות כמו קלט ופלט של מתחת קוד.
הגדרת חלל () {lcd.begin (16,2); Serial.begin (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A3, INPUT); pinMode (A4, OUTPUT); }
העבודה של טיימר הספירה לאחור של Arduino זה פשוט אבל הקוד מעט מורכב. הקוד מוסבר על ידי ההערות בקוד.
בתחילה, הוא ידפיס את "טיימר הארדואינו" על צג ה- LCD עד שתלחץ על כפתור הלחיצה. ברגע שתלחץ על כפתור הלחיצה, הוא יבקש להזין את משך זמן הספירה לאחור על ידי קריאה לפונקציה " setFeedingTime ". אז אתה יכול להזין את משך הזמן בעזרת לוח המקשים. ואז עליך ללחוץ על 'D' כדי לחסוך את הזמן ולהתחיל את טיימר הספירה לאחור. כאן בפונקציית loop loop () , עשינו חישוב מסוים כדי להקטין את הזמן שנייה אחר שנייה ולהראות את הערכים הנכונים של שעה, דקות ושניות (HH: MM: SS) בהתאם לזמן הנותר. כל הקוד מוסבר היטב על ידי הערות. אתה יכול לבדוק את הקוד המלא ואת סרטון ההפגנה למטה.
כשהטיימר מגיע לאפס, הבאזר מתחיל לצפצף ומצפצף 100 פעמים בלבד (לפי הקוד). כדי לעצור את הבאזר, לחץ לחיצה ממושכת על כפתור הלחיצה. אתה יכול להשתמש בלחצן כפתור בכל עת כדי לעצור את הטיימר בין הספירה.