Taula de continguts:
- Pas 1: criteris
- Pas 2: carcassa
- Pas 3: electrònica
- Pas 4: Acceptador de factures
- Pas 5: proves
- Pas 6: electrònica a carcassa
- Pas 7: proves finals
- Pas 8: codi Arduino + enllaços
Vídeo: 1 màquina expenedora basada en Arduino: 8 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
La nostra idea la vam rebre del nostre professor d’enginyeria: tots vam pensar que seria una bona idea tenir una màquina expenedora per a la nostra classe i va dir: “mola, fes-ne una”. Va resultar que una màquina expenedora seria un gran projecte sènior i, quan estigués completa, funcionaria com a recaptació de fons per al nostre programa d’enginyeria.
Es diu màquina expenedora d’1 dòlar no perquè costi de fabricar 1 dòlar, sinó simplement perquè l’acceptador de factures és un model més antic que només necessita factures d’1 dòlar:)
Pas 1: criteris
Volíem una màquina expenedora que s’adapti a la part superior d’un escriptori i no fos massa alta. Hem agafat les dimensions de l’amplada de la taula per assegurar-nos que no teníem la màquina expenedora penjada de la taula.
Pas 2: carcassa
Hem fet la nostra caixa de 19 polzades d’amplada per 17 polzades de llarg per 25 polzades d’alçada. Hem utilitzat una màquina CNC per tallar la nostra fusta. Vam fer servir Solidworks per dissenyar les cares i després les vam convertir a tipus de fitxers de dibuix per al nostre programari CNC. Vam lijar les vores i les vam cargolar amb 1 ¼”. Vam fixar el tauler frontal amb una frontissa i vam utilitzar cargols de ¼ , de manera que els cargols no passessin a l'altre costat. També hem utilitzat vidre acrílic que hem tallat per a les prestatgeries i el panell frontal.
Pas 3: electrònica
Arduino
Hem utilitzat una placa Arduino Mega 2560. També hem utilitzat les plaques de motor Adafruit perquè puguin fer funcionar els motors pas a pas. Hem afegit pins als adafruit perquè es connectin entre ells. Els van inserir uns sobre els altres. Cadascun pot fer funcionar 2 motors. A més, tingueu en compte que el pont ha d’estar connectat.
Font d'alimentació d'escriptori
Bestek ATX Font d'alimentació mitjançant un adaptador per mantenir la font d'alimentació encesa. L'adaptador prové de sparkfun.com i proporciona diversos voltatges.
Bobines en motors
Vam fer models solidworks per subjectar el motor, agafar la bobina i guiar la bobina al llarg del prestatge. Havíem aconseguit les bobines d’Ebay i les havíem reduït a la mida. També vam haver de doblegar-ne 3 ja que no en vam obtenir 6 amb els extrems rectes per connectar-la al muntatge de la bobina. Després els vam imprimir en 3D i els vam connectar a la bobina i al motor. Els motors pas a pas que teníem, els vam posar en un muntatge. Mantindria el motor i guiaria la bobina per un camí recte.
LCD i teclat
Hem utilitzat un teclat Arduino i una pantalla LCD connectats a un cable de 5 V de l’adaptador de la font d’alimentació per alimentar-lo i després a la mateixa placa Arduino
Cablejat
Es recomana l'ús de cables de calibre 18. En el nostre cas, hem hagut de comprometre’ns amb diversos indicadors perquè ens hem quedat sense 18 indicadors
Tira LED
Hem fet servir una tira LED per il·luminar la màquina. El vam connectar a un cable de 12V de l’adaptador de la font d’alimentació. La tira LED que hem utilitzat afortunadament tenia un + i - que facilitava el procés de connexió.
Pas 4: Acceptador de factures
Hem utilitzat un Coinco BA30B com a acceptant de factures. S’havia de connectar directament a la paret com a font d’energia. El vam combinar amb un adaptador de 24 pins d’una font d’alimentació atx per endollar-lo i facilitar el cablejat. Els pinouts que hem seguit es troben al següent enllaç:
techvalleyprojects.blogspot.com/2011/07/ard…
En el nostre cas, hem hagut de crear un muntatge per augmentar l’acceptador de factures, perquè en cas contrari seria massa baix per a la nostra caixa.
Pas 5: proves
Proveu primer els aparells electrònics fora de la carcassa per assegurar-vos que els components funcionen. Els problemes que sorgeixin s’han de solucionar abans de col·locar-los dins de la carcassa.
Pas 6: electrònica a carcassa
Un cop provats els aparells electrònics i satisfets dels seus resultats, comenceu a col·locar-los a la carcassa. Ajusteu les longituds del fil perquè encaixin còmodament a l'interior.
Pas 7: proves finals
Un cop col·locat a la carcassa, torneu a provar-ho tot. Si tot funciona com esperaves, felicitats! Has creat una màquina expenedora.
Pas 8: codi Arduino + enllaços
Descàrregues:
Codi Arduino
drive.google.com/drive/folders/1oC4MhOcMFy…
Carpeta SolidWorks amb fitxers de peces i muntatge
drive.google.com/drive/folders/1amZoypiWcZ…
Per si de cas ha passat alguna cosa a l'enllaç, aquí teniu el codi arduino completament mostrat. Codi Arduino <<
#include #include #include "Arduino.h" #include #include #include "utility / Adafruit_MS_PWMServoDriver.h" #include
const int stepsPerRevolution = 200; byte const ROWS = 4; // quatre files const byte COLS = 3; // tecles de tres columnes [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; byte rowPins [ROWS] = {5, 6, 7, 8}; // connecteu-vos als pinouts de la fila del byte del teclat colPins [COLS] = {2, 3, 4}; // connectar-se als pinouts de la columna del teclat Teclat del teclat = Teclat (makeKeymap (tecles), filaPins, colPins, FILES, 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); // Pins digitals, el lcd està connectat a // Constants // // pin per a la línia de crèdit del validador de factures (-) const int billValidator = 22;
// Les variables /
/ enregistrament de la durada del pols (mil·lisegons) de llarga durada sense signar;
// mantenint el total de dòlars registrats en dollarCounter = 0; void setup () {lcd.begin (16, 1); // establir coordenades de text lcd lcd.print ("Insereix només $ 1"); // Establir text Serial.begin (9600); // Inicialitzar els ports sèrie per a la comunicació. Serial.println ("Prova Stepper!"); // Escriviu la prova pas a pas al monitor sèrie per tal de saber quin motor pas a pas es prem. AFMS1.begin (); AFMS2.begin (); AFMS3.begin (); AFMS4.begin (); myMotor1-> setSpeed (100); // Estableix la velocitat del motor a la qual executaran myMotor2-> setSpeed (100); myMotor3-> setSpeed (100); myMotor4-> setSpeed (100); myMotor5-> setSpeed (100); myMotor6-> setSpeed (100); myMotor7-> setSpeed (100); myMotor8-> setSpeed (100); // Configuració de pins per al validador de factures i el botó pinMode (billValidator, INPUT); // Estableix el billaccepter
// Inicialitzar els ports sèrie per a la comunicació. Serial.begin (9600); Serial.println ("Esperant el dòlar …"); } bucle buit () {{durada = pulseIn (billValidator, HIGH); // Comença a buscar la durada del pols rebuda per l’acceptador de factures si (durada> 12000) // Valor que ha de superar per validar-lo com a dòlar processat i autèntic {// Comptar dòlar dollarCounter ++; // Comprovació per comprendre Serial.print ("Dòlar detectat. / N Total:"); // Mostra el nou recompte de dòlars Serial.println (dollarCounter); // bucle per tal d'esperar fins que es prem un botó mentre (durada> 12000) {tecla char = teclat.getKey (); // connecta el keyoad i comença a veure quin es prem si (tecla = NO_KEY) {// cercarà la tecla premuda Serial.println (tecla); // ens fa saber quin es va prémer al monitor sèrie} {if (tecla == '1') {// Si es prem la tecla 1, es fa el següent: int teclaPressada = tecla - '1'; myMotor8-> step (580, FORWARD, DOBLE); // Arranca el motor i gira 350 graus en la direcció cap endavant. myMotor8-> release (); // Allibera el motor de l'estat de mantenir-se al seu lloc. tornar; // Torna a l'inici del codi de bucle}
if (key == '2') {// Si es prem la tecla 2, es fa el següent: int keyPressed = key - '2'; myMotor7-> step (400, AVANT, DOBLE); // Arranca el motor i gira 350 graus en la direcció cap endavant. myMotor7-> release (); // Allibera el motor de l'estat de mantenir-se al seu lloc. tornar; // Torna al principi del codi del bucle} if (tecla == '3') {// Si es prem la tecla 3, es fa el següent: int teclaPressada = tecla - '3'; myMotor6-> step (400, AVANT, DOBLE); // Arranca el motor i gira 350 graus en la direcció cap endavant. myMotor6-> release (); // Allibera el motor de l'estat de mantenir-se al seu lloc. tornar; // Torna a l'inici del codi del bucle} if (tecla == '4') {// Si es prem la tecla 4, es fa el següent: int teclaPressada = tecla - '4'; myMotor5-> step (180, AVANT, DOBLE); // Arranca el motor i gira 350 graus en la direcció cap endavant. myMotor5-> release (); // Allibera el motor de l'estat de mantenir-se al seu lloc. tornar; // Torna a l'inici del codi del bucle} if (tecla == '5') {// Si es prem la tecla 5, es fa el següent: int keyPressed = key - '5'; myMotor4-> step (6900, FORWARD, DOBLE); // Arranca el motor i gira durant 350 graus en la direcció cap endavant. myMotor4-> release (); // Allibera el motor de l'estat de mantenir-se al seu lloc. tornar; // Torna a l'inici del codi del bucle} if (tecla == '6') {// Si es prem la tecla 6, es fa el següent: tecla intPrimida = tecla - '6'; myMotor3-> step (400, FORWARD, DOBLE); // Arranca el motor i gira durant 350 graus en la direcció cap endavant. myMotor3-> release (); // Allibera el motor de l'estat de mantenir-se al seu lloc. tornar; // Torna a l'inici del codi de bucle} if (tecla == '7') {// Si es prem la tecla 7, es fa el següent: int keyPressed = key - '7'; myMotor7-> step (400, AVANT, DOBLE); // Arranca el motor i gira 350 graus en la direcció cap endavant. myMotor7-> release (); // Allibera el motor de l'estat de mantenir-se al seu lloc. tornar; // Torna a l'inici del codi del bucle} if (tecla == '8') {// Si es prem la tecla 8, es fa el següent: tecla intPrimida = tecla - '8'; myMotor8-> step (400, AVANT, DOBLE); // Arranca el motor i gira durant 350 graus en la direcció cap endavant. myMotor8-> release (); // Allibera el motor de l'estat de mantenir-se al seu lloc. tornar; // Torna a l'inici del codi de bucle}}}}}} >>
Recomanat:
Màquina expenedora de bricolatge: 8 passos
Màquina expenedora de bricolatge: fa tres anys que vaig començar a estudiar a una universitat tècnica electrònica. Un dels fets que em va sorprendre en aquell moment va ser el nombre de fumadors, ja que durant els descansos, la meitat dels estudiants abandonaven les parets de l’escola per descarregar les emocions després
Màquina expenedora amb escala per confirmar el producte (Raspberry Pi): 5 passos
Màquina expenedora amb escala per confirmar l’element (Raspberry Pi): Benvingut company de fabricació, per a un projecte escolar vaig decidir fer una màquina expenedora d’aperitius. La nostra tasca consistia a crear un dispositiu recreable que utilitzés almenys 3 sensors i 1 actuador. Vaig anar a fer una màquina expenedora en part perquè tenia accés a algunes
Mini màquina expenedora controlada Arduino: 9 passos
Mini màquina expenedora controlada per Arduino: aquesta és la nostra màquina expenedora, que ofereix tres barres de caramels de mida divertida. Les dimensions generals són d’uns 12 " x 6 " x 8 ". Aquesta màquina expenedora està controlada per un arduino, amb taulers de suport i un servomotor
Detector de mentides + màquina expenedora: amb Arduino Leonardo: 6 passos
Detector de mentides + màquina expenedora: amb Arduino Leonardo: aquest detector de mentides no és el vostre detector de mentides mitjà normal, és un detector de mentides que té una màquina expenedora connectada. Bàsicament, així funciona. Al principi, el jugador premrà un botó que engegarà la màquina i abans de la mentida
Màquina expenedora Servo Arduino: 8 passos
Màquina expenedora Servo Arduino: aquesta màquina expenedora té tres barres de snickers de mida divertida i es vendrà una a la vegada mitjançant Arduino Uno i un servomotor