Vous êtes sur la page 1sur 2

Université Sultan Moulay Slimane Informatique Industrielle

ENSA Béni Mellal Pr. Hamid OUANAN


Cycle d’Ingé. TDI S2 A.U. : 2021-2022

Manipulation 3

L’objectif de cette manipulation est d’assimiler le principe de fonctionnement des interruptions


par expérimentation. Une interruption, comme son nom l’indique, consiste à interrompre
momentanément le programme qu’un calculateur exécute pour qu’il effectue une autre tâche. Quand
cette tâche est terminée, le calculateur (ARDUINO dans notre cas) retourne à l’exécution du
programme et reprend à l’endroit exact où il l’avait laissé.

Cette autre tâche s’appelle le « programme d’interruption » ou la « routine d’interruption » ou encore


une ISR en anglais pour « Interrupt Service Routine ».

Il est très important que les ISR aient un temps d’exécution le plus court possible. On ne fera donc
aucun calcul compliqué et aucun appel à des fonctions longues comme un affichage sur un écran
LCD.

Il existe plusieurs sources d’interruption, on dit également vecteur d’interruption, sur l’AVR
ATmega 328P qui équipe l’Arduino Uno, 26 au total. Nous allons seulement nous concentrer sur
celles que nous pouvons utiliser dans nos manipulations. Il s’agit des interruptions liées au
changement de l’état de tension présente sur une broche numérique qui sont donc ce que l’on appelle
des interruptions externes. Les interruptions liées au timers, des compteurs internes à l’Arduino qui
permettent de compter le temps de manière précise sont également intéressantes et feront l’objet de
cet exercice.

Soit le schéma électronique suivant :

1
1) Ecrire un programme qui permet de faire un chenillard sur les LEDs D1, D2 et D3 (T=300 ms).
2) Ecrire un programme qui permet de copier les états des boutons poussoir (B1, B2 et B3)
respectivement sur les LEDs (D1, D2 et D3).
3) Maintenant, essayer de modifier le programme de tel sorte à contrôler l’état fixe des LEDs (D1,
D2 et D3) par les boutons poussoir (B1, B2 et B3)
Remarque : (premier appuie sur Bx allume la LED Dx, deuxième appui éteint la LED)
4) Maintenant, connecter B1 avec la broche INT0 (PD2). Contrôler l’état de la LED D1 (premier
appuie sur B1 allume la LED D1, deuxième appui éteint la LED) tout en gardant un clignotement
de D2 et D3 d’une période de 2 secondes (dans la boucle principale).
5) Ecrire un programme qui permet de faire un clignotement sur les LEDs D1, D2 et D3 (T=250 ms)
en utilisant le Timer 1 de l’Atmega 328P
6) Vérifier le bon fonctionnement du montage par simulation sous PROTEUS/ISIS
7) Câbler le schéma de la manipulation sur la maquette d’essai et vérifier le bon fonctionnement
pratiquement
8) Modifier le programme de tels sorte à avoir chenillard sur les LEDs D1, D2 et D3 (T=100 ms).
a. Vérifier le fonctionnement par simulation ?
b. Valider votre programme sur maquette d’essai ?
9) On va reprendre le système des feux tricolore de la manipulation 2. Développer un programme
qui permet de garder le même fonctionnement des feux de circulation proposer précédemment
tout en ajoutant le mode nuit, dans ce mode seulement la LED orange clignote (Vert et Rouge
sont éteint) avec une fréquence de 4 Hz. Le passage du mode normale au mode nuit se fait par
un appui sur le bouton poussoir B0 (INT0).

Vous aimerez peut-être aussi