Vous êtes sur la page 1sur 42

Rappelle Arduino

Pr. NASIRI Badr 1


Introduction
1.1-Qu'est-ce qu'un microcontrôleur ?

le Microcontrôleur (en notation abrégée µc, ou uc ou encore MCU en anglais) 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

1.2-Nous pouvons trouver les microcontrôleurs

2
3
4
1.3- Mise en situation

tube électronique Transistor Les circuits logique Microcontrôleur


1939 1947 1960 1971

Le premier Microcontrôleur par Texas Instruments

Le premier Microprocesseur par Intel

5
Microprocesseur Microcontrôleur

Application informatique générale Les appareils,


Les PCs les Tablettes dispositifs spécialisés

Vitesse Rapide Relativement lent


Le besoin des Beaucoup peu
périphériques externes

Le cout élevé Faible


Energie utilisée Médium élevé Faible très faible

Vendeur du Microprocesseur

Vendeur du Microcontrôleur

6
Microprocessor

System Bus

Clock RAM Data Storage

Peripheral Bus

SPI, USB DAC,ADC Ethernet SD/MMC


7
Processor Core

System Bus

Clock RAM Data Storage

Peripheral Bus

SPI, USB DAC,ADC Ethernet SD/MMC


8
1.4- Architecture d'un microcontrôleur

9
1.6- Principes de base de fonctionnement d’un microcontrôleur

- Les microcontrôleurs sont utilisés pour des applications spécifiques.

- Ils n'ont pas besoin d'être puissants car la plupart des applications ne nécessitent qu'une horloge de quelques MHz et
une petite quantité de stockage.

- Un microcontrôleur doit être programmé pour être utile.

- Un microcontrôleur est seulement aussi utile que le code est écrit pour cela. Si vous vouliez allumer une lumière rouge
quand une température a atteint un certain point, le programmeur devrait explicitement spécifier comment cela se
passera à travers son code

10
1.7- Programmation de microcontrôleur

-Le code est écrit pour le microcontrôleur dans un environnement de développement intégré, un programme PC. Le
code est écrit en langage de programmation. par exemple : C, BASIC ou Assembleur

-L‘IDE débogue le code pour les erreurs, puis le compile en code binaire que le microcontrôleur peut exécuter

11
Arduino Nano
Arduino UNO

Arduino Esplora Arduino Mega 2560

12
Programmation de microcontrôleur

Les caractéristiques principales de la carte Uno sont :

-Microcontrôleur ATmega328P
- Une tension de service de 5V.
- 14 Entrées/sorties .
- 6 entrées analogiques.
- Mémoire Flash de 32Ko.
- Mémoire SRAM de 2 Ko.
- Mémoire EEPROM DE 1Ko.
-Fréquence d’horloge de 16MHz.
-Interface de communication USB.

13
14
1.9- Le logiciel de développement

Pour la programmation de la carte Arduino, nous disposons d’un environnement de développement appelé IDE (Integrated
Development Environment), au moyen duquel en entre directement en contact avec la carte et on charge le programme dans
la mémoire du microcontrôleur. Un programme est appelé sketch dans le contexte Arduino.

15
Bloc 1 (déclaration et initialisation) : Les variables sont généralement déclarées
au début d'un programme immédiatement après les commentaires d'introduction.
Toutes les variables que vous utilisez dans votre code doivent être listées ici, avant
les fonctions setup() et loop(). Cette déclaration permet de définir le type de donnée
de la variable. Lors de l’initialisation en revanche, la variable reçoit une valeur.

Bloc 2 (la fonction setup) : La fonction setup permet la plupart du temps de configurer
les différentes broches de la carte. On définit ainsi quelles broches doivent servir
d’entrées et de sorties. On place typiquement dans le corps de cette fonction tout ce qui
touche à l'initialisation du matériel (entrées, sorties, capteurs, etc.) La fonction setup ()
ne s'exécute qu'une seule fois, après chaque mise sous tension ou réinitialisation de la
carte Arduino.

Bloc 3 (la fonction loop) : La fonction loop() fait exactement ce que son nom suggère
(boucle en français), elle boucle de façon consécutive et sans fin, permettant à votre
programme de changer et de répondre. Chacune des deux fonctions forment ensemble avec
son nom un bloc d’exécution identifié par des accolades {}. Celles-ci servent d’éléments
délimiteurs pour savoir où la définition de la fonction commence et où elle s’arrête. En
général la structure des deux fonctions setup() et loop() dans un sketch est illustré dans
l’exemple suivant :
16
1.10- Le logiciel de simulation
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.

Il est possible de simuler des périphériques d'entrée et de sortie comme les claviers, ordinateur et les ports physiques tels
que RS232 et USB. Ce simulateur a une grande variété d'instruments de mesure tels que voltmètres, ampèremètres,
oscilloscopes et analyseurs de signaux.

17
II. Introduction à la programmation de
microcontrôleurs

2.1- Règles générale d’écriture

Toutes instructions ou actions se terminent par un point virgule « ; ».

Les retours à la ligne et les espaces servent uniquement à aérer le code.

"0b" indique que la suite est écrite en binaire (0 ou 1).

un nombre écrit tel quel indique qu'il est écrit en décimal (0, 1, 2, 3, 4, 5, 6, 7, 8, 9).

"0x" (zero x) indique que la suite est écrite en hexadécimale (0, 1, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E et F... pas très
utile).

18
2.4- Les ports d’entrée sortie

Chaque broche d’un port peut être configurée soit en entrée soit en sortie à l’aide de
l’instruction pinMode

pinMode(x, OUTPUT) programmation de la broche x comme sortie

pinMode(x, INPUT) programmation de la broche x comme entrée

Exemple

pinMode(13, OUTPUT); // Programmation de la broche 13 comme sortie

19
pinMode(x, 1) programmation de la broche x comme sortie

pinMode(x, 0) programmation de la broche x comme entrée

Exemple

pinMode(0, 0); // Programmation de la broche 0 comme entrée

20
digitalWrite(13, HIGH);

digitalWrite(13, 1); // Mettre la broche 13 sur le niveau haut (5V)

Et physiquement, qu'est-ce qui se passe

Physiquement, si un bit d'un port est sur 1, il envoie une tension seuil 5 Volts à
la patte correspondante et s'il est sur 0, il envoie du 0 Volt ; logiquement vous
avez branché un fil, imaginons que ce fil soit relié à un moteur, ce moteur
modifiera son comportement selon qu'il reçoit du 5 Volts ou du 0 Volt.

Application 1:
On désire allumer une diodes LED à l’aide d’un
microcontrôleur ARDUINO UNO.

21
DDRX=0b11111111; Le port X est configuré en mode sortie (l’ARDUINO envoie des ordres à un
système extérieur via ce port, par exemple à un moteur)

DDRX=0b00000000; Le port X est configuré en mode entrée (ARDUINO reçoit des informations
d'un système extérieur via ce port : capteur, bouton poussoir, etc..

attribuer une valeur à PORTX:


PORTX = 0b01111111; //La patte 7 du port B prend la valeur 0 (une DEL qui s'éteint...) alors que les pattes 6, 5,
4, 3, 2, 1 et 0 prennent la valeur 1 (des DEL qui s'allument...)

B (digital pin 8 to 13)


C (analog input pins)
D (digital pins 0 to 7)

22
Application 2:
On désire allumer 8 diodes LED à l’aide d’un microcontrôleur ARDUINO.
Application 3:
On désire allumer D1,D3,D5 et D7, et éteindre D2,D4,D6 et D8

23
delay( )

delay(1000); //Fait une pause de 1000ms = 1s

Application 3:
On propose de faire clignoter les LEDs branchées au port D du microcontrôleur 10 fois avec une
période d’une seconde.

Application 4:

On propose de faire clignoter les LEDs branchées au port D du microcontrôleur de la manière suivante:
D1 pause 1s D2…………pause 1s D8

24
exercice1:

On désire commander un feu rouge

25
3.5- Les structures de contrôle

Les instructions sont normalement exécutées séquentiellement à partir du début à la fin d’un programme. Nous
pouvons utiliser des instructions de contrôle pour modifier ce flux séquentiel normal dans un programme C

3.5.1- Instruction « if »

Cette instruction conditionnelle permet d’exécuter des instructions de manière sélective en fonction
du résultat d’un test. La déclaration du format général de l’instruction if est la suivante :

Si l’expression est vraie, l’instruction1 s’exécute sinon, dans le deuxième


cas, c’est l’istruction2 qui s’exécute.
26
. 3.5.3- Instructions d'itération for, while, do, goto, continue et break
Les instructions d'itération nous permettent d'effectuer des boucles dans un programme, où une partie
d'un code doit être répétée un certain nombre de fois. Dans mikroC, l'itération peut être effectuée de
quatre façons :

Utilisation de for
Utilisation de while

Instruction « for »

for (i = 0; i < 3; i++)

{
PORTB=1;
}
27
Instruction « while »

La syntaxe d'une instruction while est la suivante :

Le code suivant montre comment mettre en place une boucle d'exécuter 10 fois :

Une boucle sans fin peut également être formée par réglage de la condition qui
doit être toujours vrai

28
IV. Systèmes d’entrée et
affichage des données
4.1 L’utilisation des boutons poussoir

Le principe de ce bouton est que lorsque l'on appuie, le courant passe, et lorsque l'on relâche le courant ne passe plus !
Contrairement à un interrupteur, il ne garde pas la position (il faut garder le doigt dessus pour qu'il fasse contact).
Voici un schéma de circuit :

29
Le bouton poussoir sert de pont. S'il est levé, le courant ne passe pas, on dit que le circuit est ouvert. S'il est baissé et
donc relie les deux contacts, le courant passe, on dit que le circuit est fermé.

L’implémentation de ces dispositifs est sujette aux effets de rebonds ou de bruit, quand ils changent d'état. Compte tenu du
traitement rapide des microcontrôleurs, ces effets de bruit, font que le PIC peut détecter des changements et des états
logiques indéfinis. Pour comprendre ce concept, on regarde le graphique ci-dessous qui montre le comportement de ce
bruit :

30
Lorsque des changements de tension traversent la zone indéfinie, génèrent des rebondissements de
l’état haut à l’état bas et vice versa. Le microcontrôleur les détecte comme des impulsions.

Pour éviter l'effet du bruit ou des rebonds, on devrait faire une temporisation en attendant la stabilisation de l'état du
signal. La durée moyenne d'un rebond est de 1 à 5 millisecondes, indique qu'un retard doit être effectué supérieur à ce
temps pour attendre la stabilisation. Un retard convenable à cet effet est supérieur ou égal à 10 millisecondes.

Ce délai devrait s'appliquer après la détection du premier changement sur le bouton.

-Pour le traitement des boutons

if(digitalRead(X)==1)

31
Afficheur 7 segments

Un afficheur 7 segments est un dispositif qui permet de visualiser un nombre limité de caractères essentiellement
numériques, mais il est possible de visualiser quelques caractères comme : A, B, C, D, E ou F.

L'afficheur 7 segments est un ensemble de LED, disposées de sorte qu’on visualise les caractères en activant les
segments convenables. A chaque segment, on attribue une lettre de "a " jusqu’à "g". La description et l'apparence
physique de ces afficheurs sont illustrées sur les images
suivantes :

32
Afficheur 7 segments:

33
Décodeur pour l’Afficheur 7 segments:

34
Afficheurs LCD
Les afficheurs de caractères à cristaux liquides LCD sont des modules préfabriqués qui contiennent des pilotes inclus. Ces
écrans disposent d'un bus de données et un bus de commande, pour la manipulation de ces appareils, le compilateur dispose
d'une bibliothèque prédéfinie pour contrôler les LCD. L'apparence physique des LCD et celle dans ISIS sont présentées dans
la figure suivante :

Les afficheurs LCD, permettent de visualiser les caractères figurant dans le code ASCII. En plus du code ASCII, LCD affiche
jusqu'à 8 caractères conçus par le développeur. Une autre caractéristique fondamentale des afficheurs LCD, tenant
physiquement sur 8 bits, est la possibilité de configurer les connexions avec seulement 4 bits. La connexion 8-bit implique un
plus grand nombre de fils à utiliser, pour une meilleure vitesse de travail, par conséquent les connexions de 4 bits réduits le
nombre de fils, mais diminue la vitesse.

35
Les broches de LCD

36
37
V. Commande des moteurs par
un microcontrôleur
Moteur à courant continu

38
Application

39
Application 10:

40
Moteur pas à pas

41
Application10

42

Vous aimerez peut-être aussi