תוכן עניינים:

מזין כלבים אוטומטי: 6 שלבים
מזין כלבים אוטומטי: 6 שלבים

וִידֵאוֹ: מזין כלבים אוטומטי: 6 שלבים

וִידֵאוֹ: מזין כלבים אוטומטי: 6 שלבים
וִידֵאוֹ: ככה זה כשיש לך חברה רוסיה 2024, יולי
Anonim
מזין כלבים אוטומטי
מזין כלבים אוטומטי

זהו הפרויקט שלי של מזין חיות מחמד אוטומטי. שמי פארקר אני בכיתה יא 'ועשיתי את הפרויקט הזה ב -11 בנובמבר 2020 בתור CCA (פעילות סיום הקורס) בפרויקט זה אני אראה לך כיצד להכין מזין חיות מחמד אוטומטי עם ארדואינו UNO. אתה יכול לבחור זמן שאתה יכול לשנות. המזון יועבר דרך קפיצה ויאכיל את חיות המחמד שלכם!

אספקה

מכשירי חשמל:

  • ארדואינו UNO
  • L298N - 10 $ - שולט ב- Nema 17
  • NEMA 17 - 10 $ - מסובב את המזווה כך שהמזון מתפזר
  • RTC (DS1307) - 10 $ - נותן את הזמן
  • ספק כוח 12V - 5 $ - מאפשר הכל
  • מיני לחם - לחלל חיווט נוסף
  • חוטי מגשר - מחברים הכל
  • חוטים נקבה לזכר - מחבר הכל

חוּמרָה:

  • נימה להדפסת תלת מימד - למדפסת תלת מימד
  • 2 ברגי M4 - החזק את צלחת הבסיס במקומה
  • 4 ברגי Nema 17 - החזק את nema למטה
  • PVC T 48 מ"מ פנימי ממד 66 מ"מ חיצוני - 3 $

כלים:

  • מדפסת תלת מימד
  • תרגיל
  • אקדח הלחמה

שלב 1: סקירה כללית של עיצוב

סקירה כללית של עיצוב
סקירה כללית של עיצוב
סקירה כללית של עיצוב
סקירה כללית של עיצוב
סקירה כללית של עיצוב
סקירה כללית של עיצוב
סקירה כללית של עיצוב
סקירה כללית של עיצוב

העיצוב של מזין החיות פשוט מאוד. מיכל עולה לחלק העליון של ה- PVC T. לאחר מכן מכסה על החלק האחורי של ה- PVC T (כפי שמוצג בתמונה) עם ה- Nema 17 המחובר אליו. אז ה- Nema 17 תידחק לחלק האחורי של האוג'ר שניתן לראות למעלה ובורג ייכנס לצד שיחזיק אותו במקומו כדי שלא יעוות את החור שניתן לראות למעלה!

אז הקציצה פשוט תדחוף את האוכל מהצינור לתוך קערה!

שלב 2: סקירת קוד

סקירה כללית של הקוד
סקירה כללית של הקוד
סקירה כללית של הקוד
סקירה כללית של הקוד
סקירה כללית של הקוד
סקירה כללית של הקוד

ל- RTC & Stepper יש ספרים בשם RTClib.h ו- Stepper.h שמוסיפים קוד פשוט ל- RTC & Stepper. אם הצהרות אם פשוטות מאוד אמירתו אם השעה והדקות שוות לזמן האמור היא תסובב את הנום שיוציא את המזון. שאר הקוד קל מאוד להבנה אפילו למי שיש לו יום ניסיון.

שלב 3: הצמדת Nema 17 לפלטת הבסיס והקצפת

הצמדת Nema 17 לפלטת הבסיס והאוצ'ר
הצמדת Nema 17 לפלטת הבסיס והאוצ'ר
הצמדת Nema 17 לפלטת הבסיס והאוצ'ר
הצמדת Nema 17 לפלטת הבסיס והאוצ'ר
הצמדת Nema 17 לפלטת הבסיס והאוצ'ר
הצמדת Nema 17 לפלטת הבסיס והאוצ'ר

ראשית אתה רוצה לקחת את לוח הבסיס שלך ולחבר אותו ל- Nema 17 שלך באמצעות החורים המוכנים מראש על צלחת הבסיס. לאחר שתעשה זאת, ברצונך לחבר את המזווה ל- Nema באמצעות החור האחורי עליו. לאחר מכן חבר את צלחת הבסיס עם הקפיצה וה- Nema המחוברים ואז הברג את ברגי M2 לכל צד.

שלב 4: חיווט L298N & RTC

חיווט L298N & RTC
חיווט L298N & RTC
חיווט L298N & RTC
חיווט L298N & RTC

שלב זה יגיד לך כיצד לחבר את ה- L298N & RTC

נתחיל בסיכות 8, 9, 10, 11 ל- L298N

  • פין 8 (לבן) ל- IN1
  • פין 9 (סגול) ל- IN2
  • פין 10 (ורוד) ל- IN3
  • PIN 11 (צהוב) עד IN4

בשלב הבא נחבר את ה- Nema 17 ל- L298N

  • OUT1 עד 1 ב- NEMA
  • OUT2 עד 2 ב- NEMA
  • OUT3 עד 3 ב- NEMA
  • OUT4 עד 4 ב- NEMA

חיבור 12 וולט וארדואינו ל- L298N (לא הצלחנו למצוא 12 וולט תארו לעצמכם סוללת 9 וולט כחיל)

  • וולט עד 12V
  • הקרקע ל- GND
  • 5V עד 5V על לוח הלחם

חיבור RTC ל- Arduino

  • GND ל- GND
  • 5V עד 5V על לוח קרש
  • SDA עד A5
  • SCL עד A4

סיכות מגשר

