Exercice 1) {2LEDs_millis}
On a un Arduino avec deux LEDs L1 et L2 branchées respectivement sur les pates 2 et 4
Donner le programme qui fait clignoter les deux LEDs à des rythmes différents :
L1 doit changer d'état tous les 537ms
L2 doit changer d'état tous les 1370ms
Exercice 2) {Analog-4-LCD}
On a un Arduino avec :
4 sources analogique Branchées sur les entrées analogiques A0, A1, A2, A3
Un afficheur LDC_I2C branché sur le bus I2C
Donner le programme qui (Chaque ½ seconde) mesure les 4 entrées et affiche les valeurs en volts sur
l'afficheur LCD
3.45 2.27
1.25 4.18
Exercice 3) {Serial_Control}
On a un Arduino avec :
2 LEDs branchées sur les pates 8 et 13
Un moniteur série sur le port série
Un potentiomètre sur l'entrée A5
RXD
LED2 LED1 TXD
?
RTS
CTS
13
12
10
11
9
8
7
6
5
4
3
2
1
0
PB4/MISO
PB0/ICP1/CLKO
AREF
TX PD1/TXD
RX PD0/RXD
PD7/AIN1
~ PD6/AIN0
PD5/T1
~ PD3/INT1
PD2/INT0
PB5/SCK
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PD4/T0/XCK
~
DIGITAL (~PWM)
ATMEGA328P-PU
50%
microcontrolandos.blogspot.com
PC4/ADC4/SDA
PC5/ADC5/SCL
ANALOG IN
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
RESET
A0
A1
A2
A3
A4
A5
Réalisez le programme qui écoute le port série :
S'il reçoit 'A' il allume LED1
S'il reçoit 'B' il éteint LED1
S'il reçoit 'C' il allume LED2
S'il reçoit 'D' il éteint LED2
S'il reçoit 'E' il mesure la tension sur A5 et affiche le résultat sur le moniteur série
Exercice 4) {Button_PWM_LED}
On désire contrôler la luminosité d'une LED à l'aide d'bouton poussoir. La LED est branchée sur la
pate 10 et Le bouton sur la pate 3. Au départ la LED doit être éteinte,
Au premier clic du bouton, on génère un signal PWM de rapport cyclique 4/17 sur la pate 10,
Au deuxième clic du bouton, on génère un signal PWM de rapport cyclique 8/17 sur la pate 10,
Au troisième clic du bouton, on génère un signal PWM de rapport cyclique 12/17 sur la pate 10,
Au quatrième clic du bouton, on génère un signal PWM de rapport cyclique 16/17 sur la pate 10,
Au cinquième clic du bouton, on éteint la LED (on est revenu à l'état initial),
Exercice 5) {Clic_Counter}
On a un Arduino avec 2 bouton et un afficheur LCD
Donner le programme qui réalise les tâches suivantes :
o Si on clique sur B1 on incrémente une compteur (Variable de comptage)
o Si on clique sur B2 on décrémente le compteur
o La valeur du compteur doit être affichée toute les secondes. Ne pas utiliser delay() pour éviter
de rater des clics
o Donner le schéma de branchement et tester sur Proteus Isis
Exercice 6) {Chenille_2BP_Normal} {Chenille_2BP_ADP}
On branche 8 LEDs sur les pattes D0 à D7 et deux boutons poussoirs B1 et B2 sur les pates D8 et D9
Programme qui réalise le fonctionnement suivant :
Au départ il faut allumer une LED et commencer à surveiller les boutons
Si on clique sur B1, la LED allumée se décale à gauche
Si on clique sur B2, la LED allumée se décale à gauche
On réalisera deux versions :
o La version {Chenille_2BP_Normal} utilisera les E/S normalement : pinMode(),
digitalWrite()
o La version {Chenille_2BP_ADP} utilisera l'Accès direct aux ports
Exercice 7) {Vumetre_2BP_8LED}
On branche 8 LEDs sur les pattes D0 à D7 et deux boutons poussoirs B1 et B2 sur les pates D8 et D9
Programme qui réalise le fonctionnement suivant :
Au départ toutes les LEDs sont éteintes
Si on clique sur B1, on allume une nouvelle LED en commençant à D0
Si on clique sur B2, on éteint la dernière LED allumée
Exercice 8) {Chenille_2BP_AR_Normal} {Chenille_2BP_AR_ADP}
On branche 8 LEDs sur les pattes D0 à D7 et deux boutons poussoirs B1 et B2 sur les pates D8 et D9
Programme qui réalise le fonctionnement suivant :
Au départ il faut allumer la LED D0 et commencer à surveiller les boutons
Si on clique sur B1, la LED allumée doit faire un aller-retour (rythme 1s)
Si on clique sur le bouton B2, la LED doit faire deux allers-retours (rythme 0.5s)
On réalisera deux versions :
o La version {Chenille_2BP_AR_Normal} utilisera les E/S normalement : pinMode(),
digitalWrite()
o La version {Chenille_2BP_AR_ADP} utilisera l'Accès Direct aux Ports
Exercice 9) {Simul_SR04}
Programme qui :
Attend une impulsion positive sur la pate 8,
Après le front descendant, il attend 20 µs puis génère une impulsion de 2ms sur la pate 9
9
2ms
Exercice 10) {HC-SR04}
Programme qui génère une impulsion positive de largeur 10µs sur la pate 8. Ensuite il mesure la
largeur de l'impulsion reçue sur la pate 9 et affiche le résultat sur le moniteur série. L'opération sera
répétée toutes les 1/2 secondes.
Exercice 11) {frequencemetre}
On branche un signal carré sur la pate 2.
Donner le programme qui mesure la fréquence et l'affiche sur le moniteur série
L'opération sera répétée toutes les 1/2 secondes.
Exercice 12) { 1bouton_1LED_edge_rebond}
On a un bouton qui présente des rebonds au moment du clic
Donner le programme qui contrôle une LED à l'aide de ce bouton en tenant compte des rebonds
50ms max
Exercice 13) { motor_CC_L298_F5_R7}
On désire contrôler un moteur CC à l'aide d'un Arduino et d'un pont en H du type L298.
1) Donner le schéma de branchement
2) Donner le programme qui :
Au départ, moteur arrêté
Fait tourner le moteur dans le sens Avant pendant 5 secondes
Arrêt pendant 2 secondes
Fait tourner le moteur dans le sens Arrière pendant 7 secondes
Arrêter le moteur
Exercice 14) { motor_CC_L298_start_stop}
On désire contrôler un moteur CC à l'aide d'un Arduino et d'un pont en H du type L298.
3) Donner le schéma de branchement
4) Donner le programme qui :
Au départ, moteur arrêté
Accélérer graduellement (sens Avant) jusqu'au maximum. La durée d'accélération doit être
entre 7 et 10 secondes
Ralentir graduellement jusqu'à l'arrêt. La durée de ralentissement doit être entre 7 et 10
secondes
Attendre 5 secondes et refaire la même opération dans l'autre sens.
Exercice 15) { stepper_AR_10_25}
On désire contrôler un moteur Pas-à-pas à l'aide d'un Arduino et d'un module ULN2008. Le moteur a
un pas de 1.8°
1) Donner le schéma de branchement
2) Donner le programme qui permet de :
a. Faire un tour entier en 10 secondes
b. Attendre 1 seconde
c. Faire un tour entier dans l'autre sens en 25 secondes
Exercice 16) {Serial_string_LED}
On a un Arduino avec une LED sur la broche 13
Donner le programme qui écoute le moniteur Série. Quand il reçoit un message sous forme d'un
string, il cherche des mots clé dans le message :
o Si le message contient le mot clé LED_ON, on allume la LED
o Si le message contient le mot clé LED_OFF, on éteint la LED
Exercice 17) {Serial_String_Control}
On a un Arduino avec :
Une LED sur la broche 13
Un moteur CC avec son driver L298 sur les broches 9 (ENA), 8 (IN1) et 7 (IN2)
Un servomoteur sur la broche 10
Donner le programme qui écoute le moniteur Série. Quand il reçoit un message sous forme d'un
string, il cherche des mots clé dans le message :
o Si le message contient le mot clé LED_ON, on allume la LED
o Si le message contient le mot clé LED_OFF, on éteint la LED
o Si le message contient le mot clé G_UP, on fait tourner un moteur CC dans le sens 'Avant'
pendant 5 secondes
o Si le message contient le mot clé G_DOWN, on fait tourner un moteur CC dans le sens 'Arrière'
pendant 5 secondes
o Si le message contient le mot clé D_OPEN, on envoie le servomoteur à la position 90°
o Si le message contient le mot clé D_CLOSE, on ramène le servomoteur à la position 0°