- חומר נדרש
- תרשים מעגל
- דגם מזין חיות מחמד מודפס בתלת ממד
- מודול DS3231 RTC
- קוד והסבר
- עבודה של המזין האוטומטי לחיות מחמד
היום אנו בונים מזין חיות מחמד מבוסס ארדואינו שיכול להגיש באופן אוטומטי מזון לחיית המחמד שלכם בזמן. יש לו מודול DS3231 RTC (שעון זמן אמת), שבעבר נקבע זמן ותאריך שבו יש לתת מזון לחיית המחמד שלך. לכן, על ידי הגדרת הזמן לפי לוח הזמנים לאכילת חיית המחמד שלך, המכשיר ישמט או ימלא את קערת המזון באופן אוטומטי.
במעגל זה אנו משתמשים ב- LCD * 16 * 2 כדי להציג את הזמן באמצעות מודול DS3231 RTC עם Arduino UNO. כמו כן, מנוע סרוו משמש לסיבוב המכולות בכדי לספק מזון ולוח מקשים מטריציוני 4 * 4 כדי להגדיר באופן ידני את זמן האכלת חיית המחמד. ניתן להגדיר את זווית הסיבוב ומשך פתיחת המיכל בהתאם לכמות המזון שתרצו להגיש לחיית המחמד שלכם. כמות המזון עשויה להיות תלויה בחיית המחמד שלכם בין אם מדובר בכלב, חתול או ציפור.
חומר נדרש
- ארדואינו UNO
- לוח מקשים מטריקס 4 * 4
- 16 * 2 LCD
- לחץ על הכפתור
- מנוע סרוו
- נַגָד
- חוטי חיבור
- קרש לחם
תרשים מעגל
במזין חתולים מבוסס Arduino זה, לקבלת זמן ותאריך, השתמשנו במודול RTC (שעון זמן אמת). השתמשנו בלוח המקשים של מטריקס 4 * 4 כדי לקבוע את זמן האכילה של חיית המחמד באופן ידני בעזרת LCD 16x2. מנוע סרוו מסובב את המכולה ושחרר את המזון בזמן שנקבע על ידי המשתמש. ה- LCD משמש להצגת התאריך והשעה. עבודה מלאה ניתן למצוא בסרטון שבסופו.
דגם מזין חיות מחמד מודפס בתלת ממד
תכננו את מיכל המזון לחיות מחמד של Arduino באמצעות מדפסת התלת מימד. ניתן גם להדפיס את אותו העיצוב על ידי הורדת הקבצים מכאן. החומר המשמש להדפסת דגם זה הוא PLA. יש לו ארבעה חלקים כפי שמוצג בתמונה למטה:
הרכיב את ארבעת החלקים וחבר את מנוע הסרוו כפי שמוצג בתמונה למטה:
אם אתה לא חדש בהדפסת תלת מימד הנה המדריך ההתחלתי. אתה יכול להוריד את קבצי STL עבור מזין חיות מחמד זה כאן.
מודול DS3231 RTC
DS3231 הוא מודול RTC (שעון זמן אמת). הוא משמש לשמירת התאריך והשעה עבור מרבית פרויקטים של אלקטרוניקה. למודול זה יש ספק כוח מטבע משלו באמצעותו הוא שומר על התאריך והשעה גם כאשר הכוח הראשי מוסר או שה- MCU עבר איפוס קשה. אז ברגע שנקבע את התאריך והשעה במודול זה הוא יעקוב אחריו תמיד. במעגל שלנו אנו משתמשים ב- DS3231 כדי להאכיל את חיית המחמד בהתאם לזמן, שהוגדר על ידי הבעלים של חיית המחמד, כמו אזעקה. כאשר השעון מגיע לזמן שנקבע, הוא מפעיל את מנוע הסרווו כדי לפתוח את שער המיכל והמזון צונח בקערת המזון של חיית המחמד.
הערה: בעת שימוש במודול זה בפעם הראשונה עליך להגדיר את התאריך והשעה. אתה יכול גם להשתמש ב- RTC IC DS1307 לקריאת הזמן עם Arduino.
קוד והסבר
קוד הארדואינו השלם של מזין חיות מחמד ניתן בסוף.
ל- Arduino ספריות ברירת מחדל לשימוש במנוע סרוו וב- LCD 16 * 2 איתו. אך לשימוש ב- DS3231 RTC מודול ומקלדת 4 * 4 מטריקס עם Arduino, עליך להוריד ולהתקין את הספריות. קישור ההורדה לשתי הספריות מופיע להלן:
- ספריית המודולים DS3231 RTC (שעון בזמן אמת)
- ספריית מקשי מטריקס 4 * 4
בקוד שלמטה אנו מגדירים ספריות, "# כלול
#לִכלוֹל
בקוד שלהלן, אנו מגדירים את מפת המקשים עבור לוח המקשים המטריציוני 4 * 4 ומקצות את סיכות הארדואינו לשורה ולעמודות בלוח המקשים.
מקשי אותיות = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}}; בתים rowPins = {2, 3, 4, 5}; בתים colPins = {6, 7, 8, 9};
הנה, אנו יוצרים את לוח המקשים על ידי שימוש בפקודה למטה בקוד.
לוח מקשים kpd = לוח מקשים (makeKeymap (מקשים), rowPins, colPins, ROWS, COLS);
הקצאת סיכות Arduino A4 ו- A5 להתחברות לסיכות SCL ו- SDA של DS3231. כמו כן, הקצאת סיכות למסך ה- LCD ואתחול המנוע סרוו.
DS3231 rtc (A4, A5); סרוו_בדיקת סרוו; // אתחל אובייקט סרוו עבור סרוו המחובר LiquidCrystal lcd (A0, A1, A2, 11, 12, 13); // יוצר אובייקט LC. פרמטרים: (rs, הפעל, d4, d5, d6, d7)
בקוד שלהלן אנו מצהירים על ה- t1 ל- t6, המפתח והמערך r והפיד.
int t1, t2, t3, t4, t5, t6; הזנה בוליאנית = אמת; מפתח char int r;
בקוד שלהלן, אנו מגדירים את כל הרכיבים להתחלה. כמו בקוד זה "servo_test.attach (10);" סרוו מחובר לסיכה העשירית של הארדואינו. הגדרת A0, A1 ו- A2 כסיכת הפלט ומאתחלת את מודול ה- LCD וה- RTC.
הגדרת חלל () {servo_test.attach (10); // צרף את סיכת האות של סרוו ל- pin9 של arduino rtc.begin (); lcd.begin (16,2); servo_test.write (55); Serial.begin (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A2, OUTPUT); }
עכשיו, איך הלולאה עובדת זה החלק החשוב שיש להבין. בכל פעם שלוחצים על כפתור הלחצן, הוא גבוה למצב פירושו 1, אותו ניתן לקרוא על ידי "buttonPress = digitalRead (A3)" . עכשיו זה נכנס להצהרת 'אם ' ומכנה את הפונקציה 'setFeedingTime' . ואז הוא משווה את הזמן האמיתי ואת הזמן שהוזן על ידי המשתמש. אם התנאי נכון, כלומר הזמן האמיתי והזמן שהוזן זהה, מנוע הסרוווס מסתובב לזווית של 100 מעלות ולאחר 0.4 שניות של עיכוב הוא חוזר למקומו הראשוני.
לולאה בטלה () {lcd.setCursor (0,0); כפתור int לחץ; לחצן לחיצה = digitalRead (A3); אם (buttonPress == 1) setFeedingTime (); lcd.print ("זמן:"); מחרוזת t = ""; t = rtc.getTimeStr (); t1 = t.charAt (0) -48; t2 = t.charAt (1) -48; t3 = t.charAt (3) -48; t4 = t.charAt (4) -48; t5 = t.charAt (6) -48; t6 = t.charAt (7) -48; lcd.print (rtc.getTimeStr ()); lcd.setCursor (0,1); lcd.print ("תאריך:"); lcd.print (rtc.getDateStr ()); אם (t1 == r && t2 == r && t3 == r && t4 == r && t5 <1 && t6 <3 && feed == true) {servo_test.write (100); // פקודה לסובב את סרוו לעיכוב הזווית שצוין (400); servo_test.write (55); הזנה = שקר; }}
בשנות ה setFeedingTime החלל () קוד הפונקציה, לאחר לחיצה על לחצן אנו מסוגלים להיכנס בפעם האכלה לחיות מחמד, אז אנחנו צריכים "ד" לחץ כדי לחסוך זמן. כאשר הזמן החסוך תואם בזמן אמת אז סרוו מתחיל להסתובב.
בטל setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("הגדר זמן האכלה"); lcd.clear (); lcd.print ("HH: MM"); lcd.setCursor (0,1); בעוד (1) {key = kpd.getKey (); char j; אם (מפתח! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (מפתח); r = מפתח -48; i ++; j ++; אם (j == 2) {lcd.print (":"); j ++; } עיכוב (500); } אם (key == 'D') {key = 0; לשבור; }}}
עבודה של המזין האוטומטי לחיות מחמד
לאחר העלאת הקוד ל- Arduino Uno, השעה והתאריך יוצגו על גבי LCD 16 * 2. כשלחצת על כפתור הלחצן הוא מבקש את זמן האכלת חיית המחמד ועליך להזין את השעה באמצעות מקש המטריצה 4 * 4. התצוגה תציג את הזמן שהוזן וכאשר לוחצים על 'D' זה חוסך את הזמן. כאשר הזמן האמיתי והזמן שהוזן מתאימים, הוא מסובב את מנוע הסרוו ממצבו ההתחלתי 55⁰ ל 100⁰ ולאחר עיכוב חוזר שוב למיקומו ההתחלתי. לכן, מנוע סרוו מחובר לשער מיכל המזון, ולכן תוך כדי תנועה השער ייפתח וכמות מסוימת של אוכל נופלת בקערה או בצלחת. לאחר עיכוב של 0.4 שניות, מנוע סרוו מסתובב שוב וסוגר את השער. התהליך כולו מסתיים תוך שניות ספורות. כך חיית המחמד שלך מקבלת את המזון באופן אוטומטי בזמן שהזנת.
שנה זמן ותואר בהתאם למזון