Inhoudsopgave:
- Stap 1: Criteria
- Stap 2: Behuizing
- Stap 3: Elektronica
- Stap 4: Rekeningacceptant
- Stap 5: Testen
- Stap 6: Elektronica naar behuizing
- Stap 7: Laatste testen
- Stap 8: Arduino-code + links
Video: $ 1 Arduino-gebaseerde automaat - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
We kregen ons idee van onze techniekleraar - we dachten allemaal dat het een goed idee zou zijn om een automaat voor onze klas te hebben en hij zei - "cool, maak er een". Het bleek dat een automaat een geweldig seniorenproject zou zijn en als het voltooid was, zou het dienen als een fondsenwerver voor ons engineeringprogramma.
Het wordt een automaat van $ 1 genoemd, niet omdat het $ 1 kost om te maken, maar gewoon omdat de rekeningacceptor een ouder model is dat slechts $ 1 biljetten kost:)
Stap 1: Criteria
We wilden een automaat die bovenop een bureau zou passen en niet te hoog zou zijn. We hebben de afmetingen van de breedte van de tafel genomen om er zeker van te zijn dat de automaat niet aan de tafel hangt.
Stap 2: Behuizing
We hebben onze doos 19 inch breed bij 17 inch lang en 25 inch hoog gemaakt. We gebruikten een CNC-machine om ons hout te zagen. We gebruikten solidworks om de gezichten te ontwerpen en converteerden ze vervolgens naar tekenbestandstypen voor onze CNC-software. We hebben de randen geschuurd en vervolgens vastgeschroefd met 1 ¼”. We bevestigden het voorpaneel met een scharnier en gebruikten ¼ “-schroeven, zodat de schroeven niet naar de andere kant zouden gaan. We hebben ook acrylglas gebruikt dat we hebben gesneden voor de planken en het voorpaneel.
Stap 3: Elektronica
Arduino
We gebruikten een Arduino Mega 2560-bord. We hebben ook Adafruit Motor Boards gebruikt, zodat ze de stappenmotoren kunnen aansturen. We hebben pinnen aan de adafruit's toegevoegd om ze met elkaar te verbinden. Ze werden op elkaar geplaatst. Elk kan 2 motoren aandrijven. Houd er ook rekening mee dat de jumper moet worden aangesloten.
Desktop-voeding
Bestek ATX Voeding met behulp van een adapter om de voeding aan te houden. De adapter is van sparkfun.com en levert verschillende spanningen.
Spoelen in motoren
We hebben solidworks-modellen gemaakt om de motor vast te houden, de spoel vast te pakken en de spoel langs de plank te leiden. We hadden onze coils van ebay gehaald en op maat gesneden. We moesten er ook 3 buigen omdat we er geen 6 kregen met de rechte uiteinden om aan te sluiten op de spoelbevestiging. We hebben ze vervolgens in 3D geprint en aan de spoel en motor bevestigd. De stappenmotoren die we hadden, hebben we in een houder gezet. Het zou de motor vasthouden en de spoel langs een recht pad leiden.
LCD en toetsenbord
We gebruikten een Arduino-toetsenbord en een LCD-scherm aangesloten op een 5V-kabel op de voedingsadapter voor stroom en vervolgens op hetzelfde Arduino-bord
Bedrading
We raden het gebruik van 18 gauge draden aan. In ons geval moesten we compromissen sluiten door verschillende meters te gebruiken omdat we geen 18 meters meer hadden
Loden strip
We gebruikten een LED-strip om de machine te verlichten. We hebben het aangesloten op een 12V-kabel op de voedingsadapter. De LED-strip die we gebruikten had gelukkig een + en - waardoor het aansluiten ervan gemakkelijker werd.
Stap 4: Rekeningacceptant
We gebruikten een Coinco BA30B als onze rekeningacceptor. Het moest rechtstreeks op de muur worden aangesloten als stroombron. We hebben het gecombineerd met een 24-pins adapter van een atx-voeding om in te pluggen en eenvoudigere bedrading mogelijk te maken. De pinouts die we hebben gevolgd, zijn te vinden in de volgende link:
techvalleyprojects.blogspot.com/2011/07/ard…
In ons geval moesten we een houder maken om de rekeningacceptor te verhogen omdat deze anders te laag zou zijn voor onze behuizing.
Stap 5: Testen
Test eerst de elektronica buiten de behuizing om te controleren of de componenten werken. Alle problemen die zich voordoen, moeten worden opgelost voordat ze in de behuizing worden geplaatst.
Stap 6: Elektronica naar behuizing
Zodra je de elektronica hebt getest en tevreden bent met de resultaten, begin je ze in je behuizing te plaatsen. Pas de draadlengtes zo aan dat ze er comfortabel in passen.
Stap 7: Laatste testen
Eenmaal in de behuizing geplaatst, test u alles opnieuw. Als alles werkt zoals je had verwacht, gefeliciteerd! Je hebt een automaat gemaakt.
Stap 8: Arduino-code + links
Downloaden:
Arduino-code
drive.google.com/drive/folders/1oC4MhOcMFy…
SolidWorks-map met deelbestanden en montage
drive.google.com/drive/folders/1amZoypiWcZ…
Voor het geval er iets met de link is gebeurd, wordt hier de Arduino-code volledig weergegeven. Arduino-code <<
#include #include #include "Arduino.h" #include #include #include "utility/Adafruit_MS_PWMServoDriver.h" #include
const int stepsPerRevolution = 200; const byte RIJEN = 4; // vier rijen const byte COLS = 3; //tekentoetsen met drie kolommen [ROWS][COLS] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; byte rowPins [ROWS] = {5, 6, 7, 8}; // maak verbinding met de rij-pinouts van de toetsenbordbyte colPins [COLS] = {2, 3, 4}; // verbind met de kolom pinouts van het toetsenbord Toetsenbord toetsenbord = Toetsenbord (makeKeymap (sleutels), rowPins, colPins, RIJEN, COLS); Adafruit_MotorShield AFMS1 = Adafruit_MotorShield(); Adafruit_StepperMotor *mijnMotor1 = AFMS1.getStepper(-200, 1); Adafruit_StepperMotor *mijnMotor2 = AFMS1.getStepper(-200, 2); Adafruit_MotorShield AFMS2 = Adafruit_MotorShield (0x61); Adafruit_StepperMotor *mijnMotor3 = AFMS2.getStepper(-200, 1); Adafruit_StepperMotor *myMotor4 = AFMS2.getStepper(-200, 2); Adafruit_MotorShield AFMS3 = Adafruit_MotorShield (0x62); Adafruit_StepperMotor *myMotor5 = AFMS3.getStepper(-200, 1); Adafruit_StepperMotor *myMotor6 = AFMS3.getStepper(-200, 2); Adafruit_MotorShield AFMS4 = Adafruit_MotorShield (0x63); Adafruit_StepperMotor *myMotor7 = AFMS4.getStepper(-200, 1); Adafruit_StepperMotor *myMotor8 = AFMS4.getStepper(-200, 2); LiquidCrystal-lcd (1, 11, 9, 10, 12, 13); // Digitale pinnen waarmee het lcd-scherm is verbonden // Constanten // // pin voor het krediet van de rekeningsvalidator (-) lijn const int billValidator = 22;
// Variabelen /
/ opnemen van de duur van de puls (milliseconden) unsigned lange duur;
// met het totale aantal dollars dat is geregistreerd in dollarCounter = 0; void setup() { lcd.begin (16, 1); //set lcd-tekstcoördinaten lcd.print ("Alleen $1 invoegen"); //Stel tekst Serial.begin (9600); // Initialiseer seriële poorten voor communicatie. Serial.println ("Stappentest!"); //Type Out Stepper Test in de seriële monitor zodat we weten welke stappenmotor is ingedrukt. AFMS1.begin(); AFMS2.begin(); AFMS3.begin(); AFMS4.begin(); mijnMotor1->setSpeed(100); // Stel de motorsnelheid in waarop ze myMotor2->setSpeed (100) zullen laten draaien; mijnMotor3->setSpeed(100); mijnMotor4->setSpeed(100); mijnMotor5->setSpeed(100); mijnMotor6->setSpeed(100); mijnMotor7->setSpeed(100); mijnMotor8->setSpeed(100); // Pin-instellingen voor factuurvalidator en knop pinMode (billValidator, INPUT); // Stelt de rekeningaccepter in
// Initialiseer seriële poorten voor communicatie. Serieel.begin(9600); Serial.println("Wachten op dollar…"); } void loop () {{ duration = pulseIn(billValidator, HIGH); //Begint met zoeken naar de pulslengte die is ontvangen van de acceptant van de rekening als (duur > 12000) //Waarde die deze moet overtreffen om te valideren als een verwerkte en authentieke dollar { // Count dollar dollarCounter++; // Controleren op begrip van Serial.print ("Dollar gedetecteerd.\n Totaal: "); // Toon nieuwe dollartelling Serial.println (dollarCounter); // lus om te wachten tot een knop wordt ingedrukt while (duur > 12000) {char key = keypad.getKey(); // krijgt de keyoad aangesloten en begint te zien welke wordt ingedrukt als (toets! = NO_KEY) { // zal zoeken naar ingedrukte toets Serial.println (toets); // laat ons weten welke werd ingedrukt in de seriële monitor } { if (key == '1') { //Als toets 1 wordt ingedrukt, doet het volgende: int keyPressed = key - '1'; myMotor8->step (580, VOORUIT, DUBBEL); // Start de motor en draait 350 graden in voorwaartse richting. mijnMotor8->release(); //Bevrijdt de motor uit de staat waarin hij zichzelf op zijn plaats houdt. opbrengst; // Gaat terug naar het begin van de luscode}
if (key == '2') { //Als toets 2 wordt ingedrukt, doet het volgende: int keyPressed = key - '2'; myMotor7->step (400, VOORUIT, DUBBEL); // Start de motor en draait 350 graden in voorwaartse richting. mijnMotor7->release(); //Laat de motor los uit de staat waarin hij zichzelf op zijn plaats houdt. opbrengst; // Gaat terug naar het begin van de luscode } if (key == '3') { // Als Key 3 wordt ingedrukt, doet het volgende: int keyPressed = key - '3'; myMotor6->stap (400, VOORUIT, DUBBEL); // Start de motor en draait 350 graden in voorwaartse richting. mijnMotor6->release(); //Laat de motor los uit de staat waarin hij zichzelf op zijn plaats houdt. opbrengst; // Gaat terug naar het begin van de luscode } if (key == '4') { // Als Key 4 wordt ingedrukt, doet het volgende: int keyPressed = key - '4'; myMotor5->step (180, VOORUIT, DUBBEL); // Start de motor en draait 350 graden in voorwaartse richting. mijnMotor5->release(); //Bevrijdt de motor uit de staat waarin hij zichzelf op zijn plaats houdt. opbrengst; // Gaat terug naar het begin van de luscode } if (key == '5') { // Als Key 5 wordt ingedrukt, doet het volgende: int keyPressed = key - '5'; myMotor4->step (6900, VOORUIT, DUBBEL); // Start de motor en draait 350 graden in voorwaartse richting. mijnMotor4->release(); //Bevrijdt de motor uit de staat waarin hij zichzelf op zijn plaats houdt. opbrengst; // Gaat terug naar het begin van de luscode } if (key == '6') { // Als Key 6 wordt ingedrukt, doet het volgende: int keyPressed = key - '6'; myMotor3->step (400, VOORUIT, DUBBEL); // Start de motor en draait 350 graden in voorwaartse richting. mijnMotor3->release(); //Laat de motor los uit de staat waarin hij zichzelf op zijn plaats houdt. opbrengst; // Gaat terug naar het begin van de luscode } if (key == '7') { // Als Key 7 wordt ingedrukt, doet het volgende: int keyPressed = key - '7'; myMotor7->step (400, VOORUIT, DUBBEL); // Start de motor en draait 350 graden in voorwaartse richting. mijnMotor7->release(); //Laat de motor los uit de staat waarin hij zichzelf op zijn plaats houdt. opbrengst; // Gaat terug naar het begin van de luscode } if (key == '8') { // Als Key 8 wordt ingedrukt, doet het volgende: int keyPressed = key - '8'; myMotor8->stap (400, VOORUIT, DUBBEL); // Start de motor en draait 350 graden in voorwaartse richting. mijnMotor8->release(); //Laat de motor los uit de staat waarin hij zichzelf op zijn plaats houdt. opbrengst; // Gaat terug naar het begin van de luscode } } } } } } >>
Aanbevolen:
Zelfgemaakte automaat: 8 stappen
DIY Vending Machine: Drie jaar geleden begon ik te studeren aan een elektronische technische hogeschool. Een van de feiten die me destijds verrasten was het aantal rokers, want tijdens pauzes verliet de helft van de studenten de muren van de school om hun emoties los te laten na
Dakloze automaat: 3 stappen
Dakloze automaat: ik probeer honger in onze gemeenschap te voorkomen. Er zijn ongeveer 3.000+ mensen in Oklahoma die dakloos zijn. We hebben ervoor gekozen om een oplossing voor dit probleem te bedenken om onze community als geheel te verbeteren en te laten groeien. Een groot aantal mensen in
Goedkoopste Arduino -- Kleinste Arduino -- Arduino Pro Mini -- Programmeren -- Arduino Neno: 6 stappen (met afbeeldingen)
Goedkoopste Arduino || Kleinste Arduino || Arduino Pro Mini || Programmeren || Arduino Neno:…………………………….. ABONNEER aub op mijn YouTube-kanaal voor meer video's……. Dit project gaat over hoe je een kleinste en goedkoopste arduino ooit kunt aansluiten. De kleinste en goedkoopste arduino is arduino pro mini. Het lijkt op arduino
Automaat--snoepautomaat-- Arduino Bluetooth-gestuurd--DIY: 11 stappen (met afbeeldingen)
Automaat||snoepautomaat|| Arduino Bluetooth Controlled||DIY: In deze instructable laat ik zien hoe je een automaat bouwt met behulp van een Arduino. REAGEER WAT JE OVER DEZE INSTRUCTABLE DENKT, ZODAT IK IN MIJN VERDERE INSTRUCTABLES KAN VERBETEREN Bekijk de video-tutorial voor een beter begrip van het hele
K'nex programmeerbare automaat: 4 stappen
K'nex programmeerbare automaat: een K'nex-automaat met een programmeerbaar pad. Dit afwisselende ontwerp is oorspronkelijk bedacht door Heron of Alexandria. Ik heb niet genoeg string, dus ik kon alleen het korte programma uitvoeren dat in de video wordt getoond