Memoire de Fin D'Etude: Master en Automatique Spécialité: Automatique Et Systèmes
Memoire de Fin D'Etude: Master en Automatique Spécialité: Automatique Et Systèmes
Memoire de Fin D'Etude: Master en Automatique Spécialité: Automatique Et Systèmes
Faculté de la technologie
Département génie électrique
Membres du jury :
Mr Sadji Mustapha
Mme Mezzah Samia
TABLEAU III.1. CONFIGURATION DES PINS SUR LES CARTES UNO,NANO ET MEGA ........................ 31
TABLEAU III.2 BRANCHEMENT DES DIFFERENTS MODULES SUR LES PINS DE LA CARTE ARDUINO 37
Introduction générale
Introduction générale
1. Généralités
L’électronique embarquée est de plus en plus utilisée dans notre quotidien, elle est utilisée
sur de nombreux objets comme les téléphones, les agendas électroniques et les voitures.
L’objectif de l’utilisation des systèmes embarqués est de donner aux objets usuels la possibilité
de réagir à l’environnement.
Les distributeurs automatiques de boissons sont maintenant bien connus du grand public.
Ils sont en effet présents dans de nombreux lieux publics comme par exemple dans des grandes
surfaces, aéroports, gares, parkings, écoles et entreprises etc. Ces machines délivrent
automatiquement, après payement, plusieurs variétés de produits.
3. Présentation du mémoire
1
Introduction générale
2
Chapitre I Présentation de l’entreprise DENZER Technologies
I.1. Introduction
DENZER Technologies est une jeune entreprise innovante fondé par Dr LADDI Samir en
2016, spécialisé dans le domaine du développement électronique et informatique.
L’entreprise possède deux unités, une unité de recherche et développement situé à la cité
Aouchiche, Route de Boukhiama, Bejaia, et un siège social à Akbou (Boulevard Aissat Idir,
Akbou, Bejaia).
Pour pallier à l’importation, l’entreprise s’investie sur plusieurs pistes de production, elle
accueillit d’avantage toute nouvelle idée de production substitutive aux produits importés.
3
Chapitre I Présentation de l’entreprise DENZER Technologies
Elle effectue avant tout la maintenance de ses produits et la mise en service du matériel
acheté par ses clients, elle intervient dans le cas de pannes au niveau des chaines de production
industrielle, et réalise des armoires électriques comme l’armoire « DENZER AscE4 » de
commande des ascenseurs qui est réalisé par l’équipe d’ingénieurs électroniciens et
électrotechniciens.
4
Chapitre I Présentation de l’entreprise DENZER Technologies
En industrie, elle propose aussi l’automatisation des outils et des machines qui sont
habituellement pilotés par l’humain. Et mettre en place des mécanismes de commande à
distance, de control et d’alerte, et aide à la conception des logiciels simples pour la commande,
le control et la gestion des usines.
Pour imprimer un objet en 3D, il faudra un fichier au format STL, l’équipe d’ingénieurs de
DENZER peuvent concevoir des dessins des idées et des besoins des clients pour pouvoir
l’imprimer grâce aux imprimantes 3D avec une extrême haute résolution.
5
Chapitre I Présentation de l’entreprise DENZER Technologies
6
Chapitre I Présentation de l’entreprise DENZER Technologies
7
Chapitre II Généralités sur l’Arduino
II.1. Introduction
Aujourd’hui, l'électronique câblée est de plus en plus remplacée par de l'électronique
programmée. On parle aussi de système embarqué, son but est de simplifier les schémas
électroniques et par conséquent réduire l’utilisation des composants électroniques, réduisant
ainsi le coût de fabrication d’un produit. Il en résulte des systèmes plus complexes et
performants pour un espace réduit. [3]
Un microcontrôleur est un petit ordinateur confiné dans un unique circuit intégré (une
puce). Il constitue un excellent moyen pour programmer et pour contrôler des équipements
électroniques. Il existe une grande variété de cartes à microcontrôleur, certaines des plus
utilisées sont la platine Wiring, le PIC et bien sûr Arduino, dans notre travail on s’intéresse à
l’Arduino pour sa simplicité, ses performances et sa disponibilité.
8
Chapitre II Généralités sur l’Arduino
Toutefois, une carte peut être considérée comme la pierre angulaire de toute aventure dans
le monde Arduino, il existe des différentes cartes d’Arduino on site :
9
Chapitre II Généralités sur l’Arduino
10
Chapitre II Généralités sur l’Arduino
• Type du microcontrôleur ;
• Nombre d’entrées/sorties ;
11
Chapitre II Généralités sur l’Arduino
La Méga est une carte composée de bien plus d’entrées/sorties (16 analogiques et 54
digitales pouvant fournir jusqu’à 20mA). Mais ses 70 I/O (au total) ne sont pas ses seuls
avantages, la Méga 2560 dispose de 256Kb de mémoire flash. De plus cette carte dispose de
ports série matériel (UART). Mais pour accueillir ses 70 I/O il faut de l’espace donc la carte
mesure 101mm*53mm.[8]
La Méga dispose des mêmes connecteurs USB et DC 2.5mm que la UNO, et les Shields
(extensions venant s’ajouter au-dessus de votre carte) compatibles avec la UNO sont
compatibles avec la Méga.
12
Chapitre II Généralités sur l’Arduino
13
Chapitre II Généralités sur l’Arduino
• La mémoire Flash : C'est celle qui contiendra le programme à exécuter. Cette mémoire
est effaçable et réinscriptible mémoire programme de 256 KB.
• RAM : c'est la mémoire dite "vive", elle va contenir les variables du programme. Elle est
dite "volatile" car elle s'efface si on coupe l'alimentation du microcontrôleur.
• La mémoire cache : c'est une mémoire qui fait la liaison entre les registres et la RAM.
14
Chapitre II Généralités sur l’Arduino
GND est la référence de la carte Arduino par rapport à laquelle toutes les différences de
tension sont mesurées. Si la carte est reliée à l’ordinateur par un câble USB, cette tension est
celle de la terre.
Les ports 5V et 3V3 donnent accès aux tensions de 5 V et de 3.3 V. Ces tensions sont
normalement régulées et précises. Une exception : quand la carte est branchée sur un port USB
sans alimentation externe, le port 5 V ne provient plus de la carte Arduino mais directement du
câble USB, la tension de référence 5 V n’est alors plus aussi bien régulée.
15
Chapitre II Généralités sur l’Arduino
Une BARRE DE MENUS : comme pour tout logiciel une interface graphique (GUI),
Une BARRE DE BOUTONS : qui donne un accès direct aux fonctions essentielles du
logiciel et fait toute sa simplicité d'utilisation,
Une ZONE DE MESSAGES : qui affiche indique l'état des actions en cours,
16
Chapitre II Généralités sur l’Arduino
Un TERMINAL SERIE (fenêtre séparée) qui permet d'afficher des messages textes reçus
de la carte Arduino et d'envoyer des caractères vers la carte Arduino. Cette fonctionnalité
permet une mise au point facilitée des programmes, permettant d'afficher sur l'ordinateur l'état
de variables, de résultats de calculs ou de conversions analogique-numérique : un élément
essentiel pour améliorer, tester et corriger ses programmes.
Le code écrit avec le logiciel Arduino est appelé un programme (ou une séquence - sketch
en anglais) :
Ces programmes sont écrits dans l'éditeur de texte. Celui-ci a les fonctionnalités usuelles
de copier/coller et de rechercher/remplacer le texte.
La zone de messages donne l'état de l'opération en cours lors des sauvegardes, des
exportations et affiche également les erreurs.
La console texte affiche les messages produits par le logiciel Arduino incluant des
messages d'erreur détaillés et autres informations utiles.
17
Chapitre II Généralités sur l’Arduino
La barre des menus vous permet d'accéder à toutes les fonctionnalités du logiciel Arduino.
[6]
On suppose ici qu'un programme correctement écrit se trouve dans la fenêtre éditeur. Pour
votre première programmation de la carte, aller dans le menu File>Examples>Digital>Blink :
un programme s'ouvre avec du code dans la fenêtre éditeur.
On appuye alors sur le bouton Verify de la barre d'outils pour lancer la vérification du
code.
Si tout va bien, aucun message d'erreur ne doit apparaître dans la console et la zone de
message doit afficher Done Compiling attestant que la vérification s'est bien déroulée.
Avant de transférer votre programme vers la carte Arduino, il faut vérifier que la bonne
carte Arduino est bien sélectionné depuis le menu Tools>Board (Outils>Carte). Les cartes sont
décrites ci-dessous. Votre carte doit évidemment être connectée à l'ordinateur via un câble USB.
18
Chapitre II Généralités sur l’Arduino
On sélectionne le bon port série depuis le menu Tools > Serial Port (Outils > Port Série) :
Sous Windows, c'est probablement COM1 ou COM2 (pour une carte série) ou COM4,
COM5, COM7 ou supérieur (pour une carte USB) - pour trouver le bon, on cherche dans la
rubrique des ports série USB dans la section des ports du panneau de configuration ou du
gestionnaire de périphériques.
Une fois que vous avez sélectionné le bon port série et la bonne carte Arduino, on clique
sur le bouton UPLOAD (Transfert vers la carte) dans la barre d'outils, ou bien on sélectionne
le menu File>Upload to I/O board (Fichier > Transférer vers la carte). Avec les versions
récentes (Duemilanove notamment), la carte Arduino va alors automatiquement se réinitialiser
et démarrer le transfert. Avec les versions précédentes qui ne sont pas équipées de l'auto-
réinitialisation, on appuye sur le bouton "reset" de la carte juste avant de démarrer le transfert.
Une fois le transfert terminé, le logiciel Arduino doit afficher un message indiquant que le
transfert est bien réalisé, ou montrer des messages d'erreurs.
19
Chapitre II Généralités sur l’Arduino
II.6.1. Servomoteur
Le servomoteur est un moteur capable de maintenir une opposition à un effort statique et
dont la position est vérifiée en continu et corrigée en fonction de la mesure, il est capable
d'attendre des positions prédéterminées dans les instructions qui lui on était donné, puis de les
maintenir. Le servomoteur a l’avantage d’être asservi en position angulaire, cela signifie que
l’axe de sortie du servomoteur respectera la consigne d’instruction que vous envoyée a l’entrée.
20
Chapitre II Généralités sur l’Arduino
21
Chapitre II Généralités sur l’Arduino
Ce module RTC est capable de gérer l'heure (heures, minutes, secondes) et la date (jours,
mois, année) tout en s'occupant des mois de 30 ou 31 jours, des années bissextiles, etc. Le
calendrier intégré dans le module DS1307 est valable de l'an 2000 à l'an 2100, ce qui devrait
être suffisant pour la plupart des projets.
22
Chapitre II Généralités sur l’Arduino
II.7. Conclusion
Dans ce chapitre, on a donné un aperçu général sur la carte Arduino puis on a illustré les
différents types de des cartes, donnant ainsi les raisons pour lesquelles on a choisi la carte
Arduino-méga. Ensuite, nous avons expliqué les deux parties essentielles de l’Arduino, (la
partie matérielle et la partie de programmation), à la fin on a présenté quelques modules qui
peuvent être associés à la carte.
23
Chapitre III Etude théorique
III.1. Introduction
Dans ce chapitre, on présentera de manière sommaire une vue d'ensemble du dispositif
expérimental « réalisation d’un distributeur de boissons à base d’Arduino ».
Après avoir donné dans le chapitre précédent une description théorique sur le module
Arduino et son environnement de développement, on va procéder à l’application expérimentale,
pour cette raison, plusieurs blocs ont été nécessaires afin de réaliser une telle combinaison.
Nous allons commencer par le cahier de charge associé à notre projet, ensuite on teste les
différents modules utilisés et à la fin on combine tout.
La première partie qui est subdivisée en 4 étages, chaque étage contient un panier subdivisé
en 9 couloirs, chaque couloir est inséré une bobine attachée sur son bout antérieur à un moteur
pas-à-pas. Et c’est à l’intérieur de cette bobine qu’on insère nos produits, devant chaque couloir
est collée une étiquette portant le prix et le code du produit.
Au-dessous de la première partie il est réservé un compartiment dans lequel les produits
tombent afin qu’ils soient récupérés par le client via une petite fenêtre.
24
Chapitre III Etude théorique
• Un afficheur LCD 16*2 pour l’affichage des directives et des différentes informations.
• Un clavier 4*3 pour l’insertion des codes des produits.
• Un lecteur de badge RFID compatible Arduino qui lit les cartes insérées et transmet le
code à l’Arduino.
• Cinqs moteurs pas-a-pas piloté par des drivers 8825.
25
Chapitre III Etude théorique
L'afficheur LCD est en particulier une interface visuelle entre un système (projet) et
l'homme (utilisateur). Son rôle est de transmettre les informations utiles d'un système à un
utilisateur. Il affichera donc des données susceptibles d'être exploiter par l'utilisateur d'un
système.
On connecte d’abord les 16 broches de l’afficheur LCD aux 16 broches du module LCM
1602 IIC qui permet d’économiser les broches sur la carte Arduino.
GND → GND
VCC → 5V
SDA → SDA
SCL → SCL
Pour pouvoir utiliser l’afficheur LCD, la bibliothèque LiquidCrystal_I2C doit être ajouter,
ouvrez l’IDE Arduino et aller dans Croquis → Inclure une bibliothèque →LiquidCrystal.
26
Chapitre III Etude théorique
27
Chapitre III Etude théorique
Pour que l’Arduino détermine quel bouton est enfoncé, il doit d’abord tirer sur chacun des
boutons, trois colonnes (broches 1 à 3), l'une basse ou l'autre haute, l'une après l'autre, puis
interrogez les états des quatre lignes (broches 4 à 7).[9]
28
Chapitre III Etude théorique
On raccorde les connexions L1, L2, L3, L4, C1, C2 et C3 aux pins 8 jusqu’à 2
respectivement de l’Arduino.
29
Chapitre III Etude théorique
30
Chapitre III Etude théorique
Le module RC522 a au total de 8 broches qui l’interfèrent avec le monde extérieur. Les
connexions sont les suivantes :
VCC : Fournit l'alimentation au module, cela peut être n'importe où de 2,5 à 3,3 volts.
Vous pouvez le connecter à la sortie 3.3V de votre Arduino.
GND : Est la broche de terre et doit être connecté à la broche GND de l’Arduino.
IRG : Est une broche d’interruption pouvant alerter l’Arduino lorsque l’étiquette RFID se
trouve à proximité.
MOSI : (Master Out Slave In) est l'entrée d’Arduino du module RC522.
Le branchement des broches MOSI, MISO, SCK et CS change d’une carte a une autre,
Tableau III.1. Configuration des pins sur les cartes Uno,Nano et méga
MISO → pin 50
MOSI → pin 51
SCK → pin 52
CS → pin 53
3.3V → 3.3V
GND → GND
RST → pin 10
31
Chapitre III Etude théorique
Après avoir ajouté les deux bibliothèques SPI et MFRC522, on téléverse le programme
suivant et on ouvre le moniteur série qui affichera l’ID du badge.
32
Chapitre III Etude théorique
Les moteurs pas à pas présentent de nombreux avantages. Ils sont peu coûteux et faciles à
utiliser. Lorsqu'il n'y a pas de courant envoyé au moteur, les steppers tiennent leur position. Les
moteurs pas à pas peuvent également tourner sans limites et changer de direction en fonction
de la polarité fournie.
33
Chapitre III Etude théorique
Afin d'utiliser un moteur pas à pas il est nécessaire d'utiliser un "driver de moteur pas à
pas". Ces drivers permettent de transmettre la puissance électrique au moteur afin de le faire
tourner.
Généralement les drivers de moteurs pas à pas permettent de commander les moteurs en
fractions de pas complet. En mode demi pas, le moteur devra alors faire 400 demis pas pour
faire un tour complet soit 0.9° par demi pas. Certains drivers permettent de faire du 16ème de
pas et même du 128ème de pas, dans notre projet on a utilisé les drivers 8825.
Le drv8825 sont des petits modules qui permettent de contrôler la rotation d'un moteur en
fonction des instructions reçues de la carte de pilotage. Ils sont connectés à cette dernière, soit
directement, soit par l'intermédiaire d'une interface.
La puce comporte plusieurs fonctions de sécurité intégrées telles que la protection contre
les court-circuits et la protection contre la surchauffe.
M0, M1, M2 : Ces broches permettent de choisir une résolution de micro-stepping parmi
les 6 disponibles (pas complet, demi pas, 1/4 pas, 1/8 pas, 1/16 pas et 1/32 pas).
VMot : Tension d'alimentation pour les moteurs pas à pas. Tension entre 8.2 et 45v.
34
Chapitre III Etude théorique
Figure III.14. Schéma de câblage du pilote DRV8825 avec moteur pas à pas et Arduino.
Les deux bobines du moteur pas à pas sont connectées à A1, A2 et B1, B2.
La broche GND (en bas à droite) est connectée à la broche de terre de l’Arduino.
Les broches STP (step) et DIR (direction) sont connectées aux broches numériques 3 et 2
respectivement.
Vous devez connecter RST (réinitialisation) et SLP (veille) à 5V, sinon le pilote ne s'allume
pas.
La broche EN (activée) peut être laissée déconnectée, elle est tirée vers le bas par défaut.
(Lorsque cette broche est élevée, le pilote est désactivé).
35
Chapitre III Etude théorique
Le code suivant peut-être utiliser pour faire fonctionner un ou plusieurs moteurs pas à pas
en continu à une vitesse constante. (Aucune accélération ou décélération n'est utilisée).
Figure III.15. Le code associé pour faire fonctionner un moteur pas à pas à une vitesse
constante
La première étape consiste à définir les broches de pas et de direction, comme avant.
Ensuite, on a créé un objet stepper avec le type d’interface moteur et les broches de pas et de
direction appropriée. Comme nous utilisons un pilote, nous avons défini le type d'interface
moteur sur 1.
Dans ce cas, on a appelé le moteur pas à pas « stepper », mais on peut également utiliser
d’autres noms. AccelStepper liftmotor (1, stepPin, dirPin). On peut créer plusieurs objets de
moteur pas à pas avec des noms, des broches de pas et de direction différente. Cela permet de
contrôler facilement 2 moteurs pas à pas ou plus en même temps.
Dans la section setup () du code, nous définissons la vitesse maximale du moteur pas à pas
en pas / seconde.
Dans la section void loop (), nous définissons d'abord la vitesse à laquelle le moteur doit
tourner, puis nous laissons le moteur tourner.[11]
36
Chapitre III Etude théorique
Dans le tableau suivant on représentera le branchement des différentes broches des modules
sur les pins de l’Arduino.
Moteur 1 DIR 32
STEP 33
Moteur 2 DIR 34
STEP 35
Moteur 3 DIR 36
STEP 37
Moteur 4 DIR 38
STEP 39
Moteur 5 DIR 40
STEP 41
Tableau III.2 Branchement des différents modules sur les pins de la carte Arduino
37
Chapitre III Etude théorique
38
Chapitre III Etude théorique
III.6. Algorithme
Affiche
« Bienvenue veuillez insérer votre carte SVP »
Vérification
de la carte
Oui
Afficher
« Bienvenue » suivi du nom du client
« Votre solde est de : » suivi du solde du client
Afficher
« Veuillez choisir un produit »
Non
Afficher
Vérification
du code « Code incorrect tapez le code à nouveau »
Oui
Non
Vérification Afficher
du solde
« Votre solde est insuffisant recharger votre carte »
Oui
39
Chapitre III Etude théorique
III.7. Le programme
Après avoir terminé le câblage on passera à la programmation, le programme principal est
présenté dans la section sous dessous.
Ce programme comprend :
Ensuite on déclare les variables et les constantes utilisés ; la constante « montant » qui
représente le prix des produits, la constante « code » qui représente les codes associés aux
produits, la constante « NombreDeClient » qui représente le nombre de client, « nom » le nom
du client, « solde » c’est le crédit du client.
40
Chapitre III Etude théorique
Dans cette partie du programme, on déclare les constantes des broches utilisées, les
constantes et variables globales utiles et les objets pour chaque module utilisé.
41
Chapitre III Etude théorique
Dans la section setup () du code, toutes les broches de commande du moteur sont déclarées
comme OUTPUT, puis on initialise l'afficheur LCD alpha-numérique et le bus du lecteur RFID.
Une fois la carte est insérée, cette partie du programme consiste a identifié la présence de
la carte la lire et sauvegarde l’adresse ID de la carte dans une variable appelée « content », puis
il compare si l’adresse existe déjà, si oui la carte sera identifiée.
42
Chapitre III Etude théorique
Une fois la carte a été identifiée, on affiche avec l’afficheur « Bienvenue » suivi du nom
du client identifié, « votre solde est de : » le solde du client, « veuillez choisir le produit ».
43
Chapitre III Etude théorique
Dans ce qui suit, Arduino fait une comparaison entre le code saisi et les codes existant, s’il
existe déjà il compare une autre fois si le montant du produit et inférieur au solde et fait
soustraire le montant du produit dans le solde du client et faire tourner le moteur de 400 pas, et
affiche « en cours ……… » et « Bonne consommation ». Si le solde est inférieur au montant
l’afficheur affiche « votre solde est insuffisant recharger votre carte », et c’est la même syntaxe
pour les 5 moteurs.
44
Chapitre III Etude théorique
III.8. Conclusion
Au cours de ce chapitre nous avons essayé de faire une étude théorique sur le travail
réaliser.
45
Chapitre IV Réalisation pratique
IV.1. Introduction
Dans ce chapitre, on présentera le dispositif expérimental « réalisation d’un distributeur de
boissons ».
Après avoir donné dans les chapitres précédents une description théorique sur la carte
Arduino, l’afficheur LCD, clavier, lecteur RFID et les moteurs pas à pas, le branchement de
chacun, le schéma de câblage global et le programme.
Il se compose principalement :
Caractéristiques:
- Microcontroller : ATmega2560
- Operating Voltage : 5V
- Input Voltage (recommended) : 7-12V
- Input Voltage (limits) : 6-20V
- Digital I/O Pins : 54
- Analog Input Pins : 16
- DC Current per I/O Pin : 40 mA
- DC Current for 3.3V Pin : 50 mA
- Flash Memory : 256 KB
46
Chapitre IV Réalisation pratique
- EEPROM : 4 KB
- Clock Speed : 16 MHz [12]
Caractéristiques :
47
Chapitre IV Réalisation pratique
Caractéristiques :
Ce moteur pas à pas est un moteur à quatre fils : Rouge, Bleu, Vert, Noir.
Il y a 4 demi-bobines, câblées en parallèles 2 à 2 pour former au final 2 bobines : 2 fils par
bobines, les fils "rouge" et "bleu" étant les extrémités d'une bobine, les fils "noir" et "vert" les
extrémités de l'autre bobine. Utiliser pour faire tourner les bobines.
Caractéristiques :
48
Chapitre IV Réalisation pratique
- Couple :5kg.cm
- Angle par pas (dégrées) :1.8 [13]
Le Drv8825 est capable de fournir jusqu'à 2,5 A et peut être contrôlé avec une simple
interface étape / direction, le dispositif dispose d’une protection contre la surcharge et les courts
circuits.
Caractéristiques :
49
Chapitre IV Réalisation pratique
Un clavier 4*3
Ce clavier a 12 boutons, disposés dans une grille téléphonique 3x4, les clés sont connectées
à une matrice, donc on a besoin que de 7 broches du microcontrôleur (3 colonnes et 4 lignes)
pour numériser à travers le clavier. Utiliser pour saisir le code des produits.
50
Chapitre IV Réalisation pratique
Breadboard
Une platine d’expérimentation ou platine de prototypage en anglais breadboard, est un
dispositif qui permet de réaliser le prototype d’un circuit électronique et de le tester L'avantage
de ce système est d'être totalement réutilisable, car il ne nécessite pas de soudure, on peut de
plus câbler sur une platine d'expérimentation une grande variété de composants afin de réaliser
des circuits électroniques.
On l’utilise pour fixer les drivers 8825, l’alimenter et pour faire leurs câblages.
51
Chapitre IV Réalisation pratique
Maintenant, on connecte les broches des composants suivant la Figure III.16 du chapitre
précédent, puis on compile le programme principal présenté aussi dans le Chapitre III sur
Arduino IDE, et on téléverse le programme vers la carte pour l’exécution via le câble USB.
On insère un badge connu par l’Arduino, puis l’afficheur affiche « Bienvenue » suivi du
nom du client identifié et affiche aussi son solde, puis affiche une autre fois le message suivant :
« Veuillez choisir un produit ».
52
Chapitre IV Réalisation pratique
Pour choisir le produit, on doit saisir le code associé au produit via le clavier si le code est
correct, le moteur associé au produit choisi, tourne et fait tomber le produit pour que le client
puisse le récupérer et affiche « Bonne consommation ».
Par contre si le code est incorrect l’afficheur affiche « code incorrect taper le code à
nouveau ».
Et si le solde du client est inférieur au prix du montant l’afficheur affiche « Votre solde est
insuffisant recharger votre solde ».
Figure IV.15 Affichage du message « Votre solde est insuffisant recharger votre carte »
53
Chapitre IV Réalisation pratique
IV.5. Conclusion
Dans ce chapitre on a réussi à réaliser un distributeur de boissons à l’aide de la carte
Arduino Méga.
Et enfin la mise en marche du distributeur, aux essais et aux tests des différents cas.
54
Introduction générale
Conclusion générale
Notre projet comporte un travail théorique accompagné d'une réalisation, son objectif
consiste sur l’étude et la réalisation d’un distributeur de boissons. Nous avons utilisé des
alimentations, un afficheur LCD, un clavier, un lecteur RFID et des stepper moteurs.
L'ensemble des modules utilisés sont commandés par la carte Arduino programmable. Pour
notre cas ; on a utilisé la carte Arduino Méga 2560 dont ses caractéristiques particulières nous
ont facilité les taches surtout en ce qui concerne sa programmation.
Notre projet a été fait en deux parties : La première partie est l’étude théorique là où on a
testé tous les modules utilisés et fait une étude approfondie sur le branchement des modules et
leurs programmations, un schéma global de branchement et le programme principal. La
deuxième partie est la réalisation du produit, cette partie est consacrée au montage des modules
et des composants et à la mise en marche.
Suite au manque du matériels sur le marché et plus exactement les moteurs pas à pas
nema17, on a utilisé que cinq moteurs. Donc le distributeur a toujours besoin d’amélioration et
développement.
58
Liste des acronymes et abréviations
3D Trois dimensions
IDE Integrated Development Environment
USB Universal Serial Bus
UART Universal Asynchronous Reiciving Transmiting
I/O Input/Output
DC Direct Current
ICSP In Circuit Serial Programming
CMOS Complimentary Métal Oxyde Semiconductor
RISC Reduced Instruction Set Computer
MIPS Million d’Instruction Par Seconde
EEPROM Electrically Erasible Programmable Read-Only Memory
RESET Réinitialiser
AREF Alimentation de Reference
GND Ground
LCD Liquid Crystal Display
RTC Real Time Clock
RFID Radio Frequency Identification
SS Slave Select
SCL Serial Clock Line
MISO Master In Slave Out
MOSI Master Out Slave In
SCK Serial Clock
CS Serial Clock Line
RST Réinitialiser
SDA Serial Data
DIR Data Terminal Ready
DRV Driver
PWM Pulse Width Modulation (en français modulation par large
impulsions)
RAM Random Access Memory
Références bibliographiques
[3] LAOUAR BACHIR AYACHI AMOR Hamza. Etude et Réalisation d’une Commande
Domotique par ARDUINO Via Infrarouge. Master. Electrotechnique Industrielle.
UNIVERSITE KASDI MERBAH OUARGLA.2017.
[7] https://www.carnetdumaker.net/articles/mesurer-une-temperature-avec-un-capteur-lm35-
et-une-carte-arduino-genuino/ .Consulté en mai 2019.
[6] http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?
n=Main.DebuterPresentationLogiciel. Consulté en mars 2019.
[5] https://www.robot-maker.com/ouvrages/tuto-arduino/choisir-carte-arduino-adaptee/.
Consulté en mars 2019.
[9] https://www.parallax.com/sites/default/files/downloads/27899-4x4-Matrix-
Technique Parameter
Item Specification
Technique Specification
Microcontroller ATmega2560
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limits) 6-20V
Digital I/O Pins 54 (of which 14 provide PWM output)
Analog Input Pins 16
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 256 KB of which 8 KB used by bootloader
SRAM 8 KB
EEPROM 4 KB
Clock Speed 16 MHz
The Arduino Mega2560 can be powered via the USB connection or with an external power supply. The power source is
selected automatically. External (non-USB) power can come either from an AC-to-DC adapter (wall-wart) or battery. The
adapter can be connected by plugging a 2.1mm center-positive plug into the board's power jack. Leads from a battery
can be inserted in the Gnd and Vin pin headers of the POWER connector.
The board can operate on an external supply of 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may
supply less than five volts and the board may be unstable. If using more than 12V, the voltage regulator may overheat
and damage the board. The recommended range is 7 to 12 volts.
The Mega2560 differs from all preceding boards in that it does not use the FTDI USB-to-serial driver chip. Instead, it
features the Atmega8U2 programmed as a USB-to-serial converter.
• VIN. The input voltage to the Arduino board when it's using an external power source (as opposed to 5 volts
from the USB connection or other regulated power source). You can supply voltage through this pin, or, if
supplying voltage via the power jack, access it through this pin.
• 5V. The regulated power supply used to power the microcontroller and other components on the board. This
can come either from VIN via an on-board regulator, or be supplied by USB or another regulated 5V supply.
• 3V3. A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50 mA.
• GND. Ground pins.
The ATmega2560 has 256 KB of flash memory for storing code (of which 8 KB is used for the bootloader), 8 KB of
SRAM and 4 KB of EEPROM (which can be read and written with the EEPROM library).
Each of the 54 digital pins on the Mega can be used as an input or output, using pinMode(), digitalWrite(), and
digitalRead() functions. They operate at 5 volts. Each pin can provide or receive a maximum of 40 mA and has an
internal pull-up resistor (disconnected by default) of 20-50 kOhms. In addition, some pins have specialized functions:
• Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and
14 (TX). Used to receive (RX) and transmit (TX) TTL serial data. Pins 0 and 1 are also connected to the
corresponding pins of the ATmega8U2 USB-to-TTL Serial chip .
• External Interrupts: 2 (interrupt 0), 3 (interrupt 1), 18 (interrupt 5), 19 (interrupt 4), 20 (interrupt 3), and 21
(interrupt 2). These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a
change in value. See the attachInterrupt() function for details.
• PWM: 0 to 13. Provide 8-bit PWM output with the analogWrite() function.
• SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). These pins support SPI communication, which, although
provided by the underlying hardware, is not currently included in the Arduino language. The SPI pins are also
broken out on the ICSP header, which is physically compatible with the Duemilanove and Diecimila.
• LED: 13. There is a built-in LED connected to digital pin 13. When the pin is HIGH value, the LED is on, when
the pin is LOW, it's off.
• I2C: 20 (SDA) and 21 (SCL). Support I2C (TWI) communication using the Wire library (documentation on the
Wiring website). Note that these pins are not in the same location as the I2C pins on the Duemilanove.
The Mega2560 has 16 analog inputs, each of which provide 10 bits of resolution (i.e. 1024 different values). By default
they measure from ground to 5 volts, though is it possible to change the upper end of their range using the AREF pin and
analogReference() function.
• AREF. Reference voltage for the analog inputs. Used with analogReference().
• Reset. Bring this line LOW to reset the microcontroller. Typically used to add a reset button to shields which
block the one on the board.
The Arduino Mega2560 has a number of facilities for communicating with a computer, another Arduino, or
other microcontrollers. The ATmega2560 provides four hardware UARTs for TTL (5V) serial communication.
An ATmega8U2 on the board channels one of these over USB and provides a virtual com port to software on
the computer (Windows machines will need a .inf file, but OSX and Linux machines will recognize the board
as a COM port automatically. The Arduino software includes a serial monitor which allows simple textual
data to be sent to and from the board. The RX and TX LEDs on the board will flash when data is being
transmitted via the ATmega8U2 chip and USB connection to the computer (but not for serial communication
on pins 0 and 1).
A SoftwareSerial library allows for serial communication on any of the Mega's digital pins.
The ATmega2560 also supports I2C (TWI) and SPI communication. The Arduino software includes a Wire
library to simplify use of the I2C bus; see the documentation on the Wiring website for details. To use the SPI
communication, please see the ATmega2560 datasheet.
The Arduino Mega2560 can be programmed with the Arduino software (download). For details, see the
reference and tutorials.
The Atmega2560 on the Arduino Mega comes preburned with a bootloader that allows you to upload new
code to it without the use of an external hardware programmer. It communicates using the original STK500
protocol (reference, C header files).
You can also bypass the bootloader and program the microcontroller through the ICSP (In-Circuit Serial
Programming) header; see these instructions for details.
Rather then requiring a physical press of the reset button before an upload, the Arduino Mega2560 is
designed in a way that allows it to be reset by software running on a connected computer. One of the
hardware flow control lines (DTR) of the ATmega8U2 is connected to the reset line of the ATmega2560 via a
100 nanofarad capacitor. When this line is asserted (taken low), the reset line drops long enough to reset the
chip. The Arduino software uses this capability to allow you to upload code by simply pressing the upload
button in the Arduino environment. This means that the bootloader can have a shorter timeout, as the
lowering of DTR can be well-coordinated with the start of the upload.
This setup has other implications. When the Mega2560 is connected to either a computer running Mac OS X
or Linux, it resets each time a connection is made to it from software (via USB). For the following half-second
or so, the bootloader is running on the Mega2560. While it is programmed to ignore malformed data (i.e.
anything besides an upload of new code), it will intercept the first few bytes of data sent to the board after a
connection is opened. If a sketch running on the board receives one-time configuration or other data when it
first starts, make sure that the software with which it communicates waits a second after opening the
connection and before sending this data.
The Mega contains a trace that can be cut to disable the auto-reset. The pads on either side of the trace can
be soldered together to re-enable it. It's labeled "RESET-EN". You may also be able to disable the auto-reset
by connecting a 110 ohm resistor from 5V to the reset line; see this forum thread for details.
The Arduino Mega has a resettable polyfuse that protects your computer's USB ports from shorts and
overcurrent. Although most computers provide their own internal protection, the fuse provides an extra layer
of protection. If more than 500 mA is applied to the USB port, the fuse will automatically break the connection
until the short or overload is removed.
The maximum length and width of the Mega PCB are 4 and 2.1 inches respectively, with the USB connector
and power jack extending beyond the former dimension. Three screw holes allow the board to be attached to
a surface or case. Note that the distance between digital pins 7 and 8 is 160 mil (0.16"), not an even multiple
of the 100 mil spacing of the other pins.
The Mega is designed to be compatible with most shields designed for the Diecimila or Duemilanove. Digital
pins 0 to 13 (and the adjacent AREF and GND pins), analog inputs 0 to 5, the power header, and ICSP
header are all in equivalent locations. Further the main UART (serial port) is located on the same pins (0 and
1), as are external interrupts 0 and 1 (pins 2 and 3 respectively). SPI is available through the ICSP header on
both the Mega and Duemilanove / Diecimila. Please note that I2C is not located on the same pins on the
Mega (20 and 21) as the Duemilanove / Diecimila (analog inputs 4 and 5).
Arduino can sense the environment by receiving input from a variety of sensors and can affect its
surroundings by controlling lights, motors, and other actuators. The microcontroller on the board is
programmed using the Arduino programming language (based on Wiring) and the Arduino
development environment (based on Processing). Arduino projects can be stand-alone or they can
communicate with software on running on a computer (e.g. Flash, Processing, MaxMSP).
Arduino is a cross-platoform program. You’ll have to follow different instructions for your personal
OS. Check on the Arduino site for the latest instructions. http://arduino.cc/en/Guide/HomePage
Once you have downloaded/unzipped the arduino IDE, you can Plug the Arduino to your PC via USB cable.
File>Sketchbook>
Arduino-0017>Examples>
Digital>Blink
1.1 The producer warrants that its products will conform to the Specifications. This warranty lasts for one (1) years from the date of the sale. The
producer shall not be liable for any defects that are caused by neglect, misuse or mistreatment by the Customer, including improper installation or testing,
or for any products that have been altered or modified in any way by a Customer. Moreover, The producer shall not be liable for any defects that result from
Customer's design, specifications or instructions for such products. Testing and other quality control techniques are used to the extent the producer deems
necessary.
1.2 If any products fail to conform to the warranty set forth above, the producer's sole liability shall be to replace such products. The producer's liability
shall be limited to products that are determined by the producer not to conform to such warranty. If the producer elects to replace such products, the
producer shall have a reasonable time to replacements. Replaced products shall be warranted for a new full warranty period.
1.3 EXCEPT AS SET FORTH ABOVE, PRODUCTS ARE PROVIDED "AS IS" AND "WITH ALL FAULTS." THE PRODUCER DISCLAIMS ALL OTHER
WARRANTIES, EXPRESS OR IMPLIED, REGARDING PRODUCTS, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
1.4 Customer agrees that prior to using any systems that include the producer products, Customer will test such systems and the functionality of the
products as used in such systems. The producer may provide technical, applications or design advice, quality characterization, reliability data or other
services. Customer acknowledges and agrees that providing these services shall not expand or otherwise alter the producer's warranties, as set forth
above, and no additional obligations or liabilities shall arise from the producer providing such services.
1.5 The Arduino products are not authorized for use in safety-critical applications where a failure of the product would reasonably be expected to cause
severe personal injury or death. Safety-Critical Applications include, without limitation, life support devices and systems, equipment or systems for the
operation of nuclear facilities and weapons systems. Arduino products are neither designed nor intended for use in military or aerospace applications or
environments and for automotive applications or environment. Customer acknowledges and agrees that any such use of Arduino products which is solely
at the Customer's risk, and that Customer is solely responsible for compliance with all legal and regulatory requirements in connection with such use.
1.6 Customer acknowledges and agrees that it is solely responsible for compliance with all legal, regulatory and safety-related requirements concerning its
products and any use of Arduino products in Customer's applications, notwithstanding any applications-related information or support that may be
provided by the producer.
2. Indemnification
The Customer acknowledges and agrees to defend, indemnify and hold harmless the producer from and against any and all third-party losses, damages,
liabilities and expenses it incurs to the extent directly caused by: (i) an actual breach by a Customer of the representation and warranties made under this
terms and conditions or (ii) the gross negligence or willful misconduct by the Customer.
In no event the producer shall be liable to the Customer or any third parties for any special, collateral, indirect, punitive, incidental, consequential or
exemplary damages in connection with or arising out of the products provided hereunder, regardless of whether the producer has been advised of the
possibility of such damages. This section will survive the termination of the warranty period.
4. Changes to specifications
The producer may make changes to specifications and product descriptions at any time, without notice. The Customer must not rely on the absence or
characteristics of any features or instructions marked "reserved" or "undefined." The producer reserves these for future definition and shall have no
responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The product information on the Web Site or Materials is
subject to change without notice. Do not finalize a design with this information.
الجزء الثاني، بدأنا بدراسة عامة حول وحدة االردوينو باإلضافة إلى البرمجة مع واجهة البرمجة الخاصة به،في الجزء األول من عملنا
الجزء األخير مكرس، مخطط األسالك وكذلك البرنامج، مع تحديد مبدأ العملية،مكرس للدراسة النظرية للوحدات النمطية المختلفة المستخدمة
.لتحقيق العملي واالختبارات النهائية
ويضيف أيضًا وحدات مثل قارئ بطاقة لتخزين، حيث يضيف العديد من محركات،موزعنا هو منتج يحتاج إلى تحسين في المستقبل
.المعلومات من أجل التعديل السهل
أتاح لنا تطوير هذا العمل في إطار مشروع نهاية الدراسة تعميق معرفتنا النظرية المكتسبة خالل التدريب لدينا واكتساب خبرة جيدة على
.مستوى اإلدراك العملي
Abstract
The aim of this project is to create an Arduino-based drinks vending machine with a magnetic credit card
payment system.
In the first part of our work, we started with a general study on the Arduino module as well as programming
with IDE programming interface, the second part is devoted to the theoretical study of the different modules used,
define the principle of operation, wiring diagram as well as the program, the last part is dedicated to the practical
realization and the final tests.
Our distributor is a product that needs improvement in the future, adding several stepper motors, also add
modules such as an SD card reader to store information for easy modification.
The development of this work within the framework of the end-of-study project, allowed us to deepen our
theoretical knowledge acquired during our training and to acquire a good experience at the level of the practical
realization.
Résumé
Ce projet a pour but de réaliser un distributeur de boissons à base d’une carte Arduino avec un système de
payement avec carte de crédit magnétique.
Dans la première partie de notre travail, nous avons commencé par une étude générale sur le module Arduino
ainsi que la programmation avec l’interface de programmation IDE, la deuxième partie est consacré à l’étude
théorique des différents modules utilisés, définir le principe de fonctionnement, schéma de câblage ainsi que le
programme, la dernière partie est dédié à la réalisation pratique et aux tests finals.
Notre distributeur est un produit qui a besoin d’amélioration dans le futur, en ajoutant plusieurs moteurs pas
à pas, ajouter aussi des modules tels qu’un lecteur de carte SD pour stocker les informations afin de les modifier
facilement.
L’élaboration de ce travail dans le cadre du projet de fin d’étude, nous a permis d’approfondir nos
connaissances théoriques acquises durant notre formation et d’acquérir une bonne expérience au niveau de la
réalisation pratique.