Tabla de contenido:
- Paso 1: Criterios
- Paso 2: Carcasa
- Paso 3: Electrónica
- Paso 4: Aceptador de billetes
- Paso 5: prueba
- Paso 6: de la electrónica a la carcasa
- Paso 7: Prueba final
- Paso 8: Código Arduino + Enlaces
Video: Máquina expendedora basada en Arduino de $ 1: 8 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Obtuvimos nuestra idea de nuestro profesor de ingeniería; todos pensamos que sería una buena idea tener una máquina expendedora para nuestra clase y dijo: "genial, haz una". Resultó que una máquina expendedora sería un gran proyecto para personas mayores y, cuando se completara, funcionaría como un recaudador de fondos para nuestro programa de ingeniería.
Se llama máquina expendedora de $ 1 no porque cueste $ 1, sino simplemente porque el aceptador de billetes es un modelo más antiguo que solo acepta billetes de $ 1:)
Paso 1: Criterios
Queríamos una máquina expendedora que quepa sobre un escritorio y no sea demasiado alta. Tomamos las dimensiones del ancho de la mesa para asegurarnos de que no teníamos la máquina expendedora colgando de la mesa.
Paso 2: Carcasa
Hicimos nuestra caja de 19 pulgadas de ancho por 17 pulgadas de largo por 25 pulgadas de alto. Usamos una máquina CNC para cortar nuestra madera. Usamos solidworks para diseñar las caras y luego las convertimos a tipos de archivos de dibujo para nuestro software CNC. Lijamos los bordes y luego los atornillamos con 1 ¼”. Fijamos el panel frontal con una bisagra y usamos tornillos de ¼”, para que los tornillos no pasen al otro lado. También usamos vidrio acrílico que cortamos para los estantes y el panel frontal.
Paso 3: Electrónica
Arduino
Usamos una placa Arduino Mega 2560. También usamos placas de motor Adafruit para que puedan hacer funcionar los motores paso a paso. Agregamos pines a los adafruit para que se conectaran entre sí. Fueron insertados uno encima del otro. Cada uno puede hacer funcionar 2 motores. Además, tenga en cuenta que el puente debe estar conectado.
Fuente de alimentación de escritorio
Fuente de alimentación Bestek ATX mediante un adaptador para mantener la fuente de alimentación encendida. El adaptador es de sparkfun.com y proporciona varios voltajes.
Bobinas en motores
Hicimos modelos de SolidWorks para sostener el motor, agarrar la bobina y guiar la bobina a lo largo del estante. Conseguimos nuestras bobinas de eBay y las cortamos a medida. También tuvimos que doblar 3 de ellos ya que no obtuvimos 6 con los extremos rectos para conectarlos al soporte de la bobina. Luego los imprimimos en 3D y los unimos a la bobina y al motor. Los motores paso a paso que teníamos los montamos. Sostendría el motor y guiaría la bobina a lo largo de un camino recto.
LCD y teclado
Usamos un teclado Arduino y una pantalla LCD conectados a un cable de 5 V en el adaptador de fuente de alimentación para la alimentación y luego a la misma placa Arduino
Alambrado
Recomendamos el uso de cables de calibre 18. En nuestro caso, tuvimos que comprometernos usando varios calibres porque nos quedamos sin 18 calibres
Tira llevada
Usamos una tira de LED para iluminar la máquina. Lo conectamos a un cable de 12V en el adaptador de fuente de alimentación. La tira de LED que usamos afortunadamente tenía un + y - en ella, lo que facilitó el proceso de conexión.
Paso 4: Aceptador de billetes
Usamos un Coinco BA30B como nuestro aceptador de billetes. Tenía que estar conectado directamente a la pared como fuente de alimentación. Lo combinamos con un adaptador de 24 pines de una fuente de alimentación atx para enchufar y permitir un cableado más fácil. Los pines que seguimos se encuentran en el siguiente enlace:
techvalleyprojects.blogspot.com/2011/07/ard…
En nuestro caso, tuvimos que crear una montura para subir el aceptador de billetes porque de lo contrario sería demasiado bajo para nuestra carcasa.
Paso 5: prueba
Pruebe primero la electrónica fuera de la carcasa para asegurarse de que los componentes funcionen. Cualquier problema que surja debe solucionarse antes de colocarlo dentro de la carcasa.
Paso 6: de la electrónica a la carcasa
Una vez que haya probado los componentes electrónicos y esté satisfecho con sus resultados, comience a colocarlos en su carcasa. Ajuste la longitud de los cables para que quepan cómodamente en el interior.
Paso 7: Prueba final
Una vez colocado en la carcasa, vuelva a probar todo. Si todo funciona como esperabas, ¡enhorabuena! Hiciste una máquina expendedora.
Paso 8: Código Arduino + Enlaces
Descargas:
Código Arduino
drive.google.com/drive/folders/1oC4MhOcMFy…
Carpeta de SolidWorks con archivos de pieza y ensamblaje
drive.google.com/drive/folders/1amZoypiWcZ…
En caso de que algo le haya sucedido al enlace, aquí se muestra el código arduino por completo. Código Arduino <<
#include #include #include "Arduino.h" #include #include #include "utility / Adafruit_MS_PWMServoDriver.h" #include
const int stepsPerRevolution = 200; const byte FILAS = 4; // cuatro filas const byte COLS = 3; // claves de caracteres de tres columnas [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; byte rowPins [FILAS] = {5, 6, 7, 8}; // conectarse a los pines de fila del byte del teclado colPins [COLS] = {2, 3, 4}; // conectarse a los pines de columna del teclado Keypad keypad = Keypad (makeKeymap (keys), 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); // Pines digitales a los que está conectado el lcd // Constantes // // pin para la línea de crédito (-) del validador de billetes const int billValidator = 22;
// Variables /
/ registrar la duración del pulso (milisegundos) de larga duración sin firmar;
// manteniendo el total de dólares registrado int dollarCounter = 0; configuración vacía () {lcd.begin (16, 1); // establece las coordenadas del texto de la pantalla lcd lcd.print ("Insertar solo $ 1"); // Establecer texto Serial.begin (9600); // Inicialice los puertos seriales para la comunicación. Serial.println ("¡Prueba paso a paso!"); // Escriba Prueba paso a paso en el monitor en serie para que sepamos qué motor paso a paso está presionado. AFMS1.begin (); AFMS2.begin (); AFMS3.begin (); AFMS4.begin (); myMotor1-> setSpeed (100); // Establecer la velocidad del motor a la que funcionarán myMotor2-> setSpeed (100); myMotor3-> setSpeed (100); myMotor4-> setSpeed (100); myMotor5-> setSpeed (100); myMotor6-> setSpeed (100); myMotor7-> setSpeed (100); myMotor8-> setSpeed (100); // Configuraciones de pines para validador de billetes y botón pinMode (billValidator, INPUT); // Establece el billaccepter
// Inicialice los puertos seriales para la comunicación. Serial.begin (9600); Serial.println ("Esperando dólar …"); } bucle vacío () {{duración = pulseIn (billValidator, HIGH); // Empieza a buscar la longitud de pulso recibida del aceptador de billetes if (duración> 12000) // Valor que debe superar para validar como dólar procesado y auténtico {// Cuenta dólar dollarCounter ++; // Comprobando la comprensión de Serial.print ("Dólar detectado. / N Total:"); // Muestra el nuevo recuento de dólares Serial.println (dollarCounter); // bucle para esperar hasta que se presione un botón while (duración> 12000) {char key = keypad.getKey (); // conecta el keyoad y comienza a ver cuál está presionado if (key! = NO_KEY) {// buscará la tecla presionada Serial.println (key); // nos permite saber cuál fue presionada en el monitor serial} {if (key == '1') {// Si se presiona la tecla 1, hace lo siguiente: int keyPressed = key - '1'; myMotor8-> paso (580, ADELANTE, DOBLE); // Arranca el motor y gira 350 grados en la dirección de avance. myMotor8-> release (); // Libera el motor del estado de mantenimiento en su lugar. regreso; // Vuelve al principio del código de bucle}
if (key == '2') {// Si se presiona la tecla 2, hace lo siguiente: int keyPressed = key - '2'; myMotor7-> paso (400, ADELANTE, DOBLE); // Arranca el motor y gira 350 grados en la dirección de avance. myMotor7-> release (); // Libera el motor del estado de mantenimiento. regreso; // Vuelve al principio del código de ciclo} if (key == '3') {// Si se presiona la tecla 3, hace lo siguiente: int keyPressed = key - '3'; myMotor6-> paso (400, ADELANTE, DOBLE); // Arranca el motor y gira 350 grados en la dirección de avance. myMotor6-> release (); // Libera el motor del estado de mantenimiento. regreso; // Vuelve al principio del código de ciclo} if (key == '4') {// Si se presiona la tecla 4, hace lo siguiente: int keyPressed = key - '4'; myMotor5-> paso (180, ADELANTE, DOBLE); // Arranca el motor y gira 350 grados en la dirección de avance. myMotor5-> release (); // Libera el motor del estado de mantenimiento en su lugar. regreso; // Vuelve al principio del código de ciclo} if (key == '5') {// Si se presiona la tecla 5, hace lo siguiente: int keyPressed = key - '5'; myMotor4-> paso (6900, ADELANTE, DOBLE); // Arranca el motor y gira 350 grados en la dirección de avance. myMotor4-> release (); // Libera el motor del estado de mantenimiento en su lugar. regreso; // Vuelve al principio del código de ciclo} if (key == '6') {// Si se presiona la tecla 6, hace lo siguiente: int keyPressed = key - '6'; myMotor3-> paso (400, ADELANTE, DOBLE); // Arranca el motor y gira 350 grados en la dirección de avance. myMotor3-> release (); // Libera el motor del estado de mantenimiento. regreso; // Vuelve al principio del código de ciclo} if (key == '7') {// Si se presiona la tecla 7, hace lo siguiente: int keyPressed = key - '7'; myMotor7-> paso (400, ADELANTE, DOBLE); // Arranca el motor y gira 350 grados en la dirección de avance. myMotor7-> release (); // Libera el motor del estado de mantenimiento en su lugar. regreso; // Vuelve al principio del código de ciclo} if (key == '8') {// Si se presiona la tecla 8, hace lo siguiente: int keyPressed = key - '8'; myMotor8-> paso (400, ADELANTE, DOBLE); // Arranca el motor y gira 350 grados en la dirección de avance. myMotor8-> release (); // Libera el motor del estado de mantenimiento. regreso; // Vuelve al principio del código de bucle}}}}}} >>
Recomendado:
Máquina expendedora de bricolaje: 8 pasos
Máquina expendedora de bricolaje: Hace tres años, comencé a estudiar en una escuela técnica electrónica. Uno de los hechos que me sorprendió en ese momento fue la cantidad de fumadores porque durante los descansos, la mitad de los alumnos abandonaban las paredes del colegio para descargar sus emociones después de
Mini máquina expendedora controlada por Arduino: 9 pasos
Mini máquina expendedora controlada por Arduino: esta es nuestra máquina expendedora, vende tres barras de caramelo de tamaño divertido. Las dimensiones totales son de aproximadamente 12 '' x 6 " x 8 ''. Esta máquina expendedora está controlada por un arduino, con placa de pruebas y un servomotor
Detector de mentiras + máquina expendedora: Con Arduino Leonardo: 6 pasos
Detector de mentiras + máquina expendedora: Con Arduino Leonardo: este detector de mentiras no es su detector de mentiras promedio normal, es un detector de mentiras que tiene una máquina expendedora adjunta. Básicamente, así es como funciona. Al principio, el jugador presionará un botón que pondrá en marcha la máquina, y antes de la mentira
Máquina expendedora Servo Arduino: 8 pasos
Máquina expendedora Servo Arduino: esta máquina expendedora tiene tres barras de snickers de tamaño divertido y venderá una a la vez usando Arduino Uno y un servomotor
Máquina expendedora -- Dispensador de caramelos -- Arduino Bluetooth controlado -- Bricolaje: 11 pasos (con imágenes)
Máquina expendedora || Dispensador de caramelos || Arduino Bluetooth controlado || Bricolaje: En este instructivo muestro cómo construir una máquina expendedora usando un Arduino. COMENTAR LO QUE PIENSA SOBRE ESTE INSTRUCTABLE, PARA QUE PUEDA MEJORAR EN MIS INSTRUCCIONES ADICIONALES Eche un vistazo al video tutorial para una mejor comprensión de la enti