כל סיכות המגשר אמורות להיות על L298N

שלב 5: קידוד עם הערות

קידוד עם הערות
קידוד עם הערות
קידוד עם הערות
קידוד עם הערות
קידוד עם הערות
קידוד עם הערות

הקוד ברור יותר בתמונות למעלה

// שם: פארקר פרדריק

// שם הפרויקט: מזין חיות מחמד אוטומטי // תאריך: שלישי, 10 בנובמבר 2020 // מורה: מ. בוניסטל // דסק: האכילו את חיות המחמד שלכם בזמן האמור!

// ליוברים לדברים שהשתמשתי בהם #כלול #כלול #כלול "RTClib.h"

RTC_DS1307 rtc; // אומר במה אני משתמש ב- RTC

// כאן אתה קובע את הזמן לאוכל

// שעות int mornFeedTime = 12; int nightFeedTime = 7; // דקות int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Seconds int mornFeedTimeS = 20; int nightFeedTimeS = 00;

char daysOfTheWeek [7] [12] = {"יום ראשון", "שני", "שלישי", "יום רביעי", "חמישי", "שישי", "שבת"}; // גורם לימים רגילים להפוך לימי השבוע

const int feed = 200; // זה הצעדים שלך אז כמה פעמים אתה רוצה שזה יסתובב

Stepper myStepper (הזנה, 8, 9, 10, 11); // הסיכות שלך ל- Nema 17 ולרוב המדרגות האחרות

הגדרת void () {Serial.begin (9600);

בעוד (! סדרתי); // אם ה- RTC אינו פועל הוא יציג אותו במסך הסידורי אם (! Rtc.begin ()) {Serial.println ("לא הצלחתי למצוא RTC"); בעוד (1); }

// זה יגיד לך אם השעון בזמן אמת פועל או לא והוא יציג אותו על המסך הסידורי אם (! Rtc.isrunning ()) {Serial.println ("RTC פועל!");

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // זה ייקח זמן למחשב שלך וישתמש בו ב- RTC

// אם ברצונך לקבל זמן מוגדר במקום זמן המחשב תוכל לעשות זאת כאן //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // שנה/חודש/יום/שעה/דקה/שנייה} myStepper.setSpeed (200); // מהירות שאתה רוצה שהיא תפנה ל-}

לולאת void () {DateTime עכשיו = rtc.now ();

// זה יהפוך את המשתנה הזה לשעה שהוא כרגע וכו 'int hr = now.hour (); int mi = now.minute (); int se = now.second ();

// קוד כך שבזמן שנקבע הוא יוציא את האוכל והוא יסתובב 5 פעמים, זאת אם להזנת הבוקר

if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("ארוחת בוקר!"); myStepper.step (-feed); עיכוב (700);

myStepper.step (-feed); עיכוב (700);

myStepper.step (-feed); עיכוב (700);

myStepper.step (-feed); עיכוב (700);

myStepper.step (-feed); עיכוב (700);

myStepper.step (-feed); עיכוב (700);

myStepper.step (-feed); עיכוב (700);

}

// קוד כך שבזמן שנקבע הוא יוציא את האוכל והוא יסתובב 5 פעמים, זה להאכיל בלילה

if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("ארוחת ערב!"); myStepper.step (-feed); עיכוב (700);

myStepper.step (-feed); עיכוב (700);

myStepper.step (-feed); עיכוב (700);

myStepper.step (-feed); עיכוב (700);

myStepper.step (-feed); עיכוב (700);

myStepper.step (-feed); עיכוב (700);

myStepper.step (-feed); עיכוב (700); }

// זה יציג את YEAR, MONTH, DAY, HOUR, MINUTE, SECOND בסדרה

Serial.print (now.year (), DEC); Serial.print ('/'); Serial.print (now.month (), DEC); Serial.print ('/'); Serial.print (now.day (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Serial.print (now.hour (), DEC); Serial.print (':'); Serial.print (now.minute (), DEC); Serial.print (':'); Serial.print (now.second (), DEC); Serial.println (); }

אתר שבו השתמשתי עבור RTC מחקתי את רוב הדברים מלבד הצהרות if שאומרות אם ה- RTC מופעל או לא. השתמשתי בעיקר באתר זה כדי ללמוד כיצד לתכנת את ה- RTC

אתר אינטרנט בו השתמשתי עבור מנוע צעד זה עזר לי להבין כיצד לתכנת את המדרגה להפעלה לא ממש שמרתי מזה. זה פשוט עזר לי להבין איך לקודד את זה

שלב 6: בעיות וכיצד תיקנתי אותן

בעיות וכיצד תיקנתי אותן!
בעיות וכיצד תיקנתי אותן!

כמה בעיות שהיו לי

  • הייתי צריך ספק כוח של 12 וולט, הייתה לי רק סוללה של 9 ווט מצאתי אחת והיא נפתרה במהירות.
  • בעת חיבור L298N ל- NEMA 17 היו לי החוטים לא תקינים ב- A ו- A- מה שגרם לזה להציק קצת. פשוט תיקנתי את זה על ידי החלפת החוטים לכיוון השני.
  • ניסיתי להפוך את הקוד לפשוט יותר כי בהצהרה if myStepper.step (-feed); שוב ושוב נראה מבולגן. אז הייתי צריך לשנות את זה בחזרה.
  • הייתה לי צלחת בסיס בגודל הלא נכון כפי שניתן לראות בתמונה, כך שהייתי צריך להדפיס קצת חדש תלת מימד וזה התאים מושלם!
  • הבעיה שיש לי היא שזה נתקע מכיוון שהקציצה קטנה עד כדי כך שהיא תקועה בדרך פשוטה שאני יכול לתקן היא על ידי הגדלת המזווה בכמות קטנה!

מוּמלָץ: