Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Distributeur automatique de pièces de monnaie

Composants et fournitures

Contreplaqué FriendlyARM 1/4
Coupez le contreplaqué aux dimensions spécifiées dans le schéma
× 4
3/4" blocage de contreplaqué
Coupez le contreplaqué en bandes de 3/4" de large et aussi longues que la pièce à laquelle il se connecte, voir schéma
× 1
LAFVIN 5 ensembles 28BYJ-48 ULN2003 5V moteur pas à pas + pilote ULN2003 Carte pour Arduino
Ces moteurs seront capables de pousser n'importe quelle friandise que vous mettez dans la machine
× 1
Accessoires Pc - Connecteurs Pro IDC 1.27mm Pas de Ruban Plat Couleur Arc-en-ciel Câble pour connecteurs 2,54 mm (50P-10FT)
Nécessaire pour rendre la machine propre et professionnelle
× 1
Glarks 635Pcs Dupont connecteur boîtier mâle/femelle broche connecteur 40 broches
Nécessaire pour rendre la machine propre et professionnelle
× 1
Gamelec-Illuminated-Replacement-Microswitch
Je dois avoir des boutons
× 1
Planche à pain (générique)
Les planches à souder fonctionnent aussi bien
× 1
Kit de prototype de carte PCB double face 30 pièces
Seulement un ou deux sont nécessaires mais la taille est parfaite pour les futurs projets
× 1
Arduino Mega 2560
Le contrôleur utilisé était le Mega 2560
× 1
Module relais Tolako 5v pour Arduino ARM
Nécessaire pour empêcher la surchauffe des moteurs
× 1
Affichage du module LCD série HiLetgo 2pcs 1602
Sans cela, vous ne saurez pas quel bouton a été enfoncé
× 1
Bandes lumineuses LED
Facultatif
× 2
Fil de mise à la terre en cuivre nu SD solide de 50 pi de calibre 8
C'est ce que vous utiliserez pour fabriquer les bobines
× 1
Séparateur d'étagères plat en métal
× 1

Outils et machines nécessaires

Table ou scie électrique
À moins que vous n'ayez un endroit pour couper le bois
Fer à souder (générique)
Pistolet à colle chaude (générique)
N'oubliez pas les bâtons de colle également

Applications et services en ligne

Arduino IDE

À propos de ce projet

LE DISTRIBUTEUR PERSONNEL

Ce projet est une construction étape par étape d'un distributeur automatique personnel. Le distributeur automatique peut être rempli de vos collations préférées ou peut être amené au bureau afin que vous puissiez partager des friandises avec votre équipe. Jetez un œil et faites-moi part de vos commentaires.

Construire la machine :

Je me référerai aux schémas de la machine tout au long de ce texte, veuillez donc vous référer aux schémas pour clarification/compréhension.

Les dimensions de la machine sont 21"L x 18"P x 24 1/4"H (Dimensions de la boîte)

2 panneaux 18"P x 23 3/4"H (Côtés)

2 panneaux 21"L x 18"P (Haut et Bas)

2 panneaux 21"L x 24 1/4"H (Avant et Arrière)

Le mur de séparation mesure 18"D x 23 3/4"H

L'étagère interne mesure 13" L x 12" P (fois 2, étagère supérieure et inférieure)

Les étagères sont espacées de 8" 13" de large 12" de profondeur

Chaque bloc bleu sur le schéma des panneaux est un point de montage de ¾"L x ¾"H aussi profond que le panneau

Assemblez la boîte comme indiqué sur le schéma et ici en utilisant le blocage de 3/4" à chacun des points de jonction. Prenez note que les parois latérales reposent sur le dessus de la plaque inférieure et sous la plaque supérieure. Les murs périphériques doivent mesurer 21"W par 24 1/4"H.

Le mur de séparation doit être configuré avant l'installation. Mesurez à partir du haut à 16 1/4" et fixez-y le blocage pour la tablette inférieure. Mesurez à 8 1/4" à partir du haut et fixez le blocage pour la tablette supérieure. Effectuez ces étapes sur le mur de gauche (en regardant de l'avant de la machine) afin de pouvoir fixer le blocage des étagères supérieure et inférieure.

**** Notez que l'étagère inférieure doit être installée en premier, sinon la fixation au blocage sera très difficile.

Une fois que le blocage est installé pour les étagères, utilisez les panneaux de 13" x 12" et installez-en un sur chaque ensemble de blocage. Cela installera automatiquement le mur de séparation à sa place. Fixez ensuite le blocage en haut et en bas du côté droit du mur de séparation. Ensuite, fixez-le aux panneaux supérieur et inférieur. Cela assurera complètement votre structure.

Installez le panneau arrière et préparez-vous pour l'installation du moteur. Assurez-vous d'avoir imprimé les roues de bobine afin de pouvoir les mesurer et configurer vos trous de perçage. Mesurez les roues et ajoutez 1/4 "à la hauteur afin qu'elle laisse de la place à la bobine pour tourner. Vous pouvez ajuster cela au besoin en fonction de votre matériau. Mesurez plus de 6 1/2" sur l'étagère pour marquer son milieu. Mesurez plus de 3 1/4" pour trouver le centre de chaque section d'étagère. Utilisez la mesure de hauteur que vous avez enregistrée il y a quelques instants pour trouver les points de perçage. Percez un trou qui vous permettra de connecter la roue au moteur sans que l'arbre de roue ne frotte dessus Terminer le montage des moteurs et visser les fixations.

Configuration du relais moteur :

Connectez les broches comme suit. Utilisez la puce L293D (encoche à gauche) (dans le schéma de circuit) pour pouvoir contrôler le relais. Cela vous permettra de connecter les moteurs à l'alimentation.

(De gauche à droite)

La broche 1 se connecte à la prise de broche 10 sur le contrôleur (dans le schéma de circuit)

La broche 2 se connecte à la prise de broche 9 du contrôleur (dans le schéma de circuit)

La broche 3 se connecte au côté positif du relais (avec les 3 broches face à vous, broche à gauche) (Dans le schéma de circuit)

La broche 4 se connecte à la masse 12V sur la maquette (dans le schéma de circuit)

Broche 5 Non utilisé (Dans le schéma de circuit)

La broche 6 se connecte au côté terre sur le relais (avec les 3 broches face à vous, broche à droite) (Dans le schéma de circuit)

La broche 7 se connecte à la prise de broche 8 sur le contrôleur (dans le schéma de circuit)

La broche 8 se connecte à +12V sur la maquette (dans le schéma de circuit)

Connectez la broche du milieu sur le relais au +12V sur la maquette (dans le schéma de circuit)

Connectez la broche arrière droite du relais (avec les 3 broches face à vous, la broche arrière à droite) au fil positif allant aux pilotes de moteur (dans le schéma de circuit)

Installation de l'écran et des boutons :Écran - Choisissez un endroit sur le côté droit de la machine (en regardant la machine de l'avant) et marquez le trou qui doit être fait pour la partie d'affichage de l'écran (2,53937" x 0,5708661) - Choisissez un endroit sur le côté droit de la machine (en regardant la machine de l'avant) et marquez les trous qui doivent être faits pour les 4 boutons. Les trous doivent être de 1,10236" si vous utilisez exactement le même bouton dans le liste des pièces. J'aime utiliser un foret plus petit que nécessaire et du papier de verre pour l'amener à la taille requise.

Gardez à l'esprit que vous devez vous assurer que toutes les connexions sont exactement aux mêmes endroits que dans le schéma ci-dessus. Les LED représentées sur le schéma sont les LED intégrées aux boutons poussoirs. Les schémas les montrent séparément mais c'est uniquement pour l'affichage et pour faciliter la lecture du schéma.

Connectez chaque moteur au pilote fourni avec eux. Connectez ensuite chaque pilote au contrôleur en suivant ces étapes :

Configuration du moteur :

L'alimentation doit être connectée au côté 12V de la planche à pain. Cette alimentation provient de l'alimentation ATX que nous préparerons à la fin. Connectez ensuite les 4 broches "in" du driver au contrôleur. Ces broches sont les suivantes

********* NE PAS CONNECTER AUX 2 PREMIÈRES BROCHES DE CE BLOC, CE SONT DES BROCHES 5V - NON UTILISÉES DANS CE PROJET *********

Moteur 1 : broches bleues 22, 24, 26, 28 (dans le schéma de circuit)

Moteur 2 : broches jaunes 23, 25, 27, 29 (dans le schéma de circuit)

Moteur 3 : broches vertes 30, 32, 34, 36 (dans le schéma de circuit)

Moteur 4 : broches rouges 31, 33, 35, 37 (dans le schéma de circuit)

Connexions des boutons :

Connectez un côté du bouton-poussoir 1 à l'alimentation 5v, l'autre côté à une résistance 220 mise à la terre avec la broche analogique A0 (dans le schéma de circuit)

Connectez un côté du bouton-poussoir 2 à l'alimentation 5v, l'autre côté à une résistance 220 mise à la terre avec la broche analogique A1 (dans le schéma de circuit)

Connectez un côté du bouton-poussoir 3 à l'alimentation 5v, l'autre côté à une résistance 220 mise à la terre avec la broche analogique A2 (dans le schéma de circuit)

Connectez un côté du bouton-poussoir 4 à l'alimentation 5v, l'autre côté à une résistance 220 mise à la terre avec la broche analogique A3 (dans le schéma de circuit)

ÉCRAN LCD :

Connectez l'écran au côté 5v de la maquette pour l'alimentation et la terre

Les épingles sont les suivantes :

Broche 1 :Connectez-vous à la terre (dans le schéma de circuit)

Broche 2 : Connectez-vous à l'alimentation 5 v (dans le schéma de circuit)

Broche 3:Connectez-vous au potentiomètre réglable (Illustré ci-dessous) Broche inférieure gauche à la terre, inférieure droite à l'alimentation et broche supérieure à la broche 3 sur l'écran LCD (dans le schéma de circuit, c'est ainsi que vous définissez le contraste sur l'écran LCD pour que le texte soit net et propre)

Broche 4 : Première broche de signal vers la prise 2 de la broche du contrôleur (dans le schéma de circuit)

Broche 5 : Connectez-vous à la terre (dans le schéma de circuit)

Broche 6 : deuxième broche de signal vers la prise 3 de la broche du contrôleur (dans le schéma de circuit)

Broche 7 :NON UTILISÉ

Broche 8 :NON UTILISÉ

Broche 9 :NON UTILISÉ

Broche 10 :NON UTILISÉ

Broche 11 : troisième broche de signal vers la prise 4 de la broche du contrôleur (dans le schéma de circuit)

Broche 12 :Quatrième broche de signal vers la prise 5 de la broche du contrôleur (dans le schéma de circuit)

Broche 13 : cinquième broche de signal vers la prise 6 de la broche du contrôleur (dans le schéma de circuit)

Broche 14 : sixième broche de signal vers la prise 7 de la broche du contrôleur (dans le schéma de circuit)

Broche 15 : Connectez-vous à l'alimentation 5 v (dans le schéma de circuit)

Broche 16 : Connectez-vous à la terre (dans le schéma de circuit)

ALIMENTATION ATX :

Ne coupez que les fils nécessaires à l'alimentation de l'appareil. Les autres fils sont plus sûrs dans le connecteur en plastique et vous permettront de l'utiliser pour d'autres projets si nécessaire.

Broches ATX :

Coupez et dénudez la broche 3 du fil noir (Masse) et la broche 16 du fil vert (Signal). Attachez ces fils à un interrupteur afin de pouvoir allumer et éteindre la machine (Dans le schéma de circuit)

Coupez et dénudez la broche 7 du fil noir (terre) et la broche 10 du fil jaune (+12 V). Fixez ces fils au côté 12 V de la planche à pain désigné dans les connexions jaune et noire. (Dans le schéma électrique)

Coupez et dénudez (terre) la broche du fil noir 24 et (+12V) la broche du fil jaune 11. Fixez ces fils à un connecteur compatible pour alimenter la carte Arduino (dans le schéma de circuit)

Coupez et dénudez (terre) la broche 19 du fil noir et la broche 21 du fil rouge (+5 V). Attachez ces fils au côté 5 V de la planche à pain (dans le schéma de circuit)

Diviseurs d'étagères et bobines :

Voici comment configurer vos étagères et extrudeuses.

Étagères - Au milieu, à 6 1/2" du mur latéral gauche (en regardant la machine de l'avant) ou du mur de séparation, il devrait y avoir une marque des étapes ci-dessus. Utilisez le métal plat et pliez-le dans le haut d'un triangle. Ressemble à ceci "^" Cela servira de diviseur central. Centrez le triangle sur la marque du milieu sur l'étagère. Répétez l'opération pour la deuxième étagère. Utilisez de la colle chaude pour fixer en place. J'ai mis des glissières sur les côtés aussi mais ils sont facultatifs.

Bobines - Pour créer les bobines, trouvez d'abord un tube de 1 1/2 ". Un tuyau, un tube de calfeutrage, une bombe de peinture en aérosol ou un objet similaire fera l'affaire. Une astuce consiste à prendre un élastique et à l'enrouler de haut en bas sur toute la longueur du tube. Tracez la ligne droite de chaque côté de la bande des deux côtés du tube. Une fois que vous avez des lignes parallèles sur les deux côtés, utilisez un ruban à mesurer pour marquer les points suivants. Choisissez un côté et mesurez en 1" et marquez-le , puis mesurez 2" à partir de là, marquez-le et continuez à faire des espaces de 2" tout le long du tube. Maintenant, de l'autre côté du tube, marquez seulement des intervalles de 2". Commencez à faire la bobine sur le côté 1" du tube et continuez à faire votre bobine de manière à ce qu'elle touche chaque marque des deux côtés du tube. Cela vous donnera un espace de 2" entre les échelons. Devrait être assez grand pour la plupart des articles. Si vous prévoyez de l'utiliser pour des bonbons, raccourcissez la bobine à 1" réduisez simplement la formule ci-dessus de moitié.

Connexion des bobines aux roues imprimées en 3D. Gardez à l'esprit qu'il existe des roues fabriquées qui fonctionneront. Jetez un œil sur Amazon.

Sur le côté de 1" de la bobine, repliez cette bobine pour qu'elle fasse un cercle. Ensuite, raccourcissez le diamètre pour qu'il soit légèrement plus petit que la roue. Une fois la bobine prête, placez-la autour du bord de la roue. Cela devrait entraîner la compression de la bobine autour le bord de la roue et l'empêcher de glisser. Une fois que vous êtes satisfait de l'ajustement, prenez une petite noisette de colle chaude et placez-la sur la roue à l'extrémité de la bobine pour la maintenir en place.

Bandes lumineuses LED :

Connectez le fil positif à la broche +12V du côté 12V de la planche à pain. Connectez le fil de terre à la broche de terre du côté 12 V de la planche à pain (pas dans le schéma)

VEUILLEZ POSER TOUTES LES QUESTIONS QUE VOUS AVEZ AFIN QUE JE PUISSE AIDER À LA MISE À JOUR POUR FAIRE DE CE PROJET LE PLUS FACILE JAMAIS.

Code

  • Distributeur automatique - SANS CHANGER LES LUMIÈRES LED
  • Distributeur automatique - AVEC LUMIÈRES LED CHANGEANTES
  • Coin Acceptor et copde complet
Distributeur automatique - SANS CHANGER LES LUMIÈRES LEDArduino
Tout ce dont vous avez besoin pour terminer et comprendre le projet
// Display#include LiquidCrystal lcd(2, 3, 4, 5, 6, 7);//Stepper Library#include  / /y compris la bibliothèque de moteurs pas à pas//Configuration du relais#define ENABLE 10#define DIRA 8#define DIRB 9//Define "i"int i;//defining pins section//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 =33;int stepIN3Pin3 =35;int stepIN4Pin3 =37;//définir pasint stepPerRevolution =2048; // nombre de pas par tour//définir les boutons pin portsconst int button1Pin =A0; // Bouton-poussoir 1 Broche analogique A0const int button2Pin =A1; // Push Button 2 Analog Pin A1const int button3Pin =A2; // Bouton-poussoir 3 Broche analogique A2const int button4Pin =A3; // Bouton poussoir 4 broches analogiques A3//définir chaque pas à pas// 1Stepper myStepper0(stepsPerRevolution, stepIN1Pin, stepIN3Pin, stepIN2Pin, stepIN4Pin);//2Stepper myStepper1(stepsPerRevolution, stepIN1Pin1, stepIN3Pin1, stepIN2Pin1, stepIN4Pin1) stepPerRevolution, stepIN1Pin2, stepIN3Pin2, stepIN2Pin2, stepIN4Pin2) ;//4Stepper myStepper3(stepsPerRevolution, stepIN1Pin3, stepIN3Pin3, stepIN2Pin3, stepIN4Pin3) ; void setup() { // Assigner l'entrée du bouton-poussoir :pinMode (bouton1Pin, INPUT); pinMode (bouton2Pin, INPUT); pinMode (bouton3Pin, INPUT); pinMode (bouton4Pin, INPUT); // Attribuer la sortie de la broche pinMode(ENABLE, OUTPUT); pinMode(DIRA, SORTIE); pinMode(DIRB,SORTIE); // Attribuer la vitesse du pas à pas myStepper0.setSpeed(15); myStepper1.setSpeed(15); myStepper2.setSpeed(15); myStepper3.setSpeed(15); //Initialiser l'écran LCD lcd.begin (16, 2); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Sélectionnez votre article"); lcd.setCursor(0, 1); lcd.print(" #1 #2 #3 #4");}void loop() { // lit l'affectation du bouton int button1State, button2State, button3State, button4State; button1State =digitalRead(button1Pin); button2State =digitalRead(button2Pin); button3State =digitalRead(button3Pin); button4State =digitalRead(button4Pin); digitalWrite(ENABLE, HIGH);// Définir l'état pour (i=0;i<5;i++); // définit l'action lorsque le bouton 1 est enfoncé if (((button1State ==LOW) &&!(button2State ==LOW)))// si nous appuyons sur le bouton 1 OU le bouton 2 {digitalWrite(DIRA,HIGH); // engage le relais digitalWrite (DIRB, LOW); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Distribution"); lcd.setCursor(3, 1); lcd.print("Votre article"); myStepper0.step(stepsPerRevolution); // lance le moteur lcd.clear(); lcd.setCursor(2, 0); lcd.print("Veuillez prendre"); lcd.setCursor(3, 1); lcd.print("Votre article"); retard (2500); lcd.setCursor(0, 0); lcd.print("État du bouton 1"); lcd.setCursor(2, 1); lcd.print("1 2 3 ou 4"); digitalWrite(DIRA,LOW); //désengage le relais digitalWrite(DIRB,LOW); } // définit l'action lorsque le bouton 2 est enfoncé if (((button2State ==LOW) &&!(button1State ==LOW))) // si nous appuyons sur le bouton 1 OU le bouton 2 {digitalWrite(DIRA,HIGH); // engage le relais digitalWrite (DIRB, LOW); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Distribution"); lcd.setCursor(3, 1); lcd.print("Votre article"); myStepper1.step(stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Veuillez prendre"); lcd.setCursor(3, 1); lcd.print("Votre article"); retard (2500); lcd.setCursor(0, 0); lcd.print("État du bouton 2"); lcd.setCursor(2, 1); lcd.print("1 2 3 ou 4"); digitalWrite(DIRA,LOW); //désengage le relais digitalWrite(DIRB,LOW); } // définit l'action lorsque le bouton 3 est enfoncé if (((button3State ==LOW) &&!(button4State ==LOW))) // si nous appuyons sur le bouton 1 OU le bouton 2 {digitalWrite(DIRA,HIGH); // engage le relais digitalWrite (DIRB, LOW); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Distribution"); lcd.setCursor(3, 1); lcd.print("Votre article"); myStepper2.step(stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Veuillez prendre"); lcd.setCursor(3, 1); lcd.print("Votre article"); retard (2500); lcd.setCursor(0, 0); lcd.print("État du bouton 3"); lcd.setCursor(2, 1); lcd.print("1 2 3 ou 4"); digitalWrite(DIRA,LOW); //désengage le relais digitalWrite(DIRB,LOW); } // définit l'action lorsque le bouton 4 est enfoncé if (((button4State ==LOW) &&!(button3State ==LOW))) // si nous appuyons sur le bouton 1 OU le bouton 2 {digitalWrite(DIRA,HIGH); // engage le relais digitalWrite (DIRB, LOW); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Distribution"); lcd.setCursor(3, 1); lcd.print("Votre article"); myStepper3.step(-stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Veuillez prendre"); lcd.setCursor(3, 1); lcd.print("Votre article"); retard (2500); lcd.setCursor(0, 0); lcd.print("État du bouton 4"); lcd.setCursor(2, 1); lcd.print("1 2 3 ou 4"); digitalWrite(DIRA,LOW); //désengage le relais digitalWrite(DIRB,LOW); }}
Distributeur automatique – AVEC LUMIÈRES À DEL CHANGEANTESC#
Jetez un œil à la vidéo !
// Display#include LiquidCrystal lcd(2, 3, 4, 5, 6, 7);//Stepper Library#include  //incluant bibliothèque de moteurs pas à pas//Configuration du relais#define ENABLE 10#define PinA 8#define PinB 9#define REDPIN 38#define GREENPIN 39#define BLUEPIN 40//Define "i"int i;//Define "RGB"int r, g , b;//définir la section des broches//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 ; //définir stepint stepsPerRevolution =2048 ; // nombre de pas par tour//définir les boutons pin portsconst int button1Pin =A0; // Bouton-poussoir 1 Broche analogique A0const int button2Pin =A1; // Push Button 2 Analog Pin A1const int button3Pin =A2; // Bouton-poussoir 3 Broche analogique A2const int button4Pin =A3; // Bouton poussoir 4 broches analogiques A3//définir chaque pas à pas// 1Stepper myStepper0(stepsPerRevolution, stepIN1Pin, stepIN3Pin, stepIN2Pin, stepIN4Pin);//2Stepper myStepper1(stepsPerRevolution, stepIN1Pin1, stepIN3Pin1, stepIN2Pin1, stepIN4Pin1) stepPerRevolution, stepIN1Pin2, stepIN3Pin2, stepIN2Pin2, stepIN4Pin2) ;//4Stepper myStepper3(stepsPerRevolution, stepIN1Pin3, stepIN3Pin3, stepIN2Pin3, stepIN4Pin3) ; void setup() { // Assigner l'entrée du bouton-poussoir :pinMode (bouton1Pin, INPUT); pinMode (bouton2Pin, INPUT); pinMode (bouton3Pin, INPUT); pinMode (bouton4Pin, INPUT); // Attribuer la sortie de la broche pinMode(ENABLE, OUTPUT); pinMode(PinA, SORTIE); pinMode(PinB, SORTIE); //Configuration des broches des bandes LED pinMode(REDPIN, OUTPUT); pinMode(GREENPIN, SORTIE); pinMode(BLUEPIN, SORTIE); // Attribuer la vitesse du pas à pas myStepper0.setSpeed(15); myStepper1.setSpeed(15); myStepper2.setSpeed(15); myStepper3.setSpeed(15); //Initialiser l'écran LCD lcd.begin (16, 2); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Sélectionnez votre article"); lcd.setCursor(0, 1); lcd.print(" #1 #2 #3 #4"); analogWrite(REDPIN, 256); analogWrite(GREENPIN, 256); analogWrite(BLUEPIN, 256);}void loop() { // lire l'affectation du bouton int button1State, button2State, button3State, button4State; button1State =digitalRead(button1Pin); button2State =digitalRead(button2Pin); button3State =digitalRead(button3Pin); button4State =digitalRead(button4Pin); digitalWrite(ENABLE, HIGH);// Définir l'état pour (i =0; i <5; i++); // définit l'action lorsque le bouton 1 est enfoncé if (((button1State ==LOW) &&!(button2State ==LOW)))// si nous appuyons sur le bouton 1 OU le bouton 2 { digitalWrite(PinA, HIGH); // engage le relais digitalWrite (PinB, LOW); analogWrite(REDPIN, 256); pour (b =256; b> 0; b--); analogWrite(BLUEPIN, b); pour (g =256; g> 0; g--); analogWrite(GREENPIN, g); pour (g =256; g> 0; g--); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Distribution"); lcd.setCursor(3, 1); lcd.print("Votre article"); myStepper0.step(stepsPerRevolution); // lance le moteur lcd.clear(); lcd.setCursor(2, 0); lcd.print("Veuillez prendre"); lcd.setCursor(3, 1); lcd.print("Votre article"); retard (2500); lcd.setCursor(0, 0); lcd.print("État du bouton 1"); lcd.setCursor(2, 1); lcd.print("1 2 3 ou 4"); pour (b =0; b <256; b++); analogWrite(BLUEPIN, b); pour (g =0; g <256; g++); analogWrite(GREENPIN, g); digitalWrite(PinA, LOW); //désengage le relais digitalWrite(PinB, LOW); } // définit l'action lorsque le bouton 2 est enfoncé if (((button2State ==LOW) &&!(button1State ==LOW))) // si nous appuyons sur le bouton 1 OU le bouton 2 { digitalWrite(PinA, HIGH); // engage le relais digitalWrite (PinB, LOW); analogWrite(GREENPIN, 256); pour (b =256; b> 0; b--); analogWrite(BLUEPIN, b); pour (r =256; r> 0; r--); analogWrite(REDPIN, r); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Distribution"); lcd.setCursor(3, 1); lcd.print("Votre article"); myStepper1.step(stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Veuillez prendre"); lcd.setCursor(3, 1); lcd.print("Votre article"); retard (2500); lcd.setCursor(0, 0); lcd.print("État du bouton 2"); lcd.setCursor(2, 1); lcd.print("1 2 3 ou 4"); digitalWrite(PinA, LOW); //désengage le relais digitalWrite(PinB, LOW); pour (b =0; b <256; b++); analogWrite(BLUEPIN, b); pour (r =0; r <256; r++); analogWrite(REDPIN, r); } // définit l'action lorsque le bouton 3 est enfoncé if (((button3State ==LOW) &&!(button4State ==LOW))) // si nous appuyons sur le bouton 1 OU le bouton 2 { digitalWrite(PinA, HIGH); // engage le relais digitalWrite (PinB, LOW); analogWrite(BLUEPIN, 256); pour (r =256; r> 0; r--); analogWrite(REDPIN, r); pour (g =256; g> 0; g--); analogWrite(GREENPIN, g); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Distribution"); lcd.setCursor(3, 1); lcd.print("Votre article"); myStepper2.step(stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Veuillez prendre"); lcd.setCursor(3, 1); lcd.print("Votre article"); retard (2500); lcd.setCursor(0, 0); lcd.print("État du bouton 3"); lcd.setCursor(2, 1); lcd.print("1 2 3 ou 4"); digitalWrite(PinA, LOW); //désengage le relais digitalWrite(PinB, LOW); pour (g =0; g <256; g++); analogWrite(GREENPIN, g); pour (r =0; r <256; r++); analogWrite(REDPIN, r); } // définit l'action lorsque le bouton 4 est enfoncé if (((button4State ==LOW) &&!(button3State ==LOW))) // si nous appuyons sur le bouton 1 OU le bouton 2 { digitalWrite(PinA, HIGH); // engage le relais digitalWrite (PinB, LOW); analogWrite(REDPIN, 256); analogWrite(GREENPIN, 256); pour (b =256; b> 0; b--); analogWrite(BLUEPIN, b); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Distribution"); lcd.setCursor(3, 1); lcd.print("Votre article"); myStepper3.step(-stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Veuillez prendre"); lcd.setCursor(3, 1); lcd.print("Votre article"); retard (2500); lcd.setCursor(0, 0); lcd.print("État du bouton 4"); lcd.setCursor(2, 1); lcd.print("1 2 3 ou 4"); digitalWrite(PinA, LOW); //désengage le relais digitalWrite(PinB, LOW); pour (b =0; b <256; b++); analogWrite(BLUEPIN, b); }}
Coin Acceptor et copde completC#
Code complet
// Display#include LiquidCrystal lcd(2, 3, 4, 5, 6, 7);//Stepper Library#include  //y compris la bibliothèque de moteurs pas à pas// Configuration du relais#define ENABLE 10//#define PinA 8//#define PinB 9//Broches du transistor pour LED#define REDPIN 38#define GREENPIN 39#define BLUEPIN 40//Define "i"//int i;//Define "RGB"int r, g, b;// Constantsconst int coinpin =21;const int ledpin =13;const int targetcents =100;// Variablesvolatile int cents =0;int credits =0;//définir la section des broches// 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 stepPerRevolution 2048 ; // nombre de pas par tour//définir les boutons pin portsconst int button1Pin =A0; // Bouton-poussoir 1 Broche analogique A0const int button2Pin =A1; // Push Button 2 Analog Pin A1const int button3Pin =A2; // Bouton-poussoir 3 Broche analogique A2const int button4Pin =A3; // Bouton poussoir 4 broches analogiques A3//définir chaque pas à pas// 1Stepper myStepper0(stepsPerRevolution, stepIN1Pin, stepIN3Pin, stepIN2Pin, stepIN4Pin);//2Stepper myStepper1(stepsPerRevolution, stepIN1Pin1, stepIN3Pin1, stepIN2Pin1, stepIN4Pin1) stepPerRevolution, stepIN1Pin2, stepIN3Pin2, stepIN2Pin2, stepIN4Pin2) ;//4Stepper myStepper3(stepsPerRevolution, stepIN1Pin3, stepIN3Pin3, stepIN2Pin3, stepIN4Pin3) ; // Setupvoid setup() { // Attribuer une interruption à la broche et conditionner la pièce jointe à l'interruption (digitalPin , EN HAUSSE); // Assignez l'entrée Pin du bouton poussoir:pinMode(button1Pin, INPUT); pinMode (bouton2Pin, INPUT); pinMode (bouton3Pin, INPUT); pinMode (bouton4Pin, INPUT); // Attribuer la sortie de la broche de relais pinMode (ENABLE, OUTPUT); // pinMode (PinA, OUTPUT); // pinMode (PinB, OUTPUT); //Configuration des broches des bandes LED pinMode(REDPIN, OUTPUT); pinMode(GREENPIN, SORTIE); pinMode(BLUEPIN, SORTIE); // Attribuer la vitesse du pas à pas myStepper0.setSpeed(15); myStepper1.setSpeed(15); myStepper2.setSpeed(15); myStepper3.setSpeed(15); //Initialiser l'écran LCD lcd.begin (16, 2); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Sélectionnez votre article"); lcd.setCursor(0, 1); lcd.print(" #1 #2 #3 #4"); analogWrite(REDPIN, 256); analogWrite(GREENPIN, 256); analogWrite(BLUEPIN, 256);}// Boucle principale loopvoid() { // Si nous avons atteint notre montant cible de pièces, incrémentons nos crédits et réinitialisez le compteur de cents if (cents>=targetcents) { credits =credits + 1; cents =cents - cents cibles ; } // Si nous n'avons pas atteint notre cible, continuez d'attendre... else { } // Zone de débogage lcd.begin(16, 2); lcd.clear(); lcd.setCursor(0, 0); lcd.print(cents); lcd.setCursor(3, 0); lcd.print("Compte de pièces"); lcd.setCursor(0, 1); lcd.print(crédits); lcd.setCursor(3, 1); lcd.print("crédit gagné"); retard(1000); // Maintenant, écrivez votre propre code ici qui déclenche un événement lorsque le joueur a des crédits ! 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"); retard (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"); retard (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"); retard (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"); retard (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);}

Schémas

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

Processus de fabrication

  1. Machine à coudre
  2. Comment fonctionne un distributeur automatique de frites ?
  3. Qu'est-ce qu'un distributeur automatique de lait ?
  4. Comment un distributeur automatique de chips peut-il fournir des chips chaudes et fraîches ?
  5. Qu'est-ce qu'un distributeur automatique de nouilles ?
  6. Qu'est-ce qu'un distributeur automatique de soupe au thé et au café ?
  7. Prenez un repas sain avec le distributeur automatique de préparation de repas !
  8. À quoi s'attendre d'un distributeur automatique de boissons gazeuses ?
  9. Distributeur automatique de popsicle :le potentiel commercial