Inhoudsopgave:
- Benodigdheden
- Stap 1: Overzicht van ontwerp
- Stap 2: Overzicht van code
- Stap 3: Nema 17 bevestigen aan grondplaat en vijzel
- Stap 4: Bedrading L298N & RTC
- Stap 5: Coderen met opmerkingen
- Stap 6: Problemen en hoe ik ze heb opgelost
Video: Automatische hondenvoeder: 6 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Dit is mijn project van een Auto Pet Feeder. Mijn naam is Parker, ik zit in groep 11 en ik heb dit project op 11 november 2020 gemaakt als een CCA (Course Culminating Activity) in dit project zal ik je laten zien hoe je een Automatic Pet Feeder maakt met Arduino UNO. U kunt een tijdstip kiezen dat u kunt wijzigen. Het voer komt uit een vijzel en voedt uw huisdieren!
Benodigdheden
Elektronica:
- Arduino UNO
- L298N - 10 $ - Bestuurt de Nema 17"
- NEMA 17 - 10$ - Draait de vijzel zodat het voedsel wordt afgegeven
- RTC (DS1307) - 10$ - Geeft de tijd
- 12V-voeding - 5 $ - Voorziet alles
- Mini Breadboard - Voor extra bedradingsruimte
- Jumper Wires - Verbindt alles
- Vrouwelijke naar mannelijke draden - Verbindt alles
Hardware:
- 3D-printfilament - voor 3D-printer
- 2 M4-bouten - Houd de grondplaat op zijn plaats
- 4 Nema 17 bouten - Houd nema vast
- PVC T 48mm binnenmaat 66mm buitenmaat - 3$
Gereedschap:
- 3D-printer
- Oefening
- Soldeerpistool
Stap 1: Overzicht van ontwerp
Het ontwerp van de voerbak voor huisdieren is heel eenvoudig. Een trechter gaat op de bovenkant van de PVC T. Vervolgens gaat een deksel op de achterkant van de PVC T (zoals weergegeven in de afbeelding) met de Nema 17 eraan bevestigd. Vervolgens wordt de Nema 17 in de achterkant van de Auger geduwd, wat hierboven te zien is, en een bout gaat in de zijkant om hem op zijn plaats te houden, zodat hij het gat dat hierboven te zien is niet vervormt!
Dan duwt de vijzel het voedsel gewoon uit de pijp en in een kom!
Stap 2: Overzicht van code
De RTC & The stepper hebben een bibliotheek genaamd RTClib.h en Stepper.h die vereenvoudigde code toevoegt voor de RTC & Stepper. De if-statements zijn heel eenvoudig, het zegt dat als het uur en de minuten gelijk zijn aan de genoemde tijd, het de nema zal draaien die het voedsel zal afgeven. De rest van de code is heel gemakkelijk te begrijpen, zelfs voor iemand met een dag ervaring.
Stap 3: Nema 17 bevestigen aan grondplaat en vijzel
Eerst wil je je grondplaat nemen en deze op je Nema 17 bevestigen met behulp van de voorgeboorde gaten op de grondplaat. Als je dat hebt gedaan, wil je de boor aan de Nema bevestigen met behulp van het achterste gat erop. Verbind vervolgens de basisplaat met de vijzel en Nema bevestigd en schroef vervolgens de M2-bouten aan elke kant.
Stap 4: Bedrading L298N & RTC
Deze stap zal u vertellen hoe u de L298N & RTC moet bedraden
We beginnen met de pinnen 8, 9, 10, 11 naar de L298N
- Pin 8 (Wit) naar IN1
- Pin 9 (paars) naar IN2
- Pin 10 (roze) naar IN3
- PIN 11 (geel) naar IN4
Vervolgens gaan we de Nema 17 aansluiten op de L298N
- OUT1 naar 1 op NEMA
- OUT2 naar 2 op NEMA
- OUT3 naar 3 op NEMA
- OUT4 tot 4 op NEMA
12v en Arduino aansluiten op L298N (kon geen 12V vinden, dus stel je een 9V-batterij voor als stroom)
- Volt tot 12V
- Geaard naar GND
- 5V tot 5V op Breadboard
RTC verbinden met Arduino
- GND naar GND
- 5V tot 5V op Breadboard
- SDA naar A5
- SCL naar A4
Jumper pinnen
Alle jumperpinnen horen op de L298N. te zitten
Stap 5: Coderen met opmerkingen
De code duidelijker in afbeeldingen hierboven
// Naam: Parker Frederick
// Projectnaam: Auto Pet Feeder // Datum: dinsdag 10 november 2020 // Docent: M. Bonisteel // Desc: Voer uw huisdieren op een bepaald tijdstip!
// Bibliotheken voor de dingen die ik heb gebruikt #include #include #include "RTClib.h"
RTC_DS1307 rtc; // Zegt welke RTC ik gebruik
// Hier stel je de tijd in voor het eten
// Uren int mornFeedTime = 12; int nachtFeedTime = 7; // Minuten int mornFeedTimeM = 29; int nachtFeedTimeM = 00; // Seconden int mornFeedTimeS = 20; int nachtFeedTimeS = 00;
char daysOfTheWeek [7][12] = {"zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"}; // Maakt dat normale dagen de dagen van de week worden
const int-feed = 200; // Dit zijn jouw stappen, dus hoe vaak wil je het draaien
Stepper myStepper(feed, 8, 9, 10, 11); // Je pinnen voor de Nema 17 en de meeste andere steppers
void setup() { Serial.begin(9600);
terwijl (!Serial); // Als de RTC niet werkt, wordt deze weergegeven in het seriële scherm if (! rtc.begin()) { Serial.println("Kon RTC niet vinden"); terwijl (1); }
// Dit zal u vertellen of de Real Time Clock wel of niet loopt en het zal het op het seriële scherm weergeven als (! rtc.isrunning()) { Serial.println("RTC is actief!");
rtc.adjust(DateTime(F(_DATE_), F(_TIME_))); // Dit kost je computer tijd en gebruikt het op de RTC
// Als u een vaste tijd wilt hebben in plaats van de computertijd, kunt u dat hier doen //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Jaar/Maand/Dag/Uur/Minuut/Seconde} myStepper.setSpeed(200); // Snelheid waarmee u wilt draaien }
void loop() { DateTime nu = rtc.now();
// Dit maakt deze variabele het uur dat het nu is enz. int hr = now.hour(); int mi = nu.minuut(); int se = nu.seconde();
// Codeer zodat hij op de ingestelde tijd het voer afgeeft en 5 keer ronddraait, dit voor de ochtendvoeding
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) { Serial.println("Ontbijt!"); mijnStepper.step(-feed); vertraging (700);
mijnStepper.step(-feed); vertraging (700);
mijnStepper.step(-feed); vertraging (700);
mijnStepper.step(-feed); vertraging (700);
mijnStepper.step(-feed); vertraging (700);
mijnStepper.step(-feed); vertraging (700);
mijnStepper.step(-feed); vertraging (700);
}
// Codeer zodat op de ingestelde tijd het voedsel wordt afgegeven en het 5 keer ronddraait, dit is voor nachtvoeding
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) { Serial.println("Diner!"); mijnStepper.step(-feed); vertraging (700);
mijnStepper.step(-feed); vertraging (700);
mijnStepper.step(-feed); vertraging (700);
mijnStepper.step(-feed); vertraging (700);
mijnStepper.step(-feed); vertraging (700);
mijnStepper.step(-feed); vertraging (700);
mijnStepper.step(-feed); vertraging (700); }
// Dit toont het JAAR, MAAND, DAG, UUR, MINUUT, SECOND in de serie
Serial.print(nu.jaar(), DEC); Serieel.print('/'); Serial.print(nu.maand(), DEC); Serieel.print('/'); Serial.print(nu.day(), DEC); Serial.print(" ("); Serial.print(daysOfTheWeek[now.dayOfTheWeek()]); Serial.print(") "); Serial.print(nu.uur(), DEC); Serieel.print(':'); Serial.print(nu.minute(), DEC); Serieel.print(':'); Serial.print (nu.second(), DEC); Serieel.println(); }
Website die ik voor RTC heb gebruikt Ik heb de meeste dingen verwijderd, behalve de if-statements die zeggen of de RTC aan of uit staat. Ik heb deze website voornamelijk gebruikt om de RTC te leren programmeren
Website die ik voor Stepper motor heb gebruikt, dit heeft me geholpen te begrijpen hoe ik de stepper moet programmeren om te draaien. Ik heb er niet echt iets van onthouden. Het hielp me gewoon te begrijpen hoe ik het moest coderen
Stap 6: Problemen en hoe ik ze heb opgelost
Een paar problemen die ik had
- Ik had een 12v-voeding nodig, ik had alleen een 9v-batterij, ik vond er een en het was snel opgelost.
- Bij het aansluiten van L298N met NEMA 17 had ik de draden verkeerd op A en A- waardoor het een beetje jitterde. Ik heb het eenvoudig opgelost door de draden andersom te veranderen.
- Geprobeerd om code eenvoudiger te maken omdat in de if-instructie myStepper.step(-feed); keer op keer zag er rommelig uit. Dus ik moest het terug veranderen.
- Ik had de verkeerde maat grondplaat zoals te zien op de foto, dus ik moest een beetje een nieuwe 3D-printen en het paste perfect!
- Het probleem dat ik heb is dat hij vastloopt, omdat de boor te klein is, dus hij loopt vast. Een eenvoudige manier die ik kan oplossen is door de boor een klein beetje te vergroten!
Aanbevolen:
Automatische hondenvoeder !!: 4 stappen
Automatische Dog Feederrr!!: Makkelijk, Behulpzaam en Gezond
Automatische invoer: 3 stappen
Automatische feeder: waar gaat ons project over? Ons project is een automatische feeder voor honden. Het is een eenvoudige manier om uw hond te voeren. Bijvoorbeeld als u op reis gaat en u kent niemand die uw hond voor u kan voeren. De automatische feeder is verantwoordelijk voor
Corona Safe: automatische waterbesparende kraan: 6 stappen
Corona Safe: Automatische Waterbesparende Kraan: We moeten allemaal af en toe onze handen wassen om het virus en de bacteriën kwijt te raken. Speciaal voor het Corona virus moeten we onze handen 20 seconden wassen om er helemaal vanaf te komen. Ook de zeepdispenser of de kraanknop is misschien niet hygiënisch of k
Automatische hondenvoeder: 5 stappen
Automatische hondenvoeder: dit is een stapsgewijze zelfstudie over het maken van een automatische hondenvoeder met Arduino. Dit is perfect als u een groot deel van de dag van huis bent. In plaats van dat uw hond de hele dag op eten moet wachten, of dat u naar huis moet duiken om hem te voeren, is dit apparaat
Raspberry Pi automatische hondenvoeder en live videostreamer - Ajarnpa
Raspberry Pi automatische hondenvoeder en live videostreamer: dit is mijn door Raspberry PI aangedreven automatische hondenvoeder. Ik werkte van 's morgens 11 uur tot 21 uur. Mijn hond wordt gek als ik hem niet op tijd voer. Surfde op google om automatische voedselvoeders te kopen, ze zijn niet beschikbaar in India en dure importmogelijkheden