Inhoudsopgave:

Automatische hondenvoeder: 6 stappen
Automatische hondenvoeder: 6 stappen

Video: Automatische hondenvoeder: 6 stappen

Video: Automatische hondenvoeder: 6 stappen
Video: Reanimeren in 6 stappen 2024, November
Anonim
Automatische hondenvoeder
Automatische hondenvoeder

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

Overzicht van ontwerp
Overzicht van ontwerp
Overzicht van ontwerp
Overzicht van ontwerp
Overzicht van ontwerp
Overzicht van ontwerp
Overzicht van ontwerp
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

Overzicht van code
Overzicht van code
Overzicht van code
Overzicht van code
Overzicht van code
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

Nema 17 bevestigen aan grondplaat en vijzel
Nema 17 bevestigen aan grondplaat en vijzel
Nema 17 bevestigen aan grondplaat en vijzel
Nema 17 bevestigen aan grondplaat en vijzel
Nema 17 bevestigen aan bodemplaat en vijzel
Nema 17 bevestigen aan bodemplaat 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

Bedrading L298N & RTC
Bedrading L298N & RTC
Bedrading L298N & RTC
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

Coderen met opmerkingen
Coderen met opmerkingen
Coderen met opmerkingen
Coderen met opmerkingen
Coderen met opmerkingen
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

Problemen en hoe ik ze heb opgelost!
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: