
สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12

นี่คือโครงการของฉันเกี่ยวกับเครื่องให้อาหารสัตว์เลี้ยงอัตโนมัติ ชื่อของฉันคือ Parker ฉันอยู่เกรด 11 และฉันได้ทำโครงการนี้เมื่อวันที่ 11 พฤศจิกายน 2020 เป็น CCA (กิจกรรมปิดท้ายหลักสูตร) ในโครงการนี้ ฉันจะแสดงให้คุณเห็นถึงวิธีการสร้างเครื่องให้อาหารสัตว์เลี้ยงอัตโนมัติด้วย Arduino UNO คุณสามารถเลือกเวลาที่คุณสามารถเปลี่ยนได้ อาหารจะจ่ายผ่านสว่านและให้อาหารสัตว์เลี้ยงของคุณ!
เสบียง
อิเล็กทรอนิกส์:
- Arduino UNO
- L298N - 10$ - ควบคุม Nema 17
- NEMA 17 - 10$ - หมุนสว่านเพื่อให้อาหารกระจาย
- RTC (DS1307) - 10$ - ให้เวลา
- แหล่งจ่ายไฟ 12V - 5$ - ขับเคลื่อนทุกอย่าง
- Mini Breadboard - สำหรับพื้นที่เดินสายไฟเพิ่มเติม
- สายจัมเปอร์ - เชื่อมต่อทุกอย่าง
- สายหญิงกับชาย - เชื่อมต่อทุกอย่าง
ฮาร์ดแวร์:
- เส้นใยพิมพ์ 3 มิติ - สำหรับเครื่องพิมพ์ 3 มิติ
- 2 M4 Bolts - ยึดแผ่นฐานเข้าที่
- น็อต Nema 17 4 ตัว - กด nema ค้างไว้
- PVC T 48 มม. ขนาดภายใน 66 มม. ขนาดภายนอก - 3$
เครื่องมือ:
- เครื่องพิมพ์ 3 มิติ
- เจาะ
- ปืนบัดกรี
ขั้นตอนที่ 1: ภาพรวมของการออกแบบ




การออกแบบเครื่องให้อาหารสัตว์เลี้ยงนั้นง่ายมาก ฮอปเปอร์จะไปที่ด้านบนของ PVC T จากนั้นมีฝาปิดที่ด้านหลังของ PVC T (ดังแสดงในรูปภาพ) โดยที่ Nema 17 ติดอยู่ จากนั้น Nema 17 จะถูกดันเข้าไปที่ด้านหลังของสว่านซึ่งสามารถมองเห็นได้ด้านบน และโบลต์จะไปที่ด้านข้างเพื่อยึดเข้าที่เพื่อไม่ให้รูที่ด้านบนเห็นบิดเบี้ยว!
จากนั้นสว่านก็จะดันอาหารออกจากท่อและใส่ชาม!
ขั้นตอนที่ 2: ภาพรวมของ Code



RTC & The stepper มี libary ชื่อ RTClib.h และ Stepper.h ซึ่งเพิ่มโค้ดแบบง่ายสำหรับ RTC & Stepper คำสั่ง if นั้นง่ายมาก มันบอกว่าถ้าชั่วโมง & นาทีเท่ากับเวลาดังกล่าว มันจะหมุน nema ซึ่งจะจ่ายอาหาร รหัสที่เหลือนั้นเข้าใจง่ายมากแม้กระทั่งกับคนที่มีประสบการณ์มาทั้งวัน
ขั้นตอนที่ 3: การติด Nema 17 เข้ากับ Base Plate & Auger



ขั้นแรก คุณต้องนำเพลทฐานของคุณและติดเข้ากับ Nema 17 ของคุณโดยใช้รูที่ทำไว้ล่วงหน้าบนเพลทฐาน เมื่อเสร็จแล้วคุณต้องการแนบสว่านกับ Nema โดยใช้รูด้านหลัง จากนั้นเชื่อมต่อแผ่นฐานกับสว่านและ Nema ที่แนบมาจากนั้นขันสลักเกลียว M2 ลงในแต่ละด้าน
ขั้นตอนที่ 4: การเดินสายไฟ 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
กำลังเชื่อมต่อ 12v และ Arduino กับ L298N (ไม่พบ 12V ดังนั้นลองนึกภาพแบตเตอรี่ 9V เป็นพลังงาน)
- โวลต์ เป็น 12V
- กราวด์ไปที่ GND
- 5V ถึง 5V บน Breadboard
การเชื่อมต่อ RTC กับ Arduino
- GND เป็น GND
- 5V ถึง 5V บน Breadboard
- SDA เป็น A5
- SCL ถึง A4
หมุดจัมเปอร์
หมุดจัมเปอร์ทั้งหมดควรจะอยู่บน L298N
ขั้นตอนที่ 5: การเข้ารหัสด้วยความคิดเห็น



รหัสชัดเจนในภาพด้านบน
// ชื่อ: Parker Frederick
// ชื่อโครงการ: Auto Pet Feeder // วันที่: วันอังคารที่ 10 พฤศจิกายน 2020 // ครู: M. Bonisteel // คำอธิบาย: ให้อาหารสัตว์เลี้ยงของคุณตามเวลาที่กำหนด!
// Libaries สำหรับสิ่งที่ฉันใช้ #include #include #include "RTClib.h"
RTC_DS1307 rtc; //บอกว่าฉันกำลังใช้ RTC อะไรอยู่
// นี่คือที่ที่คุณตั้งเวลาสำหรับอาหาร
// ชั่วโมง int mornFeedTime = 12; int nightFeedTime = 7; //นาที int mornFeedTimeM = 29; int nightFeedTimeM = 00; //วินาที int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7][12] = {"วันอาทิตย์", "วันจันทร์", "วันอังคาร", "วันพุธ", "วันพฤหัสบดี", "วันศุกร์", "วันเสาร์"}; // ทำให้วันธรรมดากลายเป็นวันของสัปดาห์
const int feed = 200; // นี่คือขั้นตอนของคุณ ดังนั้นคุณต้องการให้หมุนกี่ครั้ง
Stepper myStepper(ฟีด, 8, 9, 10, 11); // หมุดของคุณสำหรับ Nema 17 และสเต็ปเปอร์อื่นๆ ส่วนใหญ่
การตั้งค่าเป็นโมฆะ () { Serial.begin (9600);
ในขณะที่ (!ซีเรียล); // หาก RTC ไม่ทำงาน RTC จะแสดงในหน้าจออนุกรมถ้า (! rtc.begin()) { Serial.println("ไม่พบ RTC"); ในขณะที่ (1); }
// สิ่งนี้จะบอกคุณว่า Real Time Clock กำลังทำงานอยู่หรือไม่ และมันจะแสดงบนหน้าจออนุกรมถ้า (! rtc.isrunning()) { Serial.println("RTC is running!");
rtc.adjust(DateTime(F(_DATE_), F(_TIME_))); // การดำเนินการนี้จะใช้เวลาคอมพิวเตอร์ของคุณและใช้กับ RTC
// หากคุณต้องการตั้งเวลาแทนเวลาที่คอมพิวเตอร์ คุณสามารถทำได้ที่นี่ //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // ปี/เดือน/วัน/ชั่วโมง/นาที/วินาที } myStepper.setSpeed(200); // ความเร็วที่คุณต้องการให้เลี้ยว }
วงเป็นโมฆะ () { DateTime ตอนนี้ = rtc.now ();
// สิ่งนี้จะทำให้ตัวแปรเหล่านี้เป็นชั่วโมงที่เป็นอยู่ในขณะนี้ ฯลฯ int hr = now.hour(); int mi = ตอนนี้นาที (); int se = ตอนนี้วินาที ();
// รหัสดังนั้นเมื่อถึงเวลาที่กำหนด มันจะจ่ายอาหารและมันจะหมุน 5 ครั้ง นี่ถ้าเป็นอาหารตอนเช้า
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) { Serial.println ("อาหารเช้า!"); myStepper.step(-ฟีด); ล่าช้า (700);
myStepper.step(-ฟีด); ล่าช้า (700);
myStepper.step(-ฟีด); ล่าช้า (700);
myStepper.step(-ฟีด); ล่าช้า (700);
myStepper.step(-ฟีด); ล่าช้า (700);
myStepper.step(-ฟีด); ล่าช้า (700);
myStepper.step(-ฟีด); ล่าช้า (700);
}
// รหัสดังนั้นเมื่อถึงเวลาที่กำหนด มันจะจ่ายอาหาร และจะหมุน 5 ครั้ง นี่คือการป้อนอาหารเวลากลางคืน
ถ้า (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) { Serial.println ("Dinner!"); myStepper.step(-ฟีด); ล่าช้า (700);
myStepper.step(-ฟีด); ล่าช้า (700);
myStepper.step(-ฟีด); ล่าช้า (700);
myStepper.step(-ฟีด); ล่าช้า (700);
myStepper.step(-ฟีด); ล่าช้า (700);
myStepper.step(-ฟีด); ล่าช้า (700);
myStepper.step(-ฟีด); ล่าช้า (700); }
// จะแสดง YEAR, MONTH, DAY, HOUR, MINUTE, SECOND ในซีเรียล
Serial.print (ตอนนี้ปี (), ธ.ค.); Serial.print('/'); Serial.print(now.month(), ธ.ค.); Serial.print('/'); Serial.print(now.day(), ธ.ค.); Serial.print(" ("); Serial.print(daysOfTheWeek[now.dayOfTheWeek()]); Serial.print(") "); Serial.print(" ("); Serial.print(daysOfTheWeek[ตอนนี้.dayOfTheWeek()]); Serial.print(now.hour(), ธ.ค.); Serial.print(':'); Serial.print(now.minute(), ธ.ค.); Serial.print(':'); Serial.print (ตอนนี้วินาที (), ธ.ค.); Serial.println(); }
เว็บไซต์ที่ฉันใช้สำหรับ RTC ฉันลบเกือบทุกอย่างยกเว้นคำสั่ง if ที่ระบุว่า RTC เปิดหรือปิดอยู่ ฉันใช้เว็บไซต์นี้เป็นหลักเพื่อเรียนรู้วิธีตั้งโปรแกรม RTC
เว็บไซต์ที่ฉันใช้สำหรับ Stepper motor ช่วยให้ฉันเข้าใจวิธีตั้งโปรแกรม stepper ให้ทำงาน ฉันไม่ได้เก็บอะไรไว้เลย มันช่วยให้ฉันเข้าใจวิธีเขียนโค้ด
ขั้นตอนที่ 6: ปัญหาและฉันจะแก้ไขได้อย่างไร

ปัญหาเล็กน้อยที่ฉันมี
- ฉันต้องการแหล่งจ่ายไฟ 12v ฉันมีแบตเตอรี่ 9v เท่านั้น ฉันพบหนึ่งก้อนและมันได้รับการแก้ไขอย่างรวดเร็ว
- เมื่อเชื่อมต่อ L298N กับ NEMA 17 ฉันมีสายไฟผิดที่ A และ A- ซึ่งทำให้กระวนกระวายใจเล็กน้อย ฉันเพียงแค่แก้ไขโดยเปลี่ยนสายไฟเป็นอย่างอื่น
- พยายามทำให้โค้ดง่ายขึ้นเพราะในคำสั่ง if myStepper.step(-feed); ซ้ำแล้วซ้ำเล่าดูยุ่งเหยิง เลยต้องเปลี่ยนกลับ
- ฉันมีเพลทฐานผิดขนาดตามที่เห็นในรูปภาพ ดังนั้นฉันจึงต้องพิมพ์ 3D ใหม่เล็กน้อยและมันลงตัวพอดี!
- ปัญหาที่ฉันมีคือมันติดขัดเนื่องจากสว่านมีขนาดเล็กดังนั้นมันจึงติดขัด วิธีง่ายๆ ที่ฉันสามารถแก้ไขได้คือขยายสว่านให้ใหญ่ขึ้นเล็กน้อย!
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน

การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน

การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน

วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
เครื่องให้อาหารสุนัขอัตโนมัติ: 5 ขั้นตอน

Automatic Dog Feeder: นี่คือการสอนทีละขั้นตอนเกี่ยวกับวิธีการสร้างเครื่องให้อาหารสุนัขอัตโนมัติโดยใช้ Arduino วิธีนี้เหมาะอย่างยิ่งหากคุณไม่อยู่บ้านเป็นเวลานาน แทนที่จะให้สุนัขของคุณต้องรออาหารทั้งวัน หรือให้คุณต้องกลับบ้านเพื่อป้อนอาหาร อุปกรณ์นี้
Raspberry Pi เครื่องให้อาหารสุนัขอัตโนมัติ & สตรีมวิดีโอสด: 3 ขั้นตอน

Raspberry Pi Automatic Dog Feeder & Live Video Streamer: นี่คือเครื่องให้อาหารสุนัขอัตโนมัติ Raspberry PI ของฉัน ฉันเคยทำงานตั้งแต่เช้า 11.00 น. ถึง 21.00 น. สุนัขของฉันจะบ้าถ้าฉันไม่ให้อาหารมันตรงเวลา ท่อง google เพื่อซื้อเครื่องให้อาหารอัตโนมัติ พวกเขาไม่มีในอินเดียและการนำเข้าที่มีราคาแพง