Table des matières:
- Étape 1: Critères
- Étape 2: boîtier
- Étape 3: Électronique
- Étape 4: Accepteur de factures
- Étape 5: Tester
- Étape 6: De l'électronique au boîtier
- Étape 7: Tests finaux
- Étape 8: Code Arduino + Liens
Vidéo: Distributeur automatique basé sur Arduino à 1 $ : 8 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Nous avons eu notre idée de notre professeur d'ingénierie - nous avons tous pensé que ce serait une bonne idée d'avoir un distributeur automatique pour notre classe et il a dit - "cool, faites-en un". Il s'est avéré qu'un distributeur automatique serait un excellent projet senior et qu'une fois terminé, il fonctionnerait comme une collecte de fonds pour notre programme d'ingénierie.
On l'appelle un distributeur automatique de 1 $ non pas parce que cela coûte 1 $ à fabriquer, mais simplement parce que l'accepteur de billets est un modèle plus ancien qui ne prend que des billets de 1 $:)
Étape 1: Critères
Nous voulions un distributeur qui tiendrait sur un bureau et ne serait pas trop grand. Nous avons pris les dimensions de la largeur de la table pour nous assurer que nous n'avions pas le distributeur qui pendait de la table.
Étape 2: boîtier
Nous avons fabriqué notre boîte de 19 pouces de large sur 17 pouces de long sur 25 pouces de haut. Nous avons utilisé une machine CNC pour couper notre bois. Nous avons utilisé solidworks pour concevoir les faces, puis les avons converties en types de fichiers de dessin pour notre logiciel CNC. Nous avons poncé les bords puis les avons vissés avec 1 ¼”. Nous avons fixé le panneau avant avec une charnière et utilisé des vis ¼ , afin que les vis ne passent pas de l'autre côté. Nous avons également utilisé du verre acrylique que nous avons découpé pour les étagères et le panneau avant.
Étape 3: Électronique
Arduino
Nous avons utilisé une carte Arduino Mega 2560. Nous avons également utilisé des cartes de moteur Adafruit pour qu'elles puissent faire fonctionner les moteurs pas à pas. Nous avons ajouté des broches aux adafruits pour qu'ils se connectent les uns aux autres. Ils les ont insérés les uns sur les autres. Chacun peut faire fonctionner 2 moteurs. Veuillez également noter que le cavalier doit être connecté.
Alimentation de bureau
Alimentation Bestek ATX utilisant un adaptateur pour maintenir l'alimentation allumée. L'adaptateur provient de sparkfun.com et fournit différentes tensions.
Bobines dans les moteurs
Nous avons fabriqué des modèles Solidworks pour tenir le moteur, saisir la bobine et guider la bobine le long de l'étagère. Nous avions obtenu nos bobines sur ebay et les avions coupées à la dimension. Nous avons également dû plier 3 d'entre eux car nous n'en avons pas eu 6 avec les extrémités droites pour se connecter au support de bobine. Nous les avons ensuite imprimés en 3D et attachés à la bobine et au moteur. Les moteurs pas à pas que nous avions, nous les avons mis dans un support. Il tiendrait le moteur et guiderait la bobine le long d'un chemin rectiligne.
LCD et clavier
Nous avons utilisé un clavier Arduino et un écran LCD connectés à un fil 5V sur l'adaptateur d'alimentation pour l'alimentation, puis dans la même carte Arduino
Câblage
Nous recommandons l'utilisation de fils de calibre 18. Dans notre cas, nous avons dû faire des compromis en utilisant différentes jauges car nous n'avions plus de 18 jauges
Bande LED
Nous avons utilisé une bande LED pour éclairer la machine. Nous l'avons connecté à un câble 12V sur l'adaptateur d'alimentation. Heureusement, la bande LED que nous avons utilisée avait un + et un -, ce qui facilitait le processus de connexion.
Étape 4: Accepteur de factures
Nous avons utilisé un Coinco BA30B comme accepteur de billets. Il devait être connecté directement au mur comme source d'alimentation. Nous l'avons combiné avec un adaptateur 24 broches d'une alimentation atx pour le brancher et permettre un câblage plus facile. Les brochages que nous avons suivis se trouvent dans le lien suivant:
techvalleyprojects.blogspot.com/2011/07/ard…
Dans notre cas, nous avons dû créer un support pour surélever l'accepteur de billets car sinon il serait trop bas pour notre boîtier.
Étape 5: Tester
Testez d'abord l'électronique à l'extérieur du boîtier pour vous assurer que les composants fonctionnent. Tous les problèmes qui surviennent doivent être résolus avant de les placer à l'intérieur du boîtier.
Étape 6: De l'électronique au boîtier
Une fois que vous avez testé l'électronique et que vous êtes satisfait de leurs résultats, commencez à les placer dans votre boîtier. Ajustez la longueur des fils pour qu'ils s'adaptent confortablement à l'intérieur.
Étape 7: Tests finaux
Une fois placé dans le boîtier, testez à nouveau le tout. Si tout fonctionne comme prévu, félicitations ! Vous avez fabriqué un distributeur automatique.
Étape 8: Code Arduino + Liens
Téléchargements:
Code Arduino
drive.google.com/drive/folders/1oC4MhOcMFy…
Dossier SolidWorks avec fichiers pièce et assemblage
drive.google.com/drive/folders/1amZoypiWcZ…
Juste au cas où quelque chose serait arrivé au lien, voici le code arduino entièrement affiché. Code Arduino <<
#include #include #include "Arduino.h" #include #include #include "utility/Adafruit_MS_PWMServoDriver.h" #include
const int étapesParRévolution = 200; octet const ROWS = 4; //quatre lignes const byte COLS = 3; //trois colonnes char keys[ROWS][COLS] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; octet rowPins[ROWS] = {5, 6, 7, 8}; // connexion aux broches de ligne de l'octet du clavier colPins[COLS] = {2, 3, 4}; // se connecte aux brochages de colonne du clavier Keypad keyboard = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS); Adafruit_MotorShield AFMS1 = Adafruit_MotorShield(); Adafruit_StepperMotor * monMoteur1 = AFMS1.getStepper(-200, 1); Adafruit_StepperMotor * monMoteur2 = 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 * monMoteur5 = AFMS3.getStepper(-200, 1); Adafruit_StepperMotor *myMotor6 = AFMS3.getStepper(-200, 2); Adafruit_MotorShield AFMS4 = Adafruit_MotorShield (0x63); Adafruit_StepperMotor * monMoteur7 = AFMS4.getStepper(-200, 1); Adafruit_StepperMotor * monMoteur8 = AFMS4.getStepper(-200, 2); LiquidCrystal LCD (1, 11, 9, 10, 12, 13); //Broches numériques auxquelles l'écran LCD est connecté // Constantes // // broche pour la ligne de crédit (-) du validateur de factures const int billValidator = 22;
// Variables /
/ enregistrement de la durée d'impulsion (millisecondes) longue durée non signée;
// contenant le total des dollars enregistrés int dollarCounter = 0; void setup() { lcd.begin (16, 1); //définir les coordonnées du texte lcd lcd.print("Insérer $1 seulement"); //Définir le texte Serial.begin(9600); // Initialise les ports série pour la communication. Serial.println("Test pas à pas !"); // Tapez Out Stepper Test dans le moniteur série afin que nous sachions quel moteur pas à pas est enfoncé. AFMS1.begin(); AFMS2.begin(); AFMS3.begin(); AFMS4.begin(); monMoteur1->setSpeed(100); //Définir la vitesse du moteur à laquelle ils exécuteront myMotor2->setSpeed(100); myMotor3->setSpeed(100); myMotor4->setSpeed(100); myMotor5->setSpeed(100); myMotor6->setSpeed(100); myMotor7->setSpeed(100); myMotor8->setSpeed(100); // Configurations des broches pour le validateur de factures et le bouton pinMode(billValidator, INPUT); //Définit l'accepteur de facture
// Initialise les ports série pour la communication. Serial.begin(9600); Serial.println("En attente du dollar…"); } boucle vide () { { durée = pulseIn(billValidator, HIGH); //Commence à rechercher la longueur d'impulsion reçue de l'accepteur de billets si (durée > 12000) //Valeur qu'il doit dépasser pour valider en tant que dollar traité et authentique { // Compter dollar dollarCounter++; // Vérification de la compréhension Serial.print("Dollar détecté.\n Total: "); // Affiche le nouveau compte en dollars Serial.println(dollarCounter); //boucle pour attendre qu'un bouton soit enfoncé while (duration > 12000){ char key = keyboard.getKey(); // obtient le keyoad connecté et commence à voir lequel est pressé if (key != NO_KEY) { // recherchera la touche pressée Serial.println (key); //nous permet de savoir laquelle a été enfoncée dans le moniteur série } { if (key == '1') { //Si la touche 1 est enfoncée, fait ce qui suit: int keyPressed = key - '1'; myMotor8->step(580, AVANT, DOUBLE); // Démarre le moteur et tourne de 350 degrés vers l'avant. myMotor8->release(); // Libère le moteur de l'état de maintien en place. revenir; //Revient au début du code de la boucle }
if (key == '2') { //Si la touche 2 est enfoncée, fait ce qui suit: int keyPressed = key - '2'; myMotor7->step(400, AVANT, DOUBLE); // Démarre le moteur et tourne de 350 degrés vers l'avant. myMotor7->release(); // Libère le moteur de l'état de maintien en place. revenir; //Revient au début du code de boucle } if (key == '3') { //Si la touche 3 est enfoncée, fait ce qui suit: int keyPressed = key - '3'; myMotor6->step(400, AVANT, DOUBLE); // Démarre le moteur et tourne de 350 degrés vers l'avant. myMotor6->release(); // Libère le moteur de l'état de maintien en place. revenir; //Revient au début du code de boucle } if (key == '4') { //Si la touche 4 est enfoncée, fait ce qui suit: int keyPressed = key - '4'; myMotor5->step(180, FORWARD, DOUBLE); // Démarre le moteur et tourne de 350 degrés vers l'avant. myMotor5->release(); // Libère le moteur de l'état de maintien en place. revenir; //Revient au début du code de boucle } if (key == '5') { //Si la touche 5 est enfoncée, fait ce qui suit: int keyPressed = key - '5'; myMotor4->step (6900, AVANT, DOUBLE); // Démarre le moteur et tourne de 350 degrés vers l'avant. myMotor4->release(); // Libère le moteur de l'état de maintien en place. revenir; //Revient au début du code de la boucle } if (key == '6') { //Si la touche 6 est enfoncée, fait ce qui suit: int keyPressed = key - '6'; myMotor3->step(400, AVANT, DOUBLE); // Démarre le moteur et tourne de 350 degrés vers l'avant. monMoteur3->libération(); // Libère le moteur de l'état de maintien en place. revenir; //Revient au début du code de boucle } if (key == '7') { //Si la touche 7 est enfoncée, fait ce qui suit: int keyPressed = key - '7'; myMotor7->step(400, AVANT, DOUBLE); // Démarre le moteur et tourne de 350 degrés vers l'avant. myMotor7->release(); // Libère le moteur de l'état de maintien en place. revenir; //Revient au début du code de boucle } if (key == '8') { //Si la touche 8 est enfoncée, fait ce qui suit: int keyPressed = key - '8'; myMotor8->step(400, AVANT, DOUBLE); // Démarre le moteur et tourne de 350 degrés vers l'avant. myMotor8->release(); // Libère le moteur de l'état de maintien en place. revenir; //Revient au début du code de la boucle } } } } } } >>
Conseillé:
Distributeur de savon automatique utilisant Arduino : 8 étapes
Distributeur de savon automatique à l'aide d'Arduino: Distributeur de savon automatique à l'aide d'arduino: Alors, bonjour, bienvenue dans le nouvel article de cet article, nous allons fabriquer un distributeur de savon automatique à l'aide d'arduino. Ce distributeur de savon est très facile à fabriquer. En quelques étapes, vous pouvez fabriquer ce distributeur de savon automatique
Distributeur d'alcool automatique avec Arduino : 6 étapes
Distributeur d'alcool automatique avec Arduino : Ce projet arduino vous guidera sur la fabrication d'un distributeur d'alcool automatique. L'utilisateur n'a pas besoin de toucher quoi que ce soit pour obtenir de l'alcool, il suffit de s'approcher du capteur à ultrasons, l'alcool sera expulsé, puis un fichier audio sera lu pour informer l'utilisateur qu'il doit garder
Distributeur automatique de gel avec Arduino : 3 étapes
Distributeur automatique de gel avec Arduino : ce projet est basé sur des connaissances très simples et faciles, adaptées aux amateurs, basées sur des codes open source et des composants faciles à trouver pour un prix très abordable. Le but de ce projet est de garder nos mains propres des virus et d'autres germes dans un
Générateur de musique basé sur la météo (Générateur Midi basé sur ESP8266): 4 étapes (avec images)
Générateur de musique basé sur la météo (Générateur Midi basé sur ESP8266): Bonjour, aujourd'hui, je vais vous expliquer comment créer votre propre petit générateur de musique basé sur la météo. Il est basé sur un ESP8266, qui ressemble un peu à un Arduino, et il réagit à la température, à la pluie et l'intensité lumineuse. Ne vous attendez pas à ce qu'il fasse des chansons entières ou un programme d'accords
Distributeur automatique--Distributeur de bonbons-- Arduino Bluetooth contrôlé--DIY : 11 étapes (avec photos)
Distributeur automatique||Distributeur de bonbons|| Arduino Bluetooth Controlled||DIY: Dans ce instructable, je montre comment construire un distributeur automatique à l'aide d'un Arduino.FAIRE COMMENTER CE QUE VOUS PENSEZ À CE POINT D'INSTRUCTION, AFIN QUE JE PUISSE AMÉLIORER DANS MON AUTRE INSTRUCTABLEVoir le didacticiel vidéo pour une meilleure compréhension de l'ent