תוכן עניינים:
- שלב 1: הוראות חיבור
- שלב 2:
- שלב 3:
- שלב 4:
- שלב 5:
- שלב 6:
- שלב 7:
- שלב 8:
- שלב 9: הוראות תכנות
- שלב 10:
- שלב 11:
- שלב 12:
- שלב 13:
- שלב 14:
וִידֵאוֹ: פרויקט שעון מעורר Arduino: 14 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:14
בפרויקט זה נשתמש ב- Arduino Uno לשליטה במסך LCD כדי להציג את השעה והשעה הנוכחיים שעבורם מוגדרת אזעקה. נשתמש בכפתורים כדי להגדיר כל פעם.
חומרים:
- Arduino Uno -
- לוח לחם -
- חוטי מגשר (x13+) -
- 10 נגדי קוהם (x4) -
- מסך LCD -
- 7 לחצנים-https://vilros.com/collections/raspberry-pi-acces…
- רמקול Piezo -
שלב 1: הוראות חיבור
1. חבר חוט מגשר מהפין 5V בארדואינו לאחת מסילות + בלוח הלחם.
שלב 2:
2. חבר חוט מגשר מתוך סיכת ה- GND בארדואינו למעקה - שליד המסילה + שבחרת בלוח הלחם.
שלב 3:
3. חבר את מסך ה- LCD לחשמל, לאדמה ולסיכה TX (סיכה 1).
שלב 4:
4. הניחו 7 כפתורים על לוח הלחם כשהרגליים לרוחב הפער בלוח הלחם.
שלב 5:
5. הניחו 10 נגדי קוהם מהמסילה - כאשר סיכת ה- GND מחוברת אליה לפינים השמאליים התחתונים של הכפתורים.
שלב 6:
6. הנח חוטי מגשר בין הסיכה הימנית התחתונה של הכפתורים לבין מסילת 5V על לוח הלחם שלך.
שלב 7:
7. הנח חוטי מגשר בין סיכות 6, ולאחר מכן 8-13, והסיכה על הכפתור שאליו מחובר הנגד.
שלב 8:
8. לאחר מכן, הנח את רמקול ה- Piezo שלך על לוח הלחם וחבר את סיכה 7 לסיכת החשמל, ואז נגד 100 אוהם לקרקע.
שלב 9: הוראות תכנות
1. סקירה כללית: פרוייקט זה יבקש מהמשתמש להגדיר את השעה הנוכחית בהפעלה ראשונית בתצוגה את השעה הנוכחית ואת השעה שבה מתכוונת האזעקה. הלחצנים המחוברים למעלה ישמשו להגדרה בכל פעם. משמאל לימין, הם מוגדרים השעה הנוכחית, הגדירו את הדקה הנוכחית, הגדירו את AM או PM הנוכחי, הגדירו את שעון האזעקה, הגדירו את דקת האזעקה, הגדירו את AM או PM. הכפתור האחרון משמש להשבתת האזעקה כשהיא נשמעת.
שלב 10:
2. הדבר הראשון שעלינו לעשות הוא לאתחל את המשתנה שבו נשתמש.
// אתחל משתנים לשימוש במשך שעה = 0; // שעה לזמן הנוכחי int minute = 0; //
דקה לזמן הנוכחי int second = 0; // שנייה לזמן הנוכחי
int hour_a = 0; int // שעה לזמן אזעקה
דקה_א = 0; // דקה לזמן אזעקה
bool am_pm = false; // AM/PM דגל החלפה. שקר הוא AM, נכון הוא PM
bool am_pm_a = שקר; // AM/PM דגל החלפת אזעקה. שקר הוא AM, נכון הוא PM
int set_hr = 13; // השתמש בסיכה 13 לקביעת השעה
int set_min = 12; // השתמש בסיכה 12 כדי להגדיר את הדקה int
set_am_pm = 11; // השתמש בסיכה 11 כדי להגדיר am/pm
int set_hr_a = 10; // השתמש בסיכה 10 כדי להגדיר את השעה עבור אזעקה int set_min_a = 9; // השתמש בסיכה 9 כדי להגדיר דקה עבור אזעקה int set_am_pm_a = 8; // השתמש בסיכה 8 כדי להגדיר את השעה/שעה לאזעקה
רמקול int = 7; // הצמד לשימוש לרמקולים שקט = 6; // הצמד לעצור את הרמקול
אזעקת בול = שקר; // סמן כדי להחליף כדי להמשיך לדאוג
בול שקט = שקר; // הדגל המראה שקט לא נלחץ
int cur_time = 0; // משתנה לזמן הנוכחי
int etime = 0; // משתנה במשך הזמן שחלף
שלב 11:
3. לאחר מכן, עלינו להגדיר את מסך ה- LCD ולהגיד למשתמש לקבוע את השעה הנוכחית. מכיוון שצריך לעשות זאת רק פעם אחת, אנו נעשה זאת בשגרת ההתקנה.
הגדרת בטל () {
// הגדר מסך LCD
Serial.begin (9600); // אתחל סידורי ב- 9600 baud
Serial.write (17); // הדלק את הנורה האחורית
Serial.write (24); // הפעל את הצג, עם סמן וללא מצמוץ
Serial.write (12); // נקה את המסך
Serial.write (128); // העבר את הסמן לפינה השמאלית העליונה // הגדר pinModes pinMode (set_hr, קֶלֶט); pinMode (set_min, INPUT);
pinMode (set_am_pm, INPUT);
pinMode (set_hr_a, INPUT);
pinMode (set_min_a, INPUT);
pinMode (set_am_pm_a, INPUT);
pinMode (רמקול, OUTPUT);
pinMode (שקט, קלט);
// בהספק ההתחלתי, הגדר את המשתמש לשעה הנוכחית. Serial.print ("הגדר את השעה הנוכחית"); עיכוב (2000);
Serial.write (12);
printTimes ();
cur_time = millis (); // אחסן את השעה הנוכחית}
שלב 12:
4. לאחר מכן, בשגרת הלולאה, אנו עוקבים אחר השעה וקוראים את סטטוס הלחצן כדי לראות אם המשתמש מגדיר את אחת הפעמים.
לולאת חלל () {
// שמור על הזמן
keepTime ();
// בדוק אם הגיע הזמן להבהיל!
אם ((שעה == שעה_א && דקה == דקה_א &&! שקט) || אזעקה) {צליל (רמקול, 2000, 500); // פלט צליל של 2000 הרץ לרמקול למשך 500 אלפיות השנייה
עיכוב (500); // עיכוב של 500 ms אם (! אזעקה) {// אם האזעקה כבויה, הפעל אותה
}
}
// אם המשתמש משתיק את האזעקה על ידי לחיצה על כפתור השקט, הפסק להבהיל אם (אזעקה &&! שקט && digitalRead (שקט)) {
אזעקה = שקר;
שקט = נכון; }
// אפס את האזעקה אם (! אזעקה && שקט && דקה! = דקות_א) {שקט = שקר;
}
// בדוק אם סיכות ההגדרה גבוהות, ואם כן, הגדל את הערך המתאים if (digitalRead (set_hr) && hour <12) {
שעה ++;
printTimes ();
debounce ();
}
אחרת אם (digitalRead (set_hr) && hour == 12) {hour = 1;
printTimes ();
debounce ();
}
אַחֵר{}
if (digitalRead (set_min) && minute <59) {
דקה ++; printTimes ();
debounce ();
}
אחרת אם (digitalRead (set_min) && minute == 59) {minute = 0;
printTimes ();
debounce ();
}
אחרת {} if (digitalRead (set_am_pm) && am_pm) {
am_pm = שקר;
printTimes ();
debounce ();
}
אחרת אם (digitalRead (set_am_pm) &&! am_pm) {am_pm = true; printTimes ();
debounce ();
}
אחרת {} אם (digitalRead (set_hr_a) && hour_a <12) {
שעה_א ++;
printTimes ();
debounce ();
}
אחרת אם (digitalRead (set_hr_a) && hour_a == 12) {hour_a = 1;
printTimes ();
debounce ();
}
אחרת {} אם (digitalRead (set_min_a) && minute_a <59) {
minute_a ++;
printTimes ();
debounce ();
}
אחרת אם (digitalRead (set_min) && minute_a == 59) {minute_a = 0;
printTimes ();
debounce ();
}
אחר {} if (digitalRead (set_am_pm_a) && am_pm_a) {
am_pm_a = שקר;
printTimes ();
debounce ();
}
אחרת אם (digitalRead (set_am_pm_a) &&! am_pm_a) {am_pm_a = true;
printTimes ();
debounce ();
}
אַחֵר{}
}
שלב 13:
5. כאן, תבחין בכמה תת -שורות שיצרתי - debounce () ו- printTimes (). Debounce () משמש כדי לוודא שקראנו את הכפתורים רק פעם אחת. מכיוון שהארדואינו סורק אלפי פעמים בשנייה, הוא עשוי לחשוב שהלחצן נלחץ מספר פעמים כאשר התכוונת לקריאתו פעם אחת בלבד. Debounce () תקפיא את התוכנית עד לשחרור הלחצן. printTimes () מעדכן את מסך ה- LCD, אך מכיוון שמדובר במספר פקודות, הקלדתי אותן פעם אחת ואז יכול להתקשר לתוכנית המשנה בכל פעם שערך הזמן משתנה.
// בעת לחיצה על כל אחד מהלחצנים, הישאר בפונקציה זו ולאחר מכן עיכב 250 אלפיות השנייה.
ניפוח ריק () {
בעוד (digitalRead (set_hr) || digitalRead (set_min) ||
DigitalRead (set_am_pm) || DigitalRead (set_hr_a) ||
DigitalRead (set_min_a) || digitalRead (set_am_pm_a)) {} עיכוב (250);
}
// מדפיסה את השעות המעודכנות אם יש שינויים
void printTimes () {
Serial.write (12);
Serial.print ("השעה הנוכחית:");
Serial.write (148);
אם (שעה <10) {
Serial.print ("0");
}
Serial.print (שעה);
Serial.print (":");
אם (דקה <10) {
Serial.print ("0");
}
Serial.print (דקה); Serial.print (":");
אם (שנייה <10) {
Serial.print ("0");
}
Serial.print (שני);
אם (am_pm) {
Serial.print ("PM");
}
אַחֵר{
Serial.print ("AM");
}
Serial.write (168);
Serial.print ("ערכת אזעקה ל:");
Serial.write (188);
אם (שעה_א <10) {
Serial.print ("0");
}
Serial.print (שעה_א);
Serial.print (":");
אם (minute_a <10) {
Serial.print ("0");
}
Serial.print (minute_a);
אם (am_pm_a) {
Serial.print ("PM");
}
אַחֵר{
Serial.print ("AM");
}
}
// הגדילו את פרמטרי הזמן בטלים
keepTime () {
etime = millis () - cur_time;
if (etime> = 1000 && second <59) {
השני ++;
cur_time = millis ();
printTimes ();
}
אחרת אם (etime> = 1000 && second == 59 && minute <59) {second = 0;
דקה ++;
cur_time = millis ();
printTimes ();
}
אחרת אם (etime> = 1000 && second == 59 && minute == 59 && hour <12) {
שני = 0; דקה =
0; שעה ++; cur_time =
מילי (); printTimes ();
}
אחרת אם (etime> = 1000 && second == 59 && minute == 59 && hour == 12) {
שני = 0; דקה =
0; שעה = 1; am_pm =
! am_pm;
cur_time = millis ();
printTimes ();
}
אַחֵר{}
}
שלב 14:
6. זהו!
הידור והעלה וסיימת!
מוּמלָץ:
שעון התראה איסלאמי RaspberryPi & שעון מעורר: 15 שלבים (עם תמונות)
צפייה והתראה של תפילות אסלאמיות RaspberryPi: למוסלמים ברחבי העולם יש חמש תפילות מדי יום, וכל תפילה צריכה להיות בזמן מסוים ביום. בגלל הדרך האליפטית כוכב הלכת שלנו מסתובב סביב השמש, מה שגורם לשעות הזריחה לעלות ולרדת להשתנות לאורך כל השנה, כי
שעון מעורר חכם באמצעות Magicbit (Arduino): 10 שלבים
שעון מעורר חכם באמצעות Magicbit (Arduino): הדרכה זו מראה כיצד ליצור שעון מעורר חכם באמצעות תצוגת OLED בלוח ה- Dev של Magicbit ללא שימוש במודול RTC כלשהו
שעון מעורר חכם: שעון מעורר חכם המיוצר עם פטל פי: 10 שלבים (עם תמונות)
שעון מעורר חכם: שעון מעורר חכם המיוצר עם פטל פאי: האם אי פעם רצית שעון חכם? אם כן, זה הפתרון בשבילך! הכנתי שעון מעורר חכם, זהו שעון שתוכל לשנות את זמן ההתראה בהתאם לאתר. כאשר האזעקה תיגמר, ישמע צליל (זמזם) ושתי נורות יעיפו
שעון רשת ESP8266 ללא כל RTC - Nodemcu NTP שעון אין RTC - פרויקט שעון אינטרנט: 4 שלבים
שעון רשת ESP8266 ללא כל RTC | Nodemcu NTP שעון אין RTC | פרויקט שעון אינטרנט: בפרויקט תעשה פרויקט שעון ללא RTC, ייקח זמן מהאינטרנט באמצעות wifi והוא יציג אותו בתצוגה st7735
הרכבת "שעון חכם 2" (שעון מעורר מבוסס ארדואינו עם הרבה תכונות נוספות): 6 שלבים
הרכבת "שעון חכם 2" (שעון מעורר מבוסס ארדואינו עם הרבה תכונות נוספות): הדרכה זו מציגה כיצד להרכיב את הערכה לפרויקט ווייז שעון 2, פרויקט קוד פתוח (חומרה ותוכנה). ניתן לרכוש ערכת Wise Clock 2 מלאה כאן. לסיכום, זה מה שעון ווייז 2 יכול לעשות (עם תוכנת הקוד הפתוח הנוכחי