Indholdsfortegnelse:
- Trin 1: Kriterier
- Trin 2: Kabinet
- Trin 3: Elektronik
- Trin 4: Bill Acceptor
- Trin 5: Test
- Trin 6: Elektronik til kabinet
- Trin 7: Afsluttende test
- Trin 8: Arduino -kode + links
Video: $ 1 Arduino-baseret automat: 8 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Vi fik vores idé fra vores ingeniørlærer - vi troede alle, at det ville være en god idé at have en automat til vores klasse, og han sagde - "sejt, lav en". Det viste sig, at en automat ville være et godt seniorprojekt, og når den var færdig, ville fungere som en fundraiser til vores ingeniørprogram.
Det kaldes en automat til $ 1, ikke fordi det koster $ 1 at lave, men simpelthen fordi regningsacceptoren er en ældre model, der kun tager $ 1 regninger:)
Trin 1: Kriterier
Vi ville have en automat, der ville passe oven på et skrivebord og ikke være for høj. Vi tog dimensionerne på bordets bredde for at sikre, at vi ikke havde automaten hængende fra bordet.
Trin 2: Kabinet
Vi lavede vores kasse 19 tommer bred med 17 centimeter lang med 25 centimeter høj. Vi brugte en CNC -maskine til at skære vores træ. Vi brugte solidworks til at designe ansigterne og konverterede dem derefter til tegnefiltyper til vores CNC -software. Vi slibede kanterne og skruede dem derefter ind med 1 ¼”. Vi fastgjorde frontpanelet med et hængsel og brugte ¼ “skruer, så skruerne ikke gik igennem til den anden side. Vi brugte også akrylglas, som vi skar til hylderne og frontpanelet.
Trin 3: Elektronik
Arduino
Vi brugte et Arduino Mega 2560 Board. Vi brugte også Adafruit Motor Boards, så de kan køre trinmotorer. Vi tilføjede stifter til adafrugten, så de kunne oprette forbindelse til hinanden. De blev indsat dem oven på hinanden. Hver enkelt kan køre 2 motorer. Bemærk også, at jumperen skal tilsluttes.
Desktop strømforsyning
Bestek ATX strømforsyning ved hjælp af en adapter til at holde strømforsyningen tændt. Adapteren er fra sparkfun.com og giver forskellige spændinger.
Spoler ind i motorer
Vi lavede solidworks -modeller til at holde motoren, tage fat i spolen og lede spolen langs hylden. Vi havde opnået vores spoler fra ebay og skåret dem til dimension. Vi var også nødt til at bøje 3 af dem, da vi ikke fik 6 med de lige ender til at forbinde til spolemonteringen. Vi printede dem derefter 3D og fastgjorde dem til spolen og motoren. De steppermotorer, vi havde, satte vi i en holder. Det ville holde motoren og lede spolen langs en lige sti.
LCD og tastatur
Vi brugte et Arduino -tastatur og en LCD -skærm tilsluttet en 5V -ledning på strømforsyningsadapteren til strøm og derefter til det samme Arduino -kort
Ledninger
Vi anbefaler brug af 18 gauge ledninger. I vores tilfælde måtte vi gå på kompromis ved at bruge forskellige målere, fordi vi løb tør for 18 målere
LED Strip
Vi brugte en LED -strimmel til at tænde maskinen. Vi sluttede det til en 12V -ledning på strømforsyningsadapteren. LED -båndet, vi brugte, havde heldigvis et + og - på, hvilket gjorde processen med at forbinde det lettere.
Trin 4: Bill Acceptor
Vi brugte en Coinco BA30B som vores regningsacceptor. Den skulle forbindes direkte til væggen som en strømkilde. Vi kombinerede det med en 24-benet adapter fra en atx-strømforsyning til at tilslutte og muliggøre lettere ledningsføring. Pinouts vi fulgte findes i følgende link:
techvalleyprojects.blogspot.com/2011/07/ard…
I vores tilfælde var vi nødt til at oprette en holder til at hæve regningsacceptoren, fordi det ellers ville være for lavt til vores kabinet.
Trin 5: Test
Test først elektronikken uden for kabinettet for at sikre, at komponenterne fungerer. Eventuelle problemer, der opstår, bør løses, inden de placeres i kabinettet.
Trin 6: Elektronik til kabinet
Når du har testet elektronikken og er tilfreds med deres resultater, skal du begynde at placere dem i dit kabinet. Juster trådlængderne til, så de sidder behageligt inde.
Trin 7: Afsluttende test
Når det er placeret i kabinettet, skal du teste alt igen. Hvis alt fungerer som du havde forventet, tillykke! Du lavede en automat.
Trin 8: Arduino -kode + links
Downloads:
Arduino kode
drive.google.com/drive/folders/1oC4MhOcMFy…
SolidWorks -mappe med delfiler og samling
drive.google.com/drive/folders/1amZoypiWcZ…
Bare hvis der er sket noget med linket, er her arduino -koden vist fuldt ud. Arduino -kode <<
#include #include #include "Arduino.h" #include #include #include "utility/Adafruit_MS_PWMServoDriver.h" #include
const int stepsPerRevolution = 200; const byte Rækker = 4; // fire rækker const byte COLS = 3; // tre kolonner tegnetaster [RÆKKER] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; byte rowPins [ROWS] = {5, 6, 7, 8}; // opret forbindelse til rækkeudklipningerne i tastaturets byte colPins [COLS] = {2, 3, 4}; // opret forbindelse til kolonnens pinouts på tastaturet Tastatur tastatur = Tastatur (makeKeymap (nøgler), rowPins, colPins, ROWS, COLS); Adafruit_MotorShield AFMS1 = Adafruit_MotorShield (); Adafruit_StepperMotor *myMotor1 = AFMS1.getStepper (-200, 1); Adafruit_StepperMotor *myMotor2 = AFMS1.getStepper (-200, 2); Adafruit_MotorShield AFMS2 = Adafruit_MotorShield (0x61); Adafruit_StepperMotor *myMotor3 = 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 stifter, lcd'en er forbundet til // Konstanter // // pin til regningsvalidatorens kredit (-) linje const int billValidator = 22;
// Variabler /
/ registrering af varigheden af puls (millisekunder) usigneret lang varighed;
// holder den samlede dollar registreret int dollarCounter = 0; ugyldig opsætning () {lcd.begin (16, 1); // indstil lcd -tekstkoordinater lcd.print ("Indsæt kun $ 1"); // Indstil tekst Serial.begin (9600); // Initialiser serielle porte til kommunikation. Serial.println ("Stepper test!"); // Skriv Stepper Test ud i den serielle monitor, så vi ved, hvilken trinmotor der trykkes på. AFMS1.begin (); AFMS2.begin (); AFMS3.begin (); AFMS4.begin (); myMotor1-> setSpeed (100); // Indstil motorhastighed, hvormed de vil køre myMotor2-> setSpeed (100); myMotor3-> setSpeed (100); myMotor4-> setSpeed (100); myMotor5-> setSpeed (100); myMotor6-> setSpeed (100); myMotor7-> setSpeed (100); myMotor8-> setSpeed (100); // Pin -opsætninger til regningsvaliderer og knap pinMode (billValidator, INPUT); // Indstiller billaccepter
// Initialiser serielle porte til kommunikation. Serial.begin (9600); Serial.println ("Venter på dollar …"); } void loop () {{duration = pulseIn (billValidator, HIGH); // Begynder at lede efter pulslængden, der modtages fra regningsacceptoren, hvis (varighed> 12000) // Værdien, som den skal overgå for at validere som en forarbejdet og autentisk dollar {// Count dollar dollarCounter ++; // Kontrollerer, om Serial.print er forstået ("Detekteret dollar. / N I alt:"); // Vis nyt dollartal Serial.println (dollarCounter); // loop for at vente, indtil der trykkes på en knap, mens (varighed> 12000) {char key = keypad.getKey (); // får tastaturet tilsluttet og begynder at se, hvilken der trykkes på, hvis (tast! = NO_KEY) {// vil lede efter tastetrykket Serial.println (tast); // fortæller os, hvilken der blev trykket på i den serielle skærm} {if (key == '1') {// Hvis der trykkes på tast 1, gør følgende: int keyPressed = key - '1'; myMotor8-> trin (580, FREM, DOBBELT); // Starter motor og roterer 350 grader fremad. myMotor8-> release (); // Frigør motoren fra den tilstand, hvor den holder sig på plads. Vend tilbage; // Går tilbage til begyndelsen af loop -koden}
if (key == '2') {// Hvis der trykkes på tast 2, gør følgende: int keyPressed = key - '2'; myMotor7-> trin (400, FREM, DOBBELT); // Starter motor og roterer 350 grader fremad. myMotor7-> release (); // Frigør motoren fra den tilstand, hvor den holder sig på plads. Vend tilbage; // Går tilbage til begyndelsen af loop -koden} if (key == '3') {// Hvis der trykkes på tast 3, gør følgende: int keyPressed = key - '3'; myMotor6-> trin (400, FREM, DOBBELT); // Starter motor og roterer 350 grader fremad. myMotor6-> release (); // Frigør motoren fra den tilstand, hvor den holder sig på plads. Vend tilbage; // Går tilbage til begyndelsen af loop -koden} if (key == '4') {// Hvis der trykkes på tast 4, gør følgende: int keyPressed = key - '4'; myMotor5-> trin (180, FREM, DOBBELT); // Starter motor og roterer 350 grader fremad. myMotor5-> release (); // Frigør motoren fra den tilstand, hvor den holder sig på plads. Vend tilbage; // Går tilbage til begyndelsen af loop -koden} if (key == '5') {// Hvis der trykkes på tast 5, gør følgende: int keyPressed = key - '5'; myMotor4-> trin (6900, FREM, DOBBELT); // Starter motor og roterer 350 grader fremad. myMotor4-> release (); // Frigør motoren fra den tilstand, hvor den holder sig på plads. Vend tilbage; // Går tilbage til begyndelsen af loop -koden} if (key == '6') {// Hvis der trykkes på tast 6, gør følgende: int keyPressed = key - '6'; myMotor3-> trin (400, FREM, DOBBELT); // Starter motor og roterer 350 grader fremad. myMotor3-> release (); // Frigør motoren fra den tilstand, hvor den holder sig på plads. Vend tilbage; // Går tilbage til begyndelsen af loop -koden} if (key == '7') {// Hvis der trykkes på tast 7, gør følgende: int keyPressed = key - '7'; myMotor7-> trin (400, FREM, DOBBELT); // Starter motor og roterer 350 grader fremad. myMotor7-> release (); // Frigør motoren fra den tilstand, hvor den holder sig på plads. Vend tilbage; // Går tilbage til begyndelsen af loop -koden} if (key == '8') {// Hvis der trykkes på tast 8, gør følgende: int keyPressed = key - '8'; myMotor8-> trin (400, FREM, DOBBELT); // Starter motor og roterer 350 grader fremad. myMotor8-> release (); // Frigør motoren fra den tilstand, hvor den holder sig på plads. Vend tilbage; // Går tilbage til begyndelsen af sløjfekoden}}}}}} >>
Anbefalede:
DIY -automat: 8 trin
DIY -automat: For tre år siden begyndte jeg at studere på et elektronisk teknisk college. En af de fakta, der overraskede mig på det tidspunkt, var antallet af rygere, fordi halvdelen af eleverne i pauser forlod skolens vægge for at losse deres følelser efter
Automat med skala til bekræftelse af Itemdrop (Raspberry Pi): 5 trin
Automat med skala for at bekræfte Itemdrop (Raspberry Pi): Velkommen medmager, til et skoleprojekt besluttede jeg mig for at lave en snackautomat. Vores opgave var at skabe en rekreativ enhed, der brugte mindst 3 sensorer og 1 aktuator. Jeg gik for at lave en automat, dels fordi jeg havde adgang til nogle
Arduino kontrolleret mini -automat: 9 trin
Arduino kontrolleret mini -automat: Dette er vores automat, den sælger tre sjove snickers -candy barer. De overordnede dimensioner er omkring 12 " x 6 " x 8 ". Denne automat styres af en arduino, med brødbræt og en servomotor
Løgnedetektor+automat: Med Arduino Leonardo: 6 trin
Løgnedetektor+automat: Med Arduino Leonardo: Denne løgnedetektor er ikke din normale gennemsnitlige løgnedetektor, det er en løgnedetektor, der har en automat tilsluttet sig den. Grundlæggende er det sådan, det fungerer. I starten vil spilleren trykke på en knap, der starter maskinen, og før løgnen
Servo Arduino automat: 8 trin
Servo Arduino automat: Denne automat har tre snickers barer i sjov størrelse og sælger en ad gangen ved hjælp af Arduino Uno og en servomotor