Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Máquina expendedora personal de monedas

Componentes y suministros

FriendlyARM 1/4 Contrachapado
Corte la madera contrachapada a las dimensiones especificadas en el diagrama
× 4
Bloqueo de madera contrachapada de 3/4 "
Corte la madera contrachapada en tiras de 3/4 "de ancho y tan largas como la pieza a la que se conecta, vea el diagrama
× 1
LAFVIN 5 juegos 28BYJ-48 ULN2003 Motor paso a paso de 5 V + controlador ULN2003 Placa para Arduino
Estos motores podrán empujar cualquier golosina que pongas en la máquina
× 1
Accesorios para PC - Conectores Pro IDC 1.27mm Pitch Rainbow Color Flat Ribbon Cable para conectores de 2,54 mm (50P-10FT)
Necesario para que la máquina sea limpia y profesional
× 1
Glarks 635Pcs Conector Dupont Carcasa Conector de clavija macho / hembra de 40 clavijas
Necesario para que la máquina sea limpia y profesional
× 1
Microinterruptor de reemplazo iluminado Gamelec
Debes tener botones
× 1
Breadboard (genérico)
Las placas de soldadura también funcionan bien
× 1
Kit de prototipo de placa PCB de doble cara de 30 piezas
Solo se necesitan uno o dos, pero son del tamaño perfecto para proyectos futuros
× 1
Arduino Mega 2560
El controlador utilizado fue el Mega 2560
× 1
Módulo de relé Tolako 5v para Arduino ARM
Necesario para evitar que los motores se sobrecalienten
× 1
Pantalla del módulo LCD en serie HiLetgo 2pcs 1602
Sin esto, no sabrá qué botón se presionó
× 1
Tiras de luz LED
Opcional
× 2
Cable de conexión a tierra de cobre desnudo SD sólido de calibre 8 de 50 pies
Esto es lo que usarás para hacer las bobinas
× 1
Divisor de estante de metal plano
× 1

Herramientas y máquinas necesarias

Mesa o sierra eléctrica
A menos que tenga un lugar para cortar la madera
Soldador (genérico)
Pistola de pegamento caliente (genérica)
No olvides las barras de pegamento también

Aplicaciones y servicios en línea

Arduino IDE

Acerca de este proyecto

LA MÁQUINA EXPENDEDORA PERSONAL

Este proyecto es una construcción paso a paso de una máquina expendedora personal. La máquina expendedora se puede llenar con sus bocadillos favoritos o se puede llevar a la oficina para que pueda compartir algunos bocadillos con su equipo. Eche un vistazo y déjeme saber lo que piensa.

Construyendo la máquina:

Me referiré a los diagramas de la máquina a lo largo de este texto, así que consulte los diagramas para obtener una aclaración / comprensión.

Las dimensiones de la máquina son 21 "W x 18" D x 24 1/4 "H (Dimensiones de la caja)

2 paneles de 18 "de profundidad x 23 3/4" de altura (lados)

2 paneles de 21 "de ancho x 18" de profundidad (superior e inferior)

2 paneles de 21 "de ancho x 24 1/4" de alto (delantero y trasero)

La pared divisoria mide 18 "D x 23 3/4" H

El estante interno mide 13 "W x 12" D (multiplicado por 2, estante superior e inferior)

Los estantes tienen una separación de 8 ", 13" de ancho y 12 "de profundidad

Cada bloque azul en el diagrama de los paneles es un punto de montaje de ¾ ”W x ¾” H tan profundo como el panel

Ensamble la caja como se muestra en el diagrama y aquí usando el bloqueo de 3/4 "en cada uno de los puntos de unión. Tenga en cuenta que las paredes laterales se asientan en la parte superior de la placa inferior y debajo de la placa superior. Las paredes perimetrales deben medir 21" W por 24 1/4 "Alt.

La pared divisoria debe configurarse antes de instalar. Mida hacia abajo desde la parte superior 16 1/4 "y coloque el bloqueo allí para el estante inferior. Mida hacia abajo 8 1/4" desde la parte superior y coloque el bloqueo para el estante superior. Complete estos pasos en la pared izquierda (mirando desde el frente de la máquina) para que pueda colocar el bloqueo para los estantes superior e inferior.

**** Tenga en cuenta que el estante inferior debe instalarse primero, de lo contrario, será muy difícil asegurar el bloqueo.

Una vez que el bloqueo está instalado para los estantes, use los paneles de 13 "x 12" e instale uno en cada juego de bloqueos. Esto instalará automáticamente la pared divisoria en su lugar adecuado. Luego, asegure el bloqueo en la parte superior e inferior del lado derecho de la pared divisoria. Luego asegúrelo al panel superior e inferior. Esto asegurará completamente su estructura.

Instale el panel trasero y prepárese para las instalaciones del motor. Asegúrese de tener impresas las ruedas de la bobina para que pueda medirlas y configurar los orificios de perforación. Mida las ruedas y agregue 1/4 "a la altura para que deje espacio para que la bobina gire. Es posible que desee ajustar esto según sea necesario según su material. Mida más de 6 1/2" en el estante para marcar su medio. Mida más de 3 1/4 "para encontrar el centro de cada sección del estante. Utilice la medida de altura que registró hace unos momentos para encontrar los puntos de perforación. Perfore un orificio que le permitirá conectar la rueda al motor sin que el eje de la rueda roce la placa. Termine de montar los motores y atornille los sujetadores.

Configuración del relé del motor:

Conecte los pines de la siguiente manera. Utilice el chip L293D (muesca a la izquierda) (en el diagrama de circuito) para que pueda controlar el relé. Esto le permitirá conectar los motores a la energía.

(Empezando de izquierda a derecha)

El pin 1 se conecta al conector del pin 10 en el controlador (en el diagrama de circuito)

El pin 2 se conecta al conector del pin 9 en el controlador (en el diagrama de circuito)

El pin 3 se conecta al lado positivo del relé (con los 3 pines hacia usted, el pin a la izquierda) (en el diagrama del circuito)

El pin 4 se conecta a tierra de 12V en la placa de pruebas (en el diagrama del circuito)

Pin 5 No utilizado (en diagrama de circuito)

El pin 6 se conecta al lado de tierra en el relé (con los 3 pines hacia usted, el pin a la derecha) (en el diagrama del circuito)

El pin 7 se conecta al conector del pin 8 en el controlador (en el diagrama de circuito)

El pin 8 se conecta a + 12V en la placa de pruebas (en el diagrama de circuito)

Conecte el pin medio del relé a + 12V en la placa de pruebas (en el diagrama del circuito)

Conecte la clavija derecha del relé (con las 3 clavijas hacia usted, la clavija hacia atrás a la derecha) al cable positivo que va a los controladores del motor (en el diagrama de circuito)

Instalación de la pantalla y el botón:Pantalla:elija un lugar en el lado derecho de la máquina (mirando la máquina desde el frente) y marque el orificio que debe hacerse para la parte de visualización de la pantalla (2.53937 "x 0.5708661) Botón - Elija un lugar en el lado derecho de la máquina (mirando la máquina desde el frente) y marque los orificios que deben hacerse para los 4 botones. Los orificios deben ser de 1.10236 "si usa exactamente el mismo botón en el lista de partes. Me gusta usar una broca más pequeña de lo necesario y papel de lija para darle el tamaño necesario.

Tenga en cuenta que debe asegurarse de tener todas las conexiones exactamente en los mismos lugares que en el diagrama anterior. Los LED que se muestran en el diagrama son los LED integrados en los botones pulsadores. Los diagramas los muestran por separado, pero eso es solo para visualización y para facilitar la lectura del esquema.

Conecte cada motor al controlador provisto con ellos. Luego, conecte cada controlador al controlador siguiendo estos pasos:

Configuración del motor:

La energía debe estar conectada al lado de 12V de la placa de pruebas. Esta potencia proviene de la fuente de alimentación ATX que prepararemos al final. Luego, conecte los 4 pines "en" del controlador al controlador. Estos pines son los siguientes

********* NO SE CONECTE A LOS 2 PRIMEROS PINES DE ESTE BLOQUE SON PINES DE 5V - NO SE UTILIZAN EN ESTE PROYECTO *********

Motor 1:Pines azules 22, 24, 26, 28 (en el diagrama de circuito)

Motor 2:Pines amarillos 23, 25, 27, 29 (en el diagrama de circuito)

Motor 3:Pines verdes 30, 32, 34, 36 (en el diagrama de circuito)

Motor 4:Pines rojos 31, 33, 35, 37 (en el diagrama de circuito)

Conexiones de botón:

Conecte un lado del botón pulsador 1 a 5v de alimentación, el otro lado a una resistencia de 220 con conexión a tierra junto con el pin analógico A0 (en el diagrama del circuito)

Conecte un lado del pulsador 2 a la alimentación de 5v, el otro lado a una resistencia de 220 con conexión a tierra junto con el pin analógico A1 (en el diagrama del circuito)

Conecte un lado del botón pulsador 3 a 5v de alimentación, el otro lado a una resistencia de 220 con conexión a tierra junto con el pin analógico A2 (en el diagrama de circuito)

Conecte un lado del botón pulsador 4 a 5v de alimentación, el otro lado a una resistencia de 220 con conexión a tierra junto con el pin analógico A3 (en el diagrama del circuito)

PANTALLA LCD:

Conecte la pantalla al lado de 5v de la placa de pruebas para alimentación y tierra

Los pines son los siguientes:

Pin 1:conectar a tierra (en el diagrama de circuito)

Pin 2:conectar a una alimentación de 5v (en el diagrama del circuito)

Pin 3:Conecte al potenciómetro ajustable (en la imagen de abajo) Pin inferior izquierdo a tierra, inferior derecho a alimentación y pin superior al pin 3 en la pantalla LCD (en el diagrama de circuito, así es como se configura el contraste en la pantalla LCD para que el texto sea nítido y limpio)

Pin 4:Pin de la primera señal al conector 2 del pin del controlador (en el diagrama de circuito)

Pin 5:conectar a tierra (en el diagrama de circuito)

Pin 6:Pin de la segunda señal al conector 3 del pin del controlador (en el diagrama de circuito)

Pin 7:NO UTILIZADO

Pin 8:NO UTILIZADO

Pin 9:NO UTILIZADO

Pin 10:NO UTILIZADO

Pin 11:Tercer pin de señal al zócalo 4 del pin del controlador (en el diagrama de circuito)

Pin 12:Cuarto pin de señal al conector 5 del pin del controlador (en el diagrama de circuito)

Pin 13:Quinto pin de señal al conector de pin 6 del controlador (en el diagrama de circuito)

Pin 14:sexto pin de señal al conector de pin 7 del controlador (en el diagrama de circuito)

Pin 15:conectar a una alimentación de 5v (en el diagrama del circuito)

Pin 16:conectar a tierra (en el diagrama de circuito)

FUENTE DE ALIMENTACIÓN ATX :

Solo corte los cables necesarios para alimentar el dispositivo. Los otros cables son más seguros en el conector de plástico y le permitirán usarlo para otros proyectos si es necesario.

Pines ATX:

Corte y pele la clavija 3 del cable negro (Tierra) y la clavija 16 del cable verde (Señal) Conecte estos cables a un interruptor para que pueda encender y apagar la máquina (en el diagrama de circuito)

Corte y pele la patilla 7 del cable negro (tierra) y la patilla 10 del cable amarillo (+ 12V). Conecte estos cables al lado de 12v de la placa de pruebas designado con conexiones amarillas y negras. (En diagrama de circuito)

Corte y pele (tierra) la clavija 24 del cable negro y la clavija 11 del cable amarillo (+ 12V). Conecte estos cables a un conector compatible para alimentar la placa Arduino (en el diagrama de circuito)

Corte y pele (tierra) la patilla 19 del cable negro y la patilla 21 del cable rojo (+ 5V). Conecte estos cables al lado de 5V de la placa de pruebas (en el diagrama de circuito)

Divisores de estantes y bobinas:

A continuación se explica cómo configurar sus estantes y extrusoras.

Estantes:en el punto medio, a 6 1/2 "de la pared lateral izquierda (mirando la máquina desde el frente) o la pared divisoria, debe haber una marca de los pasos anteriores. Use el metal plano y dóblelo en la parte superior de un triángulo. Se ve exactamente como este "^". Esto servirá como su divisor del medio. Centre el triángulo sobre la marca del medio en el estante. Repita para el segundo estante. Use pegamento caliente para sujetarlo en su lugar. También coloco diapositivas en los lados pero son opcionales.

Bobinas:para crear las bobinas, primero busque un tubo de 1 1/2 ". Una tubería, un tubo de masilla, una lata de pintura en aerosol o un objeto similar será suficiente. Un truco es tomar una banda de goma y envolverla de arriba a abajo alrededor de la longitud del tubo. Trace la línea recta a cada lado de la banda en ambos lados del tubo. Una vez que tenga líneas paralelas en ambos lados, use una cinta métrica para marcar los siguientes puntos. Elija un lado y mida en 1 "y márquelo , luego mida 2 "desde allí, márquelo y siga haciendo espacios de 2" hasta el final del tubo. Ahora, en el otro lado del tubo, marque solo intervalos de 2 ". Comience a hacer la bobina en el lado de 1" del tubo y continúe haciendo su bobina de modo que toque cada marca en ambos lados del tubo. Esto le dará un espacio de 2 "entre los peldaños. Debería ser lo suficientemente grande para la mayoría de los artículos. Si planea usarlo como barra de caramelo, acorte la bobina a 1", simplemente reduzca la fórmula anterior a la mitad.

Conexión de las bobinas a las ruedas impresas en 3D. Tenga en cuenta que hay algunas ruedas fabricadas que funcionarán. Eche un vistazo a Amazon.

En el lado de 1 "de la bobina, colapsa esta bobina para que forme un círculo. Luego, acorta el diámetro a un poco más pequeño que la rueda. Una vez que la bobina esté lista, colócala alrededor del borde de la rueda. Esto debería hacer que la bobina se comprima alrededor el borde de la rueda y evitar que se deslice. Una vez que esté satisfecho con el ajuste, tome un poco de pegamento caliente y colóquelo en la rueda en el extremo de la bobina para mantenerlo en su lugar.

Tiras de luces LED:

Conecte el cable positivo a la clavija de +12 V en el lado de 12 V de la placa de pruebas. Conecte el cable de tierra a la clavija de tierra en el lado de 12 V de la placa de pruebas (no en el diagrama)

HAGA TODAS LAS PREGUNTAS QUE TENGA PARA QUE PUEDA AYUDARLE CON LA ACTUALIZACIÓN PARA HACER DE ESTE EL PROYECTO MÁS FÁCIL QUE NUNCA.

Código

  • Máquina expendedora - SIN CAMBIAR LAS LUCES LED
  • Máquina expendedora - CON LUCES LED CAMBIANTES
  • Aceptador de monedas y copia completa
Máquina expendedora - SIN CAMBIAR LAS LUCES LED Arduino
Todo lo que necesita para completar y comprender el proyecto
 // Display # include  LiquidCrystal lcd (2, 3, 4, 5, 6, 7); // Stepper Library # include  / / incluyendo biblioteca de motores paso a paso // Configuración de relés # definir ENABLE 10 # definir DIRA 8 # definir DIRB 9 // Definir "i" int i; // definir sección de pines // Stepper Connect 1int stepIN1Pin =22; int stepIN2Pin =24; int stepIN3Pin =26; int stepIN4Pin =28; // Stepper Connect 2int stepIN1Pin1 =23; int stepIN2Pin1 =25; int stepIN3Pin1 =27; int stepIN4Pin1 =29; // Stepper Connect 3int stepIN1Pin2 =30; int stepIN2Pin2 =32; int stepIN3Pin2 =34; int stepIN4Pin2 =36; // Stepper Connect 4int stepIN1Pin3 =31; int stepIN2Pin3 =33; int stepIN3Pin3 =35; int stepIN4Pin3 =37; // define stepsint stepsPerRevolution =2048; // cantidad de pasos por revolución // definir botones pin portsconst int button1Pin =A0; // Pulsador 1 Pin analógico A0const int button2Pin =A1; // Pulsador 2 Pin analógico A1const int button3Pin =A2; // Pulsador 3 Pin analógico A2const int button4Pin =A3; // Pulsador 4 Analog Pin A3 // definir cada paso a paso // 1Stepper myStepper0 (stepsPerRevolution, stepIN1Pin, stepIN3Pin, stepIN2Pin, stepIN4Pin); // 2Stepper myStepper1 (stepsPerRevolution, stepIN1Pin1, stepIN3Pin1, stepIN2Pinte1, stepIN3Pin1, stepIN2Pinte1, paso stepsPerRevolution, stepIN1Pin2, stepIN3Pin2, stepIN2Pin2, stepIN4Pin2); // 4Stepper myStepper3 (stepsPerRevolution, stepIN1Pin3, stepIN3Pin3, stepIN2Pin3, stepIN4Pin3); void setup () {// Asignar PinMode, entrada de botón INPUT1; pinMode (button2Pin, INPUT); pinMode (button3Pin, INPUT); pinMode (button4Pin, INPUT); // Asignar pin de salida pinMode (ENABLE, OUTPUT); pinMode (DIRA, SALIDA); pinMode (DIRB, SALIDA); // Asignar velocidad paso a paso myStepper0.setSpeed ​​(15); myStepper1.setSpeed ​​(15); myStepper2.setSpeed ​​(15); myStepper3.setSpeed ​​(15); // Inicializar la pantalla LCD lcd.begin (16, 2); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Seleccione su artículo"); lcd.setCursor (0, 1); lcd.print ("# 1 # 2 # 3 # 4");} void loop () {// leer la asignación del botón int button1State, button2State, button3State, button4State; button1State =digitalRead (button1Pin); button2State =digitalRead (button2Pin); button3State =digitalRead (button3Pin); button4State =digitalRead (button4Pin); digitalWrite (ENABLE, HIGH); // Establecer estado para (i =0; i <5; i ++); // define la acción cuando se presiona el botón 1 if (((button1State ==LOW) &&! (button2State ==LOW))) // si estamos presionando el botón 1 O el botón 2 {digitalWrite (DIRA, HIGH); // activar relé digitalWrite (DIRB, LOW); lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Dispensación"); lcd.setCursor (3, 1); lcd.print ("Su artículo"); myStepper0.step (stepsPerRevolution); // ejecutar motor lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Tome"); lcd.setCursor (3, 1); lcd.print ("Su artículo"); retraso (2500); lcd.setCursor (0, 0); lcd.print ("Estado del botón 1"); lcd.setCursor (2, 1); lcd.print ("1 2 3 o 4"); escritura digital (DIRA, BAJA); // desconectar el relé digitalWrite (DIRB, LOW); } // define la acción cuando se presiona el botón 2 if (((button2State ==LOW) &&! (button1State ==LOW))) // si estamos presionando el botón 1 O el botón 2 {digitalWrite (DIRA, HIGH); // activar relé digitalWrite (DIRB, LOW); lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Dispensación"); lcd.setCursor (3, 1); lcd.print ("Su artículo"); myStepper1.step (stepsPerRevolution); // ejecuta el motor lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Tome"); lcd.setCursor (3, 1); lcd.print ("Su artículo"); retraso (2500); lcd.setCursor (0, 0); lcd.print ("Estado del botón 2"); lcd.setCursor (2, 1); lcd.print ("1 2 3 o 4"); escritura digital (DIRA, BAJA); // desconectar el relé digitalWrite (DIRB, LOW); } // define la acción cuando se presiona el botón 3 if (((button3State ==LOW) &&! (button4State ==LOW))) // si estamos presionando el botón 1 O el botón 2 {digitalWrite (DIRA, HIGH); // activar relé digitalWrite (DIRB, LOW); lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Dispensación"); lcd.setCursor (3, 1); lcd.print ("Su artículo"); myStepper2.step (stepsPerRevolution); // ejecutar el motor lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Tome"); lcd.setCursor (3, 1); lcd.print ("Su artículo"); retraso (2500); lcd.setCursor (0, 0); lcd.print ("Estado del botón 3"); lcd.setCursor (2, 1); lcd.print ("1 2 3 o 4"); escritura digital (DIRA, BAJA); // desconectar el relé digitalWrite (DIRB, LOW); } // define la acción cuando se presiona el botón 4 if (((button4State ==LOW) &&! (button3State ==LOW))) // si estamos presionando el botón 1 O el botón 2 {digitalWrite (DIRA, HIGH); // activar relé digitalWrite (DIRB, LOW); lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Dispensación"); lcd.setCursor (3, 1); lcd.print ("Su artículo"); myStepper3.step (-stepsPerRevolution); // ejecutar el motor lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Tome"); lcd.setCursor (3, 1); lcd.print ("Su artículo"); retraso (2500); lcd.setCursor (0, 0); lcd.print ("Estado del botón 4"); lcd.setCursor (2, 1); lcd.print ("1 2 3 o 4"); escritura digital (DIRA, BAJA); // desconectar el relé digitalWrite (DIRB, LOW); }} 
Máquina expendedora - CON LUCES LED CAMBIANTES C #
¡Eche un vistazo al video!
 // Display # include  LiquidCrystal lcd (2, 3, 4, 5, 6, 7); // Stepper Library # include  // incluido biblioteca de motores paso a paso // Configuración de relés # definir ENABLE 10 # definir PinA 8 # definir PinB 9 # definir REDPIN 38 # definir GREENPIN 39 # definir BLUEPIN 40 // Definir "i" int i; // Definir "RGB" int r, g , b; // definiendo la sección de pines // Stepper Connect 1int stepIN1Pin =22; int stepIN2Pin =24; int stepIN3Pin =26; int stepIN4Pin =28; // Stepper Connect 2int stepIN1Pin1 =23; int stepIN2Pin1 =25; int stepIN3Pin1 =27; int stepIN4Pin1 =29; // Stepper Connect 3int stepIN1Pin2 =30; int stepIN2Pin2 =32; int stepIN3Pin2 =34; int stepIN4Pin2 =36; // Stepper Connect 4int stepIN1Pin3 =31; int stepIN2Pin3 =33; int stepIN3Pin3 =35; int stepIN4Pin3 =37; // define stepsint stepsPerRevolution =2048; // cantidad de pasos por revolución // definir botones pin portsconst int button1Pin =A0; // Pulsador 1 Pin analógico A0const int button2Pin =A1; // Pulsador 2 Pin analógico A1const int button3Pin =A2; // Pulsador 3 Pin analógico A2const int button4Pin =A3; // Pulsador 4 Analog Pin A3 // definir cada paso a paso // 1Stepper myStepper0 (stepsPerRevolution, stepIN1Pin, stepIN3Pin, stepIN2Pin, stepIN4Pin); // 2Stepper myStepper1 (stepsPerRevolution, stepIN1Pin1, stepIN3Pin1, stepIN2Pinte1, stepIN3Pin1, stepIN2Pinte1, paso stepsPerRevolution, stepIN1Pin2, stepIN3Pin2, stepIN2Pin2, stepIN4Pin2); // 4Stepper myStepper3 (stepsPerRevolution, stepIN1Pin3, stepIN3Pin3, stepIN2Pin3, stepIN4Pin3); void setup () {// Asignar PinMode, entrada de botón INPUT1; pinMode (button2Pin, INPUT); pinMode (button3Pin, INPUT); pinMode (button4Pin, INPUT); // Asignar pin de salida pinMode (ENABLE, OUTPUT); pinMode (PinA, SALIDA); pinMode (PinB, SALIDA); // Configuración del pin de las tiras de LED pinMode (REDPIN, OUTPUT); pinMode (GREENPIN, SALIDA); pinMode (BLUEPIN, SALIDA); // Asignar velocidad paso a paso myStepper0.setSpeed ​​(15); myStepper1.setSpeed ​​(15); myStepper2.setSpeed ​​(15); myStepper3.setSpeed ​​(15); // Inicializar la pantalla LCD lcd.begin (16, 2); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Seleccione su artículo"); lcd.setCursor (0, 1); lcd.print ("# 1 # 2 # 3 # 4"); escritura analógica (REDPIN, 256); escritura analógica (GREENPIN, 256); analogWrite (BLUEPIN, 256);} void loop () {// leer la asignación del botón int button1State, button2State, button3State, button4State; button1State =digitalRead (button1Pin); button2State =digitalRead (button2Pin); button3State =digitalRead (button3Pin); button4State =digitalRead (button4Pin); digitalWrite (ENABLE, HIGH); // Establecer estado para (i =0; i <5; i ++); // define la acción cuando se presiona el botón 1 if (((button1State ==LOW) &&! (button2State ==LOW))) // si estamos presionando el botón 1 O el botón 2 {digitalWrite (PinA, HIGH); // activar relé digitalWrite (PinB, LOW); escritura analógica (REDPIN, 256); para (b =256; b> 0; b--); escritura analógica (BLUEPIN, b); para (g =256; g> 0; g--); escritura analógica (GREENPIN, g); para (g =256; g> 0; g--); lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Dispensación"); lcd.setCursor (3, 1); lcd.print ("Su artículo"); myStepper0.step (stepsPerRevolution); // ejecutar motor lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Tome"); lcd.setCursor (3, 1); lcd.print ("Su artículo"); retraso (2500); lcd.setCursor (0, 0); lcd.print ("Estado del botón 1"); lcd.setCursor (2, 1); lcd.print ("1 2 3 o 4"); para (b =0; b <256; b ++); escritura analógica (BLUEPIN, b); para (g =0; g <256; g ++); escritura analógica (GREENPIN, g); escritura digital (PinA, BAJA); // desconectar el relé digitalWrite (PinB, LOW); } // define la acción cuando se presiona el botón 2 if (((button2State ==LOW) &&! (button1State ==LOW))) // si estamos presionando el botón 1 O el botón 2 {digitalWrite (PinA, HIGH); // activar relé digitalWrite (PinB, LOW); escritura analógica (GREENPIN, 256); para (b =256; b> 0; b--); escritura analógica (BLUEPIN, b); para (r =256; r> 0; r--); analogWrite (REDPIN, r); lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Dispensación"); lcd.setCursor (3, 1); lcd.print ("Su artículo"); myStepper1.step (stepsPerRevolution); // ejecuta el motor lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Tome"); lcd.setCursor (3, 1); lcd.print ("Su artículo"); retraso (2500); lcd.setCursor (0, 0); lcd.print ("Estado del botón 2"); lcd.setCursor (2, 1); lcd.print ("1 2 3 o 4"); escritura digital (PinA, BAJA); // desconectar el relé digitalWrite (PinB, LOW); para (b =0; b <256; b ++); escritura analógica (BLUEPIN, b); para (r =0; r <256; r ++); analogWrite (REDPIN, r); } // define la acción cuando se presiona el botón 3 if (((button3State ==LOW) &&! (button4State ==LOW))) // si estamos presionando el botón 1 O el botón 2 {digitalWrite (PinA, HIGH); // activar relé digitalWrite (PinB, LOW); escritura analógica (PIN AZUL, 256); para (r =256; r> 0; r--); analogWrite (REDPIN, r); para (g =256; g> 0; g--); escritura analógica (GREENPIN, g); lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Dispensación"); lcd.setCursor (3, 1); lcd.print ("Su artículo"); myStepper2.step (stepsPerRevolution); // ejecutar el motor lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Tome"); lcd.setCursor (3, 1); lcd.print ("Su artículo"); retraso (2500); lcd.setCursor (0, 0); lcd.print ("Estado del botón 3"); lcd.setCursor (2, 1); lcd.print ("1 2 3 o 4"); escritura digital (PinA, BAJA); // desconectar el relé digitalWrite (PinB, LOW); para (g =0; g <256; g ++); escritura analógica (GREENPIN, g); para (r =0; r <256; r ++); analogWrite (REDPIN, r); } // define la acción cuando se presiona el botón 4 if (((button4State ==LOW) &&! (button3State ==LOW))) // si estamos presionando el botón 1 O el botón 2 {digitalWrite (PinA, HIGH); // activar relé digitalWrite (PinB, LOW); escritura analógica (REDPIN, 256); escritura analógica (GREENPIN, 256); para (b =256; b> 0; b--); escritura analógica (BLUEPIN, b); lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Dispensación"); lcd.setCursor (3, 1); lcd.print ("Su artículo"); myStepper3.step (-stepsPerRevolution); // ejecutar el motor lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Tome"); lcd.setCursor (3, 1); lcd.print ("Su artículo"); retraso (2500); lcd.setCursor (0, 0); lcd.print ("Estado del botón 4"); lcd.setCursor (2, 1); lcd.print ("1 2 3 o 4"); escritura digital (PinA, BAJA); // desconectar el relé digitalWrite (PinB, LOW); para (b =0; b <256; b ++); escritura analógica (BLUEPIN, b); }} 
Coin Acceptor y copde completo C #
Código completo
 // Display # incluye  LiquidCrystal lcd (2, 3, 4, 5, 6, 7); // Stepper Library # incluye  // incluye biblioteca de motor paso a paso // Configuración del relé # definir ENABLE 10 // # definir PinA 8 // # definir PinB 9 // Pines de transitor para LED # definir REDPIN 38 # definir GREENPIN 39 # definir BLUEPIN 40 // Definir "i" // int i; // Definir "RGB" int r, g, b; // Constantsconst int coinpin =21; const int ledpin =13; const int targetcents =100; // Variablesvolatile int cents =0; int creditos =0; // definiendo la sección de pines // Stepper Connect 1int stepIN1Pin =22; int stepIN2Pin =24; int stepIN3Pin =26; int stepIN4Pin =28; // Stepper Connect 2int stepIN1Pin1 =23; int stepIN2Pin1 =25; int stepIN3Pin1 =27; int stepIN4Pin1 =29; // Stepper Connect 3int stepIN1Pin2 =30; int stepIN2Pin2 =32; int stepIN3Pin2 =34; int stepIN4Pin2 =36; // Stepper Connect 4int stepIN1Pin3 =31; int stepIN2Pin3 =33; int stepIN3Pin3 =35; int stepIN4Pin3 =37; // definir pasosint pasosPerRevolution 2048; // cantidad de pasos por revolución // definir botones pin portsconst int button1Pin =A0; // Pulsador 1 Pin analógico A0const int button2Pin =A1; // Pulsador 2 Pin analógico A1const int button3Pin =A2; // Pulsador 3 Pin analógico A2const int button4Pin =A3; // Pulsador 4 Analog Pin A3 // definir cada paso a paso // 1Stepper myStepper0 (stepsPerRevolution, stepIN1Pin, stepIN3Pin, stepIN2Pin, stepIN4Pin); // 2Stepper myStepper1 (stepsPerRevolution, stepIN1Pin1, stepIN3Pin1, stepIN2Pinte1, stepIN3Pin1, stepIN2Pinte1, paso StepsPerRevolution, stepIN1Pin2, stepIN3Pin2, stepIN2Pin2, stepIN4Pin2); // 4Stepper myStepper3 (stepsPerRevolution, stepIN1Pin3, stepIN3Pin3, stepIN2Pin3, stepIN4Pin3); // Setupvoid setup () {Torupt CoinPinnterInterup. , CRECIENTE); // Asignar entrada de pin de botón pulsador:pinMode (button1Pin, INPUT); pinMode (button2Pin, INPUT); pinMode (button3Pin, INPUT); pinMode (button4Pin, INPUT); // Asignar salida de pin de relé pinMode (ENABLE, OUTPUT); // pinMode (PinA, OUTPUT); // pinMode (PinB, OUTPUT); // Configuración del pin de las tiras de LED pinMode (REDPIN, OUTPUT); pinMode (GREENPIN, SALIDA); pinMode (BLUEPIN, SALIDA); // Asignar velocidad paso a paso myStepper0.setSpeed ​​(15); myStepper1.setSpeed ​​(15); myStepper2.setSpeed ​​(15); myStepper3.setSpeed ​​(15); // Inicializar la pantalla LCD lcd.begin (16, 2); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Seleccione su artículo"); lcd.setCursor (0, 1); lcd.print ("# 1 # 2 # 3 # 4"); escritura analógica (REDPIN, 256); escritura analógica (GREENPIN, 256); analogWrite (BLUEPIN, 256);} // Main loopvoid loop () {// Si alcanzamos nuestra cantidad objetivo de monedas, incrementamos nuestros créditos y reiniciamos el contador de centavos if (cents> =targetcents) {créditos =créditos + 1; centavos =centavos - centavos objetivo; } // Si no hemos alcanzado nuestro objetivo, sigue esperando ... else {} // Zona de depuración lcd.begin (16, 2); lcd.clear (); lcd.setCursor (0, 0); lcd.print (centavos); lcd.setCursor (3, 0); lcd.print ("Recuento de monedas"); lcd.setCursor (0, 1); lcd.print (créditos); lcd.setCursor (3, 1); lcd.print ("crédito ganado"); retraso (1000); // Now, write your own code here that triggers an event when the player has credits! if (credits> 0) { // read button assignment int button1State, button2State, button3State, button4State; button1State =digitalRead(button1Pin); button2State =digitalRead(button2Pin); button3State =digitalRead(button3Pin); button4State =digitalRead(button4Pin); // digitalWrite(ENABLE, HIGH);// Set state // for (i =0; i <5; i++); // define action when button 1 is pressed if (((button1State ==LOW) &&!(button2State ==LOW)))// if we're pushing button 1 OR button 2 { digitalWrite(ENABLE, HIGH); //engage relay// digitalWrite(PinB, LOW); analogWrite(REDPIN, 256); for (b =256; b> 0; b--); analogWrite(BLUEPIN, b); for (g =256; g> 0; g--); analogWrite(GREENPIN, g); for (g =256; g> 0; g--); lcd.clear (); lcd.setCursor (2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper0.step(stepsPerRevolution); //run motor lcd.clear(); lcd.setCursor (2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); retraso (2500); for (b =0; b <256; b++); analogWrite(BLUEPIN, b); for (g =0; g <256; g++); analogWrite(GREENPIN, g); digitalWrite(ENABLE, LOW); //disengage relay// digitalWrite(PinB, LOW); credits =credits - 1; cents =cents - cents; } // define action when button 2 is pressed if (((button2State ==LOW) &&!(button1State ==LOW))) // if we're pushing button 1 OR button 2 { digitalWrite(ENABLE, HIGH); //engage relay// digitalWrite(PinB, LOW); analogWrite(GREENPIN, 256); for (b =256; b> 0; b--); analogWrite(BLUEPIN, b); for (r =256; r> 0; r--); analogWrite(REDPIN, r); lcd.clear (); lcd.setCursor (2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper1.step(stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor (2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); retraso (2500); digitalWrite(ENABLE, LOW); //disengage relay// digitalWrite(PinB, LOW); for (b =0; b <256; b++); analogWrite(BLUEPIN, b); for (r =0; r <256; r++); analogWrite(REDPIN, r); credits =credits - 1; cents =cents - cents; } // define action when button 3 is pressed if (((button3State ==LOW) &&!(button4State ==LOW))) // if we're pushing button 1 OR button 2 { digitalWrite(ENABLE, HIGH); //engage relay// digitalWrite(PinB, LOW); analogWrite(BLUEPIN, 256); for (r =256; r> 0; r--); analogWrite(REDPIN, r); for (g =256; g> 0; g--); analogWrite(GREENPIN, g); lcd.clear (); lcd.setCursor (2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper2.step(stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor (2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); retraso (2500); digitalWrite(ENABLE, LOW); //disengage relay// digitalWrite(PinB, LOW); for (g =0; g <256; g++); analogWrite(GREENPIN, g); for (r =0; r <256; r++); analogWrite(REDPIN, r); credits =credits - 1; cents =cents - cents; } // define action when button 4 is pressed if (((button4State ==LOW) &&!(button3State ==LOW))) // if we're pushing button 1 OR button 2 { digitalWrite(ENABLE, HIGH); //! engage relay// digitalWrite(PinB, LOW); analogWrite(REDPIN, 256); analogWrite(GREENPIN, 256); for (b =256; b> 0; b--); analogWrite(BLUEPIN, b); lcd.clear (); lcd.setCursor (2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper3.step(-stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor (2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); retraso (2500); digitalWrite(ENABLE, LOW); //disengage relay// digitalWrite(PinB, LOW); for (b =0; b <256; b++); analogWrite(BLUEPIN, b); credits =credits - 1; cents =cents - cents; } }}// Coin Increase loopvoid coinInterrupt() { // Each time a pulse is sent from the coin acceptor, interrupt main loop to add 5 cent and flip on the LED cents =cents + 5; digitalWrite(ledpin, HIGH);}

Esquemas

This is a complete Diagram of the system. It includes, ATX power supply, motors,LCD,LEDs, lights and controller

Proceso de manufactura

  1. Máquina de EEG
  2. Máquina expendedora
  3. Máquina de coser
  4. ¿Cómo funciona una máquina expendedora de papas fritas?
  5. ¿Qué es una máquina expendedora de leche?
  6. ¿Cómo puede una máquina expendedora de chips proporcionar chips frescos y calientes?
  7. ¿Qué es una máquina expendedora de fideos?
  8. ¿Qué es una máquina expendedora de sopa de té y café?
  9. ¡Tenga una comida saludable con la máquina expendedora Meal Prep!
  10. ¿Qué esperar de una máquina expendedora de refrescos?
  11. Máquina expendedora de paletas heladas:el potencial comercial