Arduino et Informatique Industrielle
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Généralités
Ce cours à pour but de présenter et d’initier à l’utilisation d’Arduino. Les cartes Arduino sont conçues pour réaliser des
prototypes et des maquettes de cartes électroniques pour les systèmes embarqués.
Ces cartes permettent un accès simple et peu couteux aux systèmes embarqués. Ainsi, il est possible de refaire sa propre carte
Arduino dans le but de l’améliorer ou d’enlever des fonctionnalités inutiles au projet.
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Les systèmes embarqués
Un système embarqué est défini comme un système électronique et informatique autonome, souvent temps réel,
spécialisé dans une tâche bien précise. Ses ressources sont généralement limitées.
Le système comprend une partie matériel et une partie logicielle.
Les systèmes embarqués (SE) ordinaires se basaient sur des microprocesseurs (CPU) en utilisant des puces externes
pour la mémoire et des circuits d'interface périphériques.
Le processeur(s) utilisé peut être de type usage général ou spécialisé dans certaines classes de calcul, ou même conçu
sur mesure pour l'application visée.
Une autre classe des SE modernes se basent sur des microcontrôleurs avec mémoires et interfaces périphériques
intégrés. Cette classe présente des avantages intéressants tels que la réduction à la fois de la consommation d'énergie,
la taille et le coût. Les microcontrôleurs offrent plus de flexibilité d’adaptation à l’application en main, et surtout ils
sont faciles d’utilisation.
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Les systèmes embarqués
Caractéristiques générales des systèmes embarqués:
Dédié à une application spécifique
Coût réduit, maximisation rapport performance/prix
Volume restreint (compact, pas modulaire)
Capacité mémoire adaptée
Capacité de calcul appropriée à l'application
Exécution temps réel (souvent)
Fiabilité et sécurité de fonctionnement
Consommation d’énergie maitrisée voire très faible en cas d’utilisation sur batterie
…
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Les microcontrôleurs (µC)
Le microcontrôleur (µC) est un petit ordinateur sur un seul circuit intégré contenant
un processeur, mémoires, et des périphériques d’entrée/sortie programmables.
Le microcontrôleur est un circuit programmable capable d’exécuter un programme
et qui possède des circuits d’interface intégrés avec le monde extérieur.
Le microcontrôleur correspond au cerveau du système. C'est lui qui va traiter les
informations provenant à travers les ports d'entrées et va donner la réponse voulue à travers les ports de sorties.
Les microcontrôleurs sont utilisés pour des applications spécifiques.
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Microprocesseurs Microprocessor
System Bus
Clock RAM Data Storage
Peripheral Bus
SPI, USB DAC,ADC Ethernet SD/MMC
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Processor Core
Microcontrolleurs
System Bus
Clock RAM Data Storage
Peripheral Bus
SPI, USB DAC,ADC Ethernet SD/MMC
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
La carte Arduino et les systèmes embarqués
La carte Arduino intègre un microcontrôleur avec d’autres périphériques et composants. Elle permet de réaliser une tâche
spécifique du système embarqué.
Système embarqué
Entrées/Sorties
Système électronique Circuit de commande La tâche est performée par la
carte Arduino
Il englobe la carte Arduino
et le langage Arduino
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
D’un cahier des charges à la réalisation
Cahier des charges
Etapes de la réalisation :
• Cahier des charges
• Identification des entrées et sorties
Entrées Circuit de commande Sorties
• Préparation du circuit de commande
• Préparation du matériel
Le circuit de commande est en interaction
• Test et validation avec les entrées/sorties
• Prototype est prêt
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
D’un cahier des charges à la réalisation
Cahier des charges
Exemple:
• Cahier des charges: On souhaite clignoter une LED tant que le bouton poussoir est activé.
• Entrée et sortie: Bouton poussoir et la LED.
• Circuit de commande:
Phase 1 : Elaboration du programme;
Phase 2 : Exécution du programme dans la carte ARDUINO.
• Matériel: BreadBoard + une LED + des fils + un bouton poussoir.
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
ARDUINO
?
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Historique
Son histoire a commencé en 2005 dans une
université italienne.
Permettre à des non-spécialistes en informatique et
en électronique d’utiliser la programmation pour
faire l’acquisition et le traitement des données à
l’aide des capteurs et de commander des systèmes
de manière simple.
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Introduction à ARDUINO
Arduino est une plateforme électronique basée sur du matériel et des logiciels simples à utiliser. Arduino est
constituée d’une carte électronique et d’un environnement de programmation.
Carte électronique
Environnement de programmation
La carte Arduino est l’endroit où le code que vous écrivez est exécuté.
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Introduction à ARDUINO
Tous les objets exécutés dans la carte Arduino suivent un modèle très simple
que nous appelons le "Dispositif Interactif". Le dispositif interactif est un
circuit électronique capable de détecter l’environnement à l’aide de capteurs
(composants électroniques qui convertissent les mesures du monde réel en
signaux électriques). Interaction avec l’environnement
La carte Arduino traite l’information qu’elle obtient des capteurs avec le comportement qui est mis en œuvre
comme programme. La carte pourra alors interagir avec le monde entier en utilisant des actionneurs, des
composants électroniques qui peuvent convertir un signal électrique en action physique.
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Introduction à ARDUINO
Les capteurs sont des composants matériels, qui une fois correctement connectés à votre carte Arduino, peuvent
fournir des informations sur le monde extérieur. Ceux-ci ont comme rôle de saisir une grandeur physique et de la
convertir en information numérique. L’information obtenue est traitée par la carte Arduino.
Il est ainsi possible de capter la plupart des phénomènes physiques comme la température, la lumière, etc…
Les actionneurs sont des composants matériels qui, une fois correctement connectés à votre carte Arduino,
permettent d'agir sur le monde extérieur. Ceux-ci ont comme rôle de convertir une valeur électrique en action
physique. Comme pour les capteurs, il existe une multitude de phénomènes physiques sur lesquels il est possible
d'agir par le biais d'actionneurs comme les moteurs électriques, LED, éléments chauffants utilisés pour
concevoir une multitude d'objets et d'applications comme des haut-parleurs, valves hydrauliques et
pneumatiques, ventilateurs, pompes, grille-pain, canons à photon (un bon vieux téléviseur !), etc.
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Introduction à ARDUINO
Exemple de capteurs Exemple d’actionneurs
LED
Bouton
Capteur de température poussoir
Moteur
Capteur de lumière
Potentiomètre
Entrées Sorties
Capteurs Actionneurs
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Pourquoi ARDUINO ?
• Arduino a été utilisée dans des milliers de projets et d’applications différentes. Le logiciel Arduino est facile à
utiliser et assez flexible pour les utilisateurs de réaliser des projets à moindre coût.
• Les cartes Arduino sont relativement peu coûteuses par rapport aux autres plateformes de développement.
• Le logiciel Arduino (IDE) fonctionne sur les systèmes d’exploitation Windows, Mac OS et Linux. La plupart
des systèmes de microcontrôleur sont limités à Windows.
• Environnement de programmation simple et clair. Le logiciel Arduino (IDE) est facile à utiliser pour les
débutants, mais suffisamment flexible pour que les utilisateurs avancés puissent également en profiter.
• Nombreuses bibliothèques disponibles avec diverses fonctions implémentées.
Prix d’Arduino Uno: 15 €
Logiciel: 0 €
Assistance: Forum Arduino
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Versions d’ARDUINO
Il existe différentes versions de cartes Arduino, dont on peut trouver:
Des cartes aussi petites qu’un timbre-poste, comme les cartes Arduino Mini et Pro Mini;
Des cartes plus grandes qui ont plus d’options de connexion et des processeurs
plus puissants, comme l’Arduino Mega;
Des cartes adaptées à des applications spécifiques, comme le LilyPad pour les applications
portables.
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Anatomie d’ARDUINO
La carte Arduino repose sur un microcontrôleur associé à des entrées et sorties qui permettent à l'utilisateur de
brancher différents types d'éléments externes :
• côté entrées, des capteurs qui collectent des informations sur leur environnement
• côté sorties, des actionneurs qui agissent sur le monde physique,
Le microcontrôleur est programmé pour analyser et produire des signaux électriques, de manière à effectuer des
tâches très diverses comme la domotique (le contrôle des appareils domestiques - éclairage, chauffage…), le
pilotage d'un robot, etc.
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Anatomie d’ARDUINO
(1) Microcontrolleur Atmega: Il représente le coeur de la carte Arduino.
(2) Bouton de remise à zero: Il permet de remettre à zero le
microcontrolleur.
(3) Les pins d’entrées/sorties numériques (0-13): Ces pins peuvent être
utilisée pour recevoir ou envoyer des signaux numériques “0” ou “1”.
(3) Les pins de sorties analogiques (3, 5, 6, 9, 10 et 11): Ce sont des pins
numériques qui peuvent etre programmées pour délivrer des signaux
analogiques.
(4) LED: Elle est soudée sur la carte Arduino et est reliée avec la Pin 13.
(5) Port USB: Il sert à alimenter la carte Arduino, transférer le programme
et établir la communication entre Arduino et le moniteur série.
Anatomie d’ARDUINO
(6) LED de transmission et reception: Elles indiquent la communication
entre la carte Arduino et l’ordinateur. (7) (6) (5)
(7) Connecteur d’alimentation: Il permet de connecter une alimentation
à la carte Arduino quand le port USB n’est pas utilisé. Ce connecteur (4)
accepte une tension entre 5V-12V.
(8) Broche 5V et GND: Elles fournissent 5V et la masse au circuit (8)
réalisé. (3)
(9)
(9) Les pins d’entrées analogiques: Elles sont utilisées pour mesurer
Une tension variable (entre 0 et 5V) qui peut provenir des capteurs ou
d’interfaces diverses (potentiometer, etc..) (1) (2)
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Anatomie d’ARDUINO
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Programmer avec ARDUINO
L’environnement de développementd'un programme
Arduino IDE est le logiciel utilisé qui s’exécute dans l’ordinateur. Barre de boutons
Le programme est rédigé dans le logiciel et transféré à la carte Arduino.. La structure d'un programme
Ouvrir un sketch Sauvegarder
Créer un Accès au moniteur série Fenêtre édition des
Vérifier les erreurs
nouveau sketch programmes
dans le code
Compiler le code et
transférer le programme
à la carte Arduino Console d’affichage des
Année universitaire: 2023/2024
messages de compilation
Programmer avec ARDUINO
Le langage Arduinostructure d'un programme
Le langage Arduino se base sur le C/C++.
Le programme Arduino est un ensemble d'instructions qui seront directement converties en langage machine grâce à
un compilateur. L'exécution d'un programme Arduino s'effectue de manière séquentielle, c'est-à-dire que les
instructions sont exécutées les unes à la suite des autres. XI-B. La structure d'un programme
La structure du programme Arduino. La structure
Led'un programme
programme est composé généralement de trois parties:
(1): Déclaration des variables (1)
(2): void setup(): Cette partie est dédiée à l’initialisation et aux
instructions de configuration de la carte Arduino, comme les
entrées/sorties, le moniteur série, etc… . (2)
(3): void loop(): Elle contient le programme principal.
Il est sous forme d’instructions qui s’exécutent en boucle tant que
la carte Arduino est ON.
(3)
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Programmer avec ARDUINO
Le langage Arduino est constitué d’un certain nombre de fonctions pour mesurer le temps, manipuler les
entrées/sorties, etc…
Les. fonctions
XI-B La structure d'un programme
d’entrée/sortieamme
pinMode(pin,mode)
Elle sert à configurer une pin numérique pour se comporter soit comme entrée ou sortie.
Exemple: pinMode(7,INPUT); // configure la pin 7 comme entrée.
digitalWrite(pin, valeur)
Avec cette function, la pin numérique choisie prend l’état ON (valeur 1 ) ou l’état OFF (valeur 0).
Le numéro de la pin choisie doit être déclarée préalablement comme sortie en utilisant la function pinMode.
Exemple: digitalWrite(8,HIGH); // la pin 8 est ON
digitalRead(pin)
Elle lit l’état d’une pin, elle retourne 1 ou 0 .
Exemple: val = digitalRead(7); // lire l’état du pin 7
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Programmer avec ARDUINO
Les fonctions d’entrée/sortieamme
analogRead(pin)
Elle lit la tension appliquée à une entrée analogique.
Elle retourne une valeur entre 0 et 1023 qui corresponds à une valeur entre 0 et 5V.
Exemple: val = analogRead(0); // lire la pin 0: entrée analogique
analogWrite(pin, valeur)
Cette fonction permet d’envoyer une valeur analogique. La pin peut être 3, 5, 6, 9, 10, 11.
Pour changer le rapport cyclique du PWM. La valeur peut etre entre 0 et 255 ce qui représente une valeur dans
l’intervalle 0 et 5V.
Exemple: analogWrite(9,128);
Année universitaire: 2023/2024 Pr: Mouhcine LAHAME
Programmer avec ARDUINO
Les fonctions du tempse
Arduino comprend des fonctions relatives au temps.
delay(valeur)
Mettre une pause au programme (en ms).
Exemple: delay(500); // une durée de 500ms est programmée pour mettre en pause le programme
delayMicroseconds(valeur)
Mettre une pause au programme (en µs).
Exemple: delayMicroseconds(1000); // attendre 1000µs (1s)
Les fonctions de communication
La communication avec la carte Arduino et l’ordinateur est établie à travers le port USB. Pour cela, Arduino
comprend des fonctions de communication
Pr: Mouhcine LAHAME
Programmer avec ARDUINO
Les fonctions de communication
[Link](débit)
Cette function sert à fixer le débit de communication. Pour communiquer avec l’ordinateur, le débit 9600 bauds
est généralement utilisé .
Exemple: [Link](9600);
[Link]()
Elle donne le nombre de caractères disponible pour lecture dans la file d'attente (buffer) du port série.
Elle renvoie 0 si aucun caractère n’est disponible. Sa valeur sera supérieur à 0 quand une donnée arrive.
Exemple: int val=[Link]();
[Link]()
Elle lit les données entrantes sur le port Série.
Exemple: int data = [Link]();
Pr: Mouhcine LAHAME
Programmer avec ARDUINO
Exemple:
Ecrire un programme permettant d’allumer une LED.
Le programme étape par étape:
int Led = 13; // Led est connectée au pin 13 de la carte Arduino.
Led prendera toujours le numéro 13 quand elle apparait dans les
instructions du programme.
pinMode(Led,OUTPUT); // pin 13 est une sortie numérique
Nous avons besoin d’une pin sortie pour contrôler la LED, alors
la pin 13 est choisie et configurée comme sortie.
digitalWrite(Led,HIGH); // allumer la LED
Nous désirons d’allumer la LED, alors l’état de la pin 13 est configurée en mode ON (HIGH).
Pr: Mouhcine LAHAME
Rendre l’Arduino autonome
Lorsque la carte Arduino est connectée au port USB de l’ordinateur, celui-ci lui fournit l’énergie
nécessaire à son fonctionnement.
Une fois le programme chargé, on peut débrancher le fil USB et connecter la carte soit à une pile
soit à un transformateur.
Une pile 9V et un connecteur de 2.1 mm Un transformateur qui convertie la tension
avec le + au centre. du secteur en une tension 9V DC et un
connecteur de 2.1 mm avec le + au centre.
Pr: Mouhcine LAHAME
Rendre l’Arduino autonome
Pr: Mouhcine LAHAME
: Félicitation :
Vous venez de réaliser votre premier
projet en Arduino
Logiciel de Simulation du système
Le simulateur ISIS de Proteus est un logiciel puissant, développé par la compagnie électronique Labcenter, qui s'est
positionné pour plus de 10 ans comme l'un des outils les plus utiles pour simuler les microcontrôleurs ARDUINO .
ISIS peut simuler une variété de dispositifs numériques et analogiques, comme les afficheurs sept segments, les LCD des
caractères et graphiques, les capteurs de température, d'humidité, la pression, etc. Il peut aussi simuler les actionneurs tels
que des moteurs à courant continu, les servomoteurs, les lampes à incandescence, etc.
Pr: Mouhcine LAHAME
Les tests dans le programme
Test Dans le programme
Si … if(condition)
{instructions}
Si … Sinon if(condition)
{instructions}
else
{instructions}
Si … Sinon Si … if(condition)
{instructions}
elseif(condition)
{instructions}
Faire … Tant que… do
{instructions}
while(condition) ;
Tan que … while(condition)
{instructions}
Compteur for(variable ; condition ; comptage)
{instructions}
Exemples : exécute les instructions 5 fois.
for(variable=0 ; variable == 4 ; variable+=1)
{instruction}
for(int i=0 ; i==4)
{i++
instructions}
Année universitaire: 2021/2022 Pr: Mouhcine LAHAME
Les conditions
Condition Dans le programme
Egale à ==
Supérieur >
Inférieur <
Supérieur ou égal >=
Inférieur ou égal <=
Non égal !=
Pr: Mouhcine LAHAME
Opérateurs logiques
Dans le
Opérateur logique Exemple
programme
ET logique
Vraie si les deux
&& if(condition 1 && conditions 2)
conditions sont
remplies
OU logique
Vrai si l’une ou l’autre des !! if(condition 1 !! conditions 2)
conditions est remplie
NON logique
Vrai si la condition est ! if( ! condition)
fausse
Pr: Mouhcine LAHAME