Le test « IF » (+ bouton poussoir)
Rôle, intérêt et utilisation du test IF …. THEN ….. ELSE
I. Le test conditionnel IF
Le principe : SI Test vrai Instruction 1 exécutée SINON Instruction 2 exécutée FIN SI Instruction 3 (suite du programme) |
![]() |
||||||
|
|||||||
en résumé cela donne : | |||||||
if (test …..) / / debut du test { instruction 1 } else { instruction 2 } // fin du test |
les "….." représentent une équation logique. Exemples :
|
II. Application : appui sur un bouton poussoir
Objectif du programme : la led s'allume si on appuie sur un bouton poussoir (quand on relâche elle s'éteint)
Principe:
- On va rajouter un bouton poussoir que l'on va raccorder sur l'entrée numérique (digital) n° 2.
- On va utiliser un test conditionnel IF
1. Préliminaire : on va tester le bouton poussoir (BP) Placer le BP sur le support de test (bien le mettre au milieu). Ensuite on va prendre un multimètre en position ohmmètre et on va tester le résistance (OL= over limit = résistance infinie c'est à dire contact ouvert, quelques ohm ou zéro ohm = contact fermé). Remarque: le support de test est une breadboard: les explications de l'utilisation de cette plaque de prototypage sont données sur la fiche "breadboard"). Aller la lire avant de faire le câblage! |
![]() |
Complétez le tableau suivant :
Appui sur BP |
Mesure à l'ohmmètre |
État du contact (ouvert ou fermé) |
État logique (0 ou 1) |
OUI |
|||
NON |
2. Le montage complet
Le schéma de raccordement : | Schéma électronique : | |
![]() |
![]() |
![]() |
A quoi sert la résistance de 10kΩ? Lorsqu'une broche numérique d'Entrée n'est pas connectée, le niveau présent sur cette broche d'entrée est instable et la LED dans notre programme clignoterait de façon aléatoire. Ceci est du au fait que l'entrée est "flottante", c'est à dire qu'elle n'a pas de connexion matérielle au +5V ou à la masse, et elle oscillera de façon aléatoire entre le niveau HAUT et le niveau BAS. C'est pour cette raison qu'il faut mettre une résistance de "rappel au plus" (appelée aussi résistance de tirage ou pull-up) dans le montage du BP sur la broche numérique en entrée. |
Faire le petit câblage (le arduino doit être débranché du cordon USB) et faites vérifier par le professeur.
3. Le programme Arduino
|
|||
en résumé: digitalRead ( n° de broche) lit l'état de l'entrée numérique (Tout Ou Rien). |
Ouvrir le fichier « clign_led_BP.txt », récupérer le programme contenu dans le fichier et testez le.
Compléter l'algorithme du programme :
Expliquer en détail le fonctionnement du programme (rôle de telle instruction, ...)
Que constatez-vous ? L'objectif de fonctionnement est-il atteint ? Si ce n'est pas le cas expliquez ce qui se passe (à partir du schéma électronique).
Proposez et essayez une modification du programme. Faire valider par le professeur.
![]() |
Le microcontrôleur utilisé sur la carte Arduino dispose d'une résistance interne qu'il est possible d'activer pour réaliser le Pull-up (rappel au plus), ce qui permet de se dispenser d'une résistance externe ! Dans le programme Arduino cela donne: Le seul changement se situe dans le Setup(): pinMode(boutonPin, INPUT); //met la broche en entree |
![]() |
III. Simulation
Nous allons maintenant faire la même chose que précédemment mais en simulation.
Pour la simulation nous utilisons le logiciel Proteus. Toutes les informations pour utiliser le logiciel sont dans le document : utilisation de Proteus.pdf
Les bibliothèques Arduino pour Proteus sont ici (les télécharger puis les dézipper puis les copier à l'endroit indiqué par la documentation)
Rappel : une sortie TOR Arduino c’est 40mA max (idéalement plutôt 20 mA)
Étape 1 : reprendre le projet Proteus créé pour la fiche 1 (le système Arduino)
Étape 2 : modifier le schéma en rajoutant un bouton poussoir pour obtenir le schéma suivant (vous laisserez R4 à la valeur trouvée dans la fiche 1):
Étape 3 : implanter le programme précédent (clign_led_BP.txt)
Étape 4 : simuler et vérifier que tout fonctionne
Étape 5 : modification et amélioration
Nous allons mettre en route, en même temps que la led, un moteur (moteur à courant continu de 12V, courant de plusieurs centaines de milliampères), relié sur la broche TOR 10
Modifier votre simulation afin d’avoir ceci :
Rajouter un volt-mètre aux bornes du moteur
Étape 6 : modifier votre programme pour qu’il commande en même temps la led et le moteur et implanter ce programme dans proteus. Essayer.
6.1 Le moteur tourne-t-il à la bonne vitesse (vers 400 tr/min) ?
6.2 Quelle en est la raison d’après vous (en fait il y en a deux) ?
Étape 7 : on va régler nos problèmes de courants et de tensions en rajoutant un relais qui fera l’interface entre les deux tensions (le relais est placé entre la carte arduino et le moteur).
Si vous ne vous rappelez plus ce qu’est un relais (ou un contacteur), il y a une fiche explicative ici : le_relais_lectromcanique.html
7.1 Modifier votre schéma pour y rajouter un relais (voir doc technique de proteus pour le choix du relais)
7.2 Lancer la simulation et vérifiez que tout fonctionne (faire valider par le professeur et mettre une copie d’écran dans votre compte-rendu)
Remarque : on verra dans le chapitre sur l’amplification qu’un transistor est nécessaire entre la carte arduino et le relais (ainsi qu’une diode de protection dite « de roue libre ») .