ארדואינו: בנה שעון מעורר - איך זה עובד
בטיפ המעשי הזה תלמד כיצד לבנות שעון מעורר עם הארדואינו. זה קל עם הקוד הנכון.
ארדואינו: בנה שעון מעורר - איך זה עובד
לשעון מעורר של Arduino אתה זקוק לאספקת חשמל, מקלט IR עם שלט רחוק, זמזם, מודול DS3231 בזמן אמת, תרמיסטור, LCD וכמובן לוח לחם ו Arduino עם כבלי ג'אמפר תואמים.
- תחילה חבר את ספק הכוח בדרך הנכונה על קרש הגישה וודא שהוא מוגדר לחמישה וולט משני הצדדים.
- חבר את המקלט האינפרא אדום לסרגלי הפלוס והמינוס ולפין 3.
- חבר את הבאזר הפעיל לסיכה 13 ואל הקרקע (סרגל מינוס).
- מודול DS3231 מחובר גם לסרגלי הפלוס והמינוס. חבר גם SDA ל- SDA ו- SCL ל- SCL בארנדינו.
- עכשיו אתה צריך את התרמיסטור, שמחובר גם ל 5 וולט ולאנלוגי 0 דרך נגן 10 kOhm.
- לבסוף, עליכם לחבר את ה- LCD. K מחובר ל - ו- A ל- +. סיכות D4 עד D7 מתחברות לסיכות 9 עד 12 על הארדואינו. עכשיו אתה צריך לחבר E לפינים 8, RW לסרגל המינוס ו- RS לפינים 7. חבר את הסיכה V0 לפוטנציומטר 10k, המחובר ל 5V לקרקע. לבסוף, חברו VDD ל- 5V ו- VSS לקרקע.
תכנת את שעון האזעקה של Arduino
אם הגדרת הכל כראוי, אתה יכול לתכנת את שעון האזעקה של Arduino. כתבנו קוד לדוגמא קטן עבור זה:
- #include #include #include #include "IRremote.h" int tempPin = 0; שעון DS3231; RTCDateTime dt; LiquidCrystal lcd (7, 8, 9, 10, 11, 12); מקלט int = 3; IRrecv irrecv (מקלט); decode_results תוצאות; מעורר int; alarm_state בוליאני = שווא; שעת מיתרים; יעד מחרוזת_זמן; דקה מחרוזת; מחרוזת בזמן הנוכחי; אינטר אינטר = 13; void translateIR () {switch (results.value) {case 0xFFA25D: alarm_state =! alarm_state; לשבור; // מקרה כוח 0xFFE21D: הפסקה; // מקרה FUNC / STOP 0xFF629D: הפסקה; // VOL + מקרה 0xFF22DD: הפסקה; // מקרה אחורי מהיר 0xFF02FD: הפסקה; // מקרה PAUSE 0xFFC23D: הפסקה; // מקרה קדימה מהיר 0xFFE01F: הפסקה; // מקרה למטה 0xFFA857: הפסקה; // VOL- מארז 0xFF906F: הפסקה; // תיק UP 0xFF9867: הפסקה; // מקרה EQ 0xFFB04F: הפסקה; // מקרה ST / REPT 0xFF6897: אזעקה = 0; להוסיף (); לשבור; // 0 מקרה 0xFF30CF: אזעקה = 1; להוסיף (); לשבור; // מקרה 1 0xFF18E7: אזעקה = 2; להוסיף (); לשבור; // 2 מקרה 0xFF7A85: אזעקה = 3; להוסיף (); לשבור; // 3 מקרה 0xFF10EF: אזעקה = 4; להוסיף (); לשבור; // 4 מקרה 0xFF38C7: אזעקה = 5; להוסיף (); לשבור; // 5 מקרה 0xFF5AA5: אזעקה = 6; להוסיף (); לשבור; // 6 מקרה 0xFF42BD: אזעקה = 7; להוסיף (); לשבור; // 7 מקרה 0xFF4AB5: אזעקה = 8; להוסיף (); לשבור; // 8 מקרה 0xFF52AD: אזעקה = 9; להוסיף (); לשבור; // 9 מקרה 0xFFFFFFFF: הפסקה; ברירת מחדל: הפסקה; } עיכוב (500); } add void add () {destination_time + = מחרוזת (אזעקה); } הגדרת חלל () {pinMode (זמזם, יציאה); lcd.begin (16, 2); clock.begin (); clock.setDateTime (__ DATE__, __TIME__); irrecv.enableIRIn (); } לולאה חלל () {int tempReading = analogRead (tempPin); tempK כפול = יומן (10000.0 * ((1024.0 / tempReading - 1))); tempK = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * tempK * tempK)) * tempK); float tempC = tempK - 273.15; temp floF = (tempC * 9.0) / 5.0 + 32.0; dt = clock.getDateTime (); lcd.setCursor (0, 0); lcd.print (פורמט clock.date ("dmY H: i: s", dt)); lcd.set cursor (0, 1); lcd.print (מחרוזת (tempC) + "" + מחרוזת ((char) 223) + "C"); if (irrecv.decode (& תוצאות)) {translateIR (); irrecv.resume (); } hour = clock.dateFormat ("H", dt); דקה = שעון.dateFormat ("i", dt); הנוכחי_זמן = שעה + דקה; אם (current_time == יעד_time && alarm_state == true) {pinMode (זמזם, HIGH); } else {pinMode (זמזם, נמוך); } if (alarm_state == true) {lcd.setCursor (10, 1); lcd.print ( "!"); } else {lcd.setCursor (10, 1); lcd.print (""); } if (destination_time.length () == 4) {lcd.setCursor (11, 1); lcd.print (destination_time); } אחרת אם (destination_time.length () <4) {lcd.setCursor (11, 1); lcd.print ( "סוג"); } else {lcd.setCursor (11, 1); lcd.print ( "סוג"); destination_time = ""; } עיכוב (1000); }
- טיפ: העתק קוד זה ל- IDE שלך והתאם אותו כנדרש. תוכלו למצוא הסבר מפורט על שורות הקוד בגלריית התמונות שלנו.
במאמר הבא נסביר כיצד ניתן לשלוט במודול GSM עם הארדואינו.