Académique Documents
Professionnel Documents
Culture Documents
Rapport TP : Systèmes
Embarqués
Elaboré par :
Encadré par :
El Amoury Khadija EE
Pr YOUNES ADNANI
Redaoui Soukaina ST
Ouldsenni Hafsa ST
Chahbi soufian EE
Année Universitaire
1 2023-2024
Sommaire :
I. Introduction : ........................................................................................................................................... 4
1. Qu'est-ce qu’Arduino ? ..................................................................................................................... 4
2. Pourquoi Arduino ?............................................................................................................................ 4
3. Relation EE et Arduino : ................................................................................................................... 5
4. Concurrent Arduino : ......................................................................................................................... 5
5. Domaine d'utilisation : ...................................................................................................................... 5
II. Matériel Arduino : ................................................................................................................................... 7
1. Les différentes cartes : ..................................................................................................................... 7
2. Brochage de la carte UNO : ............................................................................................................. 8
2.1. Entrées-sorties de l’Arduino UNO: ........................................................................................ 9
2.2. Alimentation de la carte Arduino Uno : .............................................................................. 10
III. IDE installation : ................................................................................................................................ 11
1. Présentation de l’interface IDE : ................................................................................................... 11
1.1. Description : ............................................................................................................................... 11
1.2. Principe général d’utilisation................................................................................................. 13
2. Le langage de programmation :.................................................................................................... 15
IV. Application TPs à l’aide d’un Arduino ........................................................................................ 17
TP1 : Clignoter un LED ...................................................................................................................... 18
TP 2 : Faire feu de circulation à deux voies à l’aide d’un Arduino. ............................................. 20
TP 3 : (minuterie de cage d'escalier) ........................................................................................ 24
TP 4 (Afficheur 7 segments standard) ...................................................................................... 26
TP 5 : Acquisition de la tension Vout et affichage de la température ........................................ 32
TP 6 : Commande d'un moteur à courant continu (DC motor) avec Arduino ....... 35
TP 7 : Commande d'un servomoteur avec une résistance variable ......................... 38
V. COCLUSION :......................................................................................................................................... 42
2
Listes des figures
Figure 1:domotique ........................................................................................................................ 6
Figure 2:robotique .......................................................................................................................... 6
Figure 3:Modelisme avionique ....................................................................................................... 6
Figure 4 Modelisme automobile..................................................................................................... 6
Figure 5:Diverses Cartes Ardouino ............................................................................................... 7
Figure 6:La carte Ardouino UNO ................................................................................................... 8
Figure 7:L'alimentation de la carte Ardouino ............................................................................. 10
Figure 8:Présentation de la fenêtre IDE Arduino ........................................................................ 11
Figure 9:Le moniteur série (Terminal série). ............................................................................... 12
Figure 10:Détaille de la barre des Boutons ................................................................................. 14
Figure 11:La console IDE Arduino............................................................................................... 14
Figure 12: Le téléversement du programme vers la carte Arduino ........................................... 15
3
I. Introduction :
Arduino est une plateforme de prototypage électronique open-source qui a révolutionné le
domaine de l'électronique en rendant le processus de développement de projets électroniques
accessible à tous, des débutants aux experts. Cette plateforme offre un ensemble de cartes
matérielles et un environnement de développement logiciel convivial, permettant aux
utilisateurs de créer rapidement et facilement une large gamme de projets interactifs.
Dans cette documentation, nous explorerons en profondeur divers aspects d'Arduino, depuis
sa définition et ses avantages jusqu'à son application pratique à travers une série de travaux
pratiques. Nous commencerons par une présentation générale d'Arduino, décrivant son
histoire, sa philosophie et ses caractéristiques clés. Ensuite, nous examinerons l'installation de
l'environnement de développement intégré (IDE) d'Arduino et la programmation en langage
Arduino, en mettant l'accent sur les concepts fondamentaux nécessaires pour commencer à
créer des projets.
Nous plongerons ensuite dans le matériel Arduino, en explorant les différentes cartes
disponibles, leur architecture et leur fonctionnement. Nous passerons également en revue les
principaux composants d'une carte Arduino typique, en mettant l'accent sur le brochage et les
fonctionnalités de la carte Arduino Uno, l'une des cartes les plus populaires de la gamme
Arduino.
Enfin, nous mettrons en pratique nos connaissances à travers une série de travaux pratiques
conçus pour illustrer diverses applications d'Arduino, telles que la commande de LED, la
lecture de capteurs, le contrôle de moteurs et bien d'autres encore. Chaque TP sera accompagné
d'instructions détaillées et de codes sources, permettant aux utilisateurs de suivre et de
reproduire facilement les expériences.
1. Qu'est-ce qu’Arduino ?
Arduino est une plate-forme de prototypage électronique open source, basée à la fois sur du
matériel et des logiciels faciles à utiliser. Les premiers Arduino disposaient d'un port série RS-
232, puis l'USB est apparu sur des modèles plus récents, tandis que certains modules destinés
à une utilisation portable se sont affranchis de l'interface de programmation, relocalisée sur un
module USB-série dédié.
2. Pourquoi Arduino ?
Avantages :
Pas cher
Développement des applications sans être forcément un spécialiste pointu de
l’électronique ou de la programmation
Environnement de développement intégré (IDE) clair et simple et multiplateforme :
tourne sous Windows, Macintosh et Linux
Nombreuses librairies disponibles avec diverses fonctions implémentées
Logiciel et Matériel open source et extensible
Nombreux conseils, tutoriaux et exemple en lignes (forum, sites perso, etc….)
4
Existence de « shields» (boucliers en français) : ce sont des cartes d’extension qui se
connecte sur le module Arduino pour augmenter ses possibilités comme par exemple :
Afficheur graphique couleur
Interface Ethernet
GPS
3. Relation EE et Arduino :
Arduino simplifie le processus de développement électronique en fournissant une plateforme
standardisée avec une documentation complète. Il permet aux utilisateurs de se concentrer sur
la logique de programmation plutôt que sur les détails techniques du matériel.
4. Concurrent Arduino :
Bien qu'Arduino soit populaire, il existe d'autres plateformes similaires telles que
Raspberry Pi, ESP32, et BeagleBone. Chacune a ses propres avantages et inconvénients,
mais Arduino reste populaire en raison de sa simplicité et de sa polyvalence.
5. Domaine d'utilisation :
Physical computing : Au sens large, construire des systèmes physiques interactifs qui
utilisent des logiciels et du matériel pouvant s’interfacer avec des capteurs et des
actionneurs.
Électronique industrielle et embarquée
Art / Spectacle
Domotique
Robotique Modélisme
DIY, Hacker, Prototypage,
Education, Etc.
5
Figure 1:domotique
Figure 2:robotique
6
II. Matériel Arduino :
1. Les différentes cartes :
Il existe une bonne centaine de cartes Arduino différentes :
Certains constructeurs modifient le modèle original afin d’améliorer certains points,
Le nombre d’entrées/sorties,
la consommation,
La fréquence de fonctionnement,
L’espace mémoire,
La réduction de la tension d’alimentation,
Le Type de bus de programmation.
D’autre pour une question d’esthétisme ou encore pour l’orienter par exemple
expérimentations.
7
2. Brochage de la carte UNO :
La carte Arduino Uno est une carte à microcontrôleur basée sur l'ATmega328. Elle dispose
(voir figure.) :
1. Un microcontrôleur,
2. d'une connexion USB,
3. d'un connecteur d'alimentation jack,
4. LED de visualisation
5. a) de 14 broches numériques d'entrées/sorties (dont 6 peuvent être utilisées en sorties PWM
(largeur d'impulsion modulée)),
5. b) de 6 entrées analogiques (qui peuvent également être utilisées en broches entrées/sorties
numériques),
6. d'un quartz 16Mhz,
7. d'un connecteur ICSP (programmation "in-circuit"),
8. un bouton de réinitialisation (reset).
8
2.1. Entrées-sorties de l’Arduino UNO:
Entrées analogiques :
La carte arduino possède de 6 entrées analogiques en utilisant l'instruction analogRead (), les
tensions sont toujours entre 0 et 5V, présentes sur ces broches, peuvent être numérisées via un
convertisseur analogique-numérique ou ADC (Analog Digital Converter). La conversion est
effectuée sur 10 bits, c’est à dire 2^10, soit 1024 valeurs donc il convertit la tension en un
nombre entier ayant une valeur de 0 à 1023.
La ligne série :
Broche TX la ligne d’émission série et RX la ligne de réception série. Ces lignes sont
principalement employées pour dialoguer avec l’ordinateur et avec certains modules comme
les modules Wi-Fi ou Bluetooth.
Interruptions externes :
Les broches 2 et 3 peuvent être configurées pour déclencher une interruption sur une valeur
basse, sur un front montant ou descendant, ou sur un changement de valeur.
9
LED :
Il y a une LED incluse dans la carte connectée à la broche 13. Lorsque la broche est au niveau
HAUT (5V), la LED est allumée, lorsque la broche est au niveau BAS(0V), la LED est éteinte.
3.3V – Fournie par le circuit intégré FTDI (circuit intégré faisant l'adaptation du signal entre
le port USB de votre ordinateur et le port série de l'ATMega) de la carte est disponible. Cette
broche alimente les circuits intégrés sous cette tension avec une intensité maximale d’environ
50 mA
10
III. IDE installation :
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,
un EDITEUR (à coloration syntaxique) pour écrire le code de vos programmes, avec
onglets de navigation,
une ZONE DE MESSAGES qui affiche indique l'état des actions en cours,
une CONSOLE TEXTE qui affiche les messages concernant le résultat de la
compilation du programme.
11
Un TERMINAL SERIE (Figure. 8) 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.
Sur votre ordinateur, il faut ouvrir la fenêtre terminal de l'IDE Arduino : pour ce faire,
un simple clic sur le bouton « Sérial Monitor ».
12
1.2. Principe général d’utilisation
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.
la barre de boutons vous permet de vérifier la syntaxe et de transférer les programmes,
créer, ouvrir et sauver votre code, et ouvrir le moniteur série.
la barre des menus vous permet d'accéder à toutes les fonctionnalités du logiciel
Arduino.
Ouvrir : Ouvre la liste de tous les programmes dans votre "livre de programmes". Cliquer sur
l'un des programmes l'ouvre dans la fenêtre courante.
Note : en raison d'un bug dans Java, ce menu ne défile pas. Si vous avez besoin d'ouvrir un
programme loin dans la liste, utiliser plutôt le menu File > Sketchbook.
Transférer vers la carte : Compile votre code et le transféré vers la carte Arduino. Voir ci-
dessous "Transférer les programmes" pour les détails.
13
Figure 8:Détaille de la barre des Boutons
Appuyez alors sur le bouton Vérifier 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 Compilation terminée attestant que la vérification s'est bien déroulée comme
montre la figure 10.
14
Avant de transférer votre programme vers la carte Arduino, vous devez vérifier que vous avez
bien sélectionné la bonne carte Arduino 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.
Vous devez également sélectionner le bon port série depuis le menu Tools > Serial Port (Outils
> Port Série) :
Une fois que vous avez sélectionné le bon port série et la bonne carte Arduino, cliquez sur le
bouton Téléverser (Transfert vers la carte) dans la barre d'outils (Figure 11), ou bien
sélectionner le menu Croquis>Téléverser (ctrl+U). 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, vous devez
appuyer sur le bouton "reset" de la carte juste avant de démarrer le transfert.
2. Le langage de programmation :
un entête déclaratif
une partie « configuration » qui ne sera exécutée qu'une fois (fonction setup( ))
15
une partie constituée d'une boucle sans fin que le programme répètera à l'infini «
fonction loop ( ) » : c'est le coeur du programme.
Déroulement du programme
Le programme se déroule de la façon suivante :
Les programmes Arduino peuvent être divisés en trois parties principales : la structure, les
valeurs (variables et constantes) et les fonctions.
16
•Instructions d’envoi en sortie
digitalWrite (broche, HIGH) // la sortie broche est positionnée à l’état haut digitalWrite
(broche, LOW) // la sortie broche est positionnée à l’état bas analogWrite (broche, value) //
concerne l’écriture dans les 6 sorties PWM
Matériel Nécessaire
17
TP1 : Clignoter un LED
Objectif du TP : On désire clignoter un LED à l’aide d’un Arduino Uno comme donnée
par la figure suivante :
18
1) Montage Pratique :
2) Le programme :
// C++ code
void setup()
{
pinMode(2, OUTPUT);
}
void loop()
{
digitalWrite(2, HIGH);
delay(1000); // Wait for 1000 ms
digitalWrite(2, LOW);
delay(500); // Wait for 500 ms
}
Test du programme :
Après avoir téléversé ce programme sur la carte Arduino, la LED connectée à la broche 13
devrait clignoter selon les spécifications du cahier des charges (TH=1000 ms et TB=500 ms).
Conclusion :
À l'issue de ce TP, nous avons acquis une meilleure compréhension sur la manière de
contrôler une LED à l'aide d'une carte Arduino et de programmer un clignotement périodique.
Ce processus nous a permis de mettre en pratique les principes fondamentaux de la
programmation embarquée et de réaliser une tâche simple mais essentielle en électronique
19
TP 2 : Faire feu de circulation à deux voies à l’aide d’un
Arduino.
Objectif du TP : L'objectif de ce TP est de simuler le fonctionnement d'un feu de
circulation à deux voies en utilisant des LED rouges, jaunes et vertes connectées à u n
Arduino. Comme donnée par la figure suivante :
L’étude est simple simule les feux de circulation sur 2 groupes de 3 leds rouge-jaune-vert et
le fonctionnement normal est décrit par le chronogramme donné par la figure suivante.
20
1) Montage Pratique :
2) Le programme
void setup() {
// Initialise les broches des LED en sortie
pinMode(R1, OUTPUT);
pinMode(O1, OUTPUT);
pinMode(V1, OUTPUT);
pinMode(R2, OUTPUT);
pinMode(O2, OUTPUT);
pinMode(V2, OUTPUT);
}
21
void loop() {
// Voie 1 : feu rouge
digitalWrite(R1, HIGH);
digitalWrite(O1, LOW);
digitalWrite(V1, LOW);
delay(tempsRouge);
22
// Voie 2 : feu jaune
digitalWrite(R2, LOW);
digitalWrite(O2, HIGH);
digitalWrite(V2, LOW);
delay(tempsJaune);
}
Test du programme :
Conclusion : Dans ce TP, nous avons réussi à simuler le fonctionnement d'un feu de
circulation à deux voies en utilisant un Arduino et des LED. En modifiant les temporisations
dans le programme,il est possible d'adapter le fonctionnement du feu en fonction de la densité
de la circulation. Ce TP démontre comment utiliser l'Arduino pour contrôler des périphériques
externes et simuler des systèmes du monde réel.
23
TP 3 : (minuterie de cage d'escalier)
Le schéma du montage
1) Montage Pratique
24
2) Le programme
Test du programme :
Connectez le bouton poussoir à la broche 2 et la LED à la broche 10.
Téléversez le programme sur votre carte Arduino.
Appuyez sur le bouton poussoir pour observer le fonctionnement de la minuterie
d'escalier : la LED doit s'allumer pendant 300ms puis s'éteint suite à l’action sur le
bouton poussoir.
Conclusion :
Ce TP nous a permis de mettre en œuvre une minuterie d'escalier simple à l'aide d'un
Arduino et d'un bouton poussoir. Le programme développé permet d'allumer la LED
pendant une durée déterminée (300ms) lorsqu'un utilisateur appuie sur le bouton
poussoir, ce qui simule le fonctionnement d'un éclairage d'escalier. Cette expérience
démontre comment contrôler des périphériques externes avec un Arduino pour créer
des fonctionnalités interactives.
25
TP 4 (Afficheur 7 segments standard)
Objectif du TP : L'objectif de ce TP est d'afficher les chiffres de 0 à 9 sur un afficheur 7
segments standard à l'aide d'un Arduino.
Le schéma du montage
1) Montage Pratique
26
2) Le programme
void setup() {
pinMode(segA, OUTPUT);
pinMode(segB, OUTPUT);
pinMode(segC, OUTPUT);
pinMode(segD, OUTPUT);
pinMode(segE, OUTPUT);
pinMode(segF, OUTPUT);
pinMode(segG, OUTPUT);
pinMode(digit1, OUTPUT);
}
void loop() {
for (int i = 0; i < 10; i++) {
lightNumber(i);
delay(1000);
}
}
switch (digit) {
case 1:
digitalWrite(digit1, DIGIT_ON);
lightNumber(toDisplay % 10);
toDisplay /= 10;
delayMicroseconds(DISPLAY_BRIGHTNESS);
break;
27
}
//Turn off all segments
lightNumber(10);
//Turn off all digits
digitalWrite(digit1, DIGIT_OFF);
}
}
case 0:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_OFF);
digitalWrite(13, SEGMENT_OFF);
break;
case 1:
digitalWrite(segA, SEGMENT_OFF);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_OFF);
digitalWrite(13, SEGMENT_OFF);
break;
case 2:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_OFF);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_ON);
28
digitalWrite(13, SEGMENT_OFF);
break;
case 3:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_ON);
digitalWrite(13, SEGMENT_OFF);
break;
case 4:
digitalWrite(segA, SEGMENT_OFF);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
digitalWrite(13, SEGMENT_OFF);
break;
case 5:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_OFF);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
digitalWrite(13, SEGMENT_OFF);
break;
case 6:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_OFF);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
digitalWrite(13, SEGMENT_OFF);
break;
case 7:
29
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_OFF);
digitalWrite(13, SEGMENT_OFF);
break;
case 8:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
digitalWrite(13, SEGMENT_OFF);
break;
case 9:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
digitalWrite(13, SEGMENT_OFF);
break;
// all segment are ON
case 10:
digitalWrite(segA, SEGMENT_OFF);
digitalWrite(segB, SEGMENT_OFF);
digitalWrite(segC, SEGMENT_OFF);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_OFF);
digitalWrite(13, SEGMENT_OFF);
break;
}
}
30
Test du programme :
Connectez les broches de l'afficheur 7 segments aux broches de l'Arduino selon les
instructions de montage.
Téléversez le programme sur votre carte Arduino.
Observez l'afficheur 7 segments pour voir les chiffres de 0 à 9 s'afficher en boucle.
31
TP 5 : Acquisition de la tension Vout et affichage de la
température
Objectif du TP : L'objectif de ce TP est de mesurer une tension analogique à l'aide du
convertisseur analogique-numérique (CAN) de la carte Arduino, puis de convertir cette tension
en température en utilisant une formule de conversion prédéfinie. La température ainsi obtenue
sera affichée sur le moniteur série de l'IDE Arduino.
Le schéma du montage :
1) Montage Pratique
32
2) Le programme
Test du programme :
33
L'affichage de la tension Vout et de sa température correspondante
dans le moniteur série :
Conclusion :
Ce TP nous a permis de comprendre comment utiliser le convertisseur analogique-numérique
(CAN) de l'Arduino pour mesurer une tension analogique. En utilisant une formule de
conversion prédéfinie, nous avons converti cette tension en température en degrés Celsius. En
affichant les valeurs de tension et de température sur le moniteur série, nous pouvons surveiller
les variations de température en temps réel. Ce TP démontre l'importance et la facilité de
l'acquisition de données analogiques avec un Arduino.
34
TP 6 : Commande d'un moteur à courant continu
(DC motor) avec Arduino
Objectif du TP : L'objectif de ce TP est de contrôler la vitesse d'un moteur à courant continu
(DC) en utilisant une carte Arduino. Pour ce faire, nous allons utiliser la modulation de largeur
d'impulsion (PWM) pour ajuster le rapport cyclique et donc la vitesse du moteur.
Cahier de charge.
TON = 2500, TOFF =1000 et une largeur de « duty cycle » voulue : 39.215% , 74.509% et
100% de la période.
IMPORTANT
Ce programme exploite l'instruction analogWrite(broche, largeur) qui permet de générer très
simplement une impulsion PWM (Pulse Width Modulation en anglais). Cette instruction
permet de moduler la largeur d'impulsion, la fréquence restante fixe aux alentours de 490 Hz
par défaut.
L'instruction analogWrite() n'est disponible que sur les broches 3, 5,6,9,10,11.
Avec l'instruction analogWrite(broche, largeur), on va pouvoir générer une impulsion PWM
avec une largeur de « duty cycle » voulue :
si valeur = 0, le duty cycle sera de 0% de la période
si valeur = 255, le duty cycle sera de 100% de la période
si valeur = 127, le duty cycle sera de 50% de la période
si valeur = n, le duty cycle sera de (n/255)*100% de la période.
35
1) Montage Pratique
2) Le programme
void setup() {
pinMode(moteurPin, OUTPUT);
}
void loop() {
// Duty cycle de 39.215%
analogWrite(moteurPin, 100 * TOFF / (TOFF + TON));
delay(TOFF + TON);
36
// Duty cycle de 74.509%
analogWrite(moteurPin, 100 * TON / (TOFF + TON));
delay(TOFF + TON);
Test du programme :
37
TP 7 : Commande d'un servomoteur avec une
résistance variable
Objectif du TP : L'objectif de ce TP est de contrôler la vitesse et le sens de rotation d'un
servomoteur à l'aide d'une résistance variable et d'une carte Arduino. La position médiane de
la résistance doit mettre le servomoteur à l'arrêt, tandis que la rotation de la résistance vers la
droite ou la gauche doit faire tourner le moteur dans l'un ou l'autre sens à des vitesses variables.
De plus, la largeur d'impulsion courante doit être affichée sur le port série pour permettre
d'étalonner le servomoteur à rotation continue.
Le schéma du montage
38
o La rotation vers la droite/gauche de la résistance fait tourner le moteur dans l'un
ou l'autre sens à des vitesses variables.
o La largeur d'impulsion courante est affichée sur le port série pour permettre
d'étalonner le servomoteur à rotation continue.
1) Montage Pratique
2) Le programme
#include <Servo.h> // Inclure la bibliothèque Servo
// Broche utilisée pour lire la résistance variable
const int resistancePin = A0;
void setup() {
// Initialise la communication série
Serial.begin(9600);
39
void loop() {
// Lecture de la valeur de la résistance variable
int resistanceValue = analogRead(resistancePin);
Test du programme :
40
L'affichage de la largeur d'impulsion courante dans le moniteur série :
Conclusion :
41
V. COCLUSION :
En conclusion, Arduino s'est imposé comme une plateforme incontournable dans le domaine
de l'électronique grâce à sa simplicité d'utilisation, sa polyvalence et sa large communauté de
développeurs. Tout au long de cette documentation, nous avons exploré les bases d'Arduino,
depuis sa définition et ses avantages jusqu'à son application pratique à travers une série de
travaux pratiques.
Nous avons commencé par découvrir ce qu'est Arduino et pourquoi il est devenu si populaire
parmi les amateurs et les professionnels de l'électronique. Nous avons examiné son matériel,
en détaillant les différentes cartes disponibles et en expliquant leur fonctionnement. Nous
avons également exploré l'environnement de développement intégré (IDE) d'Arduino et appris
à programmer en utilisant le langage Arduino.
Ensuite, nous avons plongé dans des travaux pratiques concrets qui nous ont permis
d'appliquer nos connaissances et de créer divers projets, tels que le clignotement de LED, la
commande de moteurs et de servomoteurs, la lecture de capteurs, et bien d'autres encore.
Chaque TP nous a permis de comprendre davantage les possibilités offertes par Arduino et de
développer nos compétences en électronique et en programmation.
Enfin, nous avons constaté que les applications d'Arduino sont presque illimitées, allant de
simples projets de bricolage à des applications professionnelles complexes. Que vous soyez un
débutant curieux ou un professionnel expérimenté, Arduino offre un terrain fertile pour
l'innovation et la créativité dans le domaine de l'électronique.
En conclusion, Arduino est bien plus qu'une simple plateforme de prototypage électronique
c’est un outil puissant qui permet à chacun de donner vie à ses idées et de réaliser des projets
passionnants. Nous espérons que cette documentation vous a fourni les connaissances et les
compétences nécessaires pour explorer pleinement le monde d'Arduino et pour créer vos
propres projets électroniques.
42