Vous êtes sur la page 1sur 4

B AC STI EE ET SIN

Programme de la STI 2D option SIN Fiche N°5 : le test « IF » (+ bouton poussoir)


TP de 1ère STI SIN
Rôle, intérêt et utilisation du test IF …. THEN ….. ELSE
Série 1 / l'analogique et le numérique

Série 2 / programmation informatique (C


version arduino)

AP N°2.1: Découverte de la I. Le test conditionnel IF


programmation informatique à
l'aide d'Arduino Le principe :

Présentation
SI Test vrai
Fiche N°1: découverte du Instruction 1 exécutée
système Arduino SINON
Fiche N°2 : les variables Instruction 2 exécutée
FIN SI
Fiche N°3 : les fonctions ou
« sous-programmes »
Instruction 3 (suite du programme)

Fiche N°4 : la boucle « FOR »

Fiche N°5 : le test « IF » (+ Voici un extrait de la documentation Arduino:


bouton poussoir)
if (conditional) and ==, !=, <, > (comparison operators)
Fiche N°6 : gestion d'une entrée
analogique if, which is used in conjunction with a comparison operator, tests whether a certain condition has been
reached, such as an input being above a certain number. The format for an if test is:
Fiche N°7 : la boucle « While »
if (someVariable > 50)
Fiche N°8 : Gestion d'un afficheur {
7 segments // do something here
}
AP N°2.2: Commande d'un robot
chenille par arduino The program tests to see if someVariable is greater than 50. If it is, the program takes a particular action. Put
another way, if the statement in parentheses is true, the statements inside the brackets are run. If not, the
AP N°2.3 Arduino: réalisation de program skips over the code.
programmes en C (Arduino)
The brackets may be omitted after an if statement. If this is done, the next line (defined by the semicolon)
Révisions / Remédiation / becomes the only conditional statement.
Exercices / évaluation
if (x > 120) digitalWrite(LEDpin, HIGH);
Série 3 : réaliser un site internet (HTML,
CSS, PHP, MySQL) if (x > 120)
digitalWrite(LEDpin, HIGH);
Mini projet

TP de terminale STI SIN if (x > 120){ digitalWrite(LEDpin, HIGH); } // all are correct

Cours de Terminale STI SIN


if (x > 120){
Cours 1ère STI EE digitalWrite(LEDpin1, HIGH);
digitalWrite(LEDpin2, HIGH);
TP de 1ère STI EE
}
Cours de Terminale STI EE

TP de terminale STI EE
The statements being evaluated inside the parentheses require the use of one or more operators:
Convertisseur binaire/decimal/hexa
Comparison Operators:
Projets (terminales)
x == y (x is equal to y)
Fiches d'aide (arduino et projet) x != y (x is not equal to y)
x < y (x is less than y)
Echanges européen x > y (x is greater than y)
x <= y (x is less than or equal to y)
La poursuite d'étude pour les SIN x >= y (x is greater than or equal to y)
Portes ouvertes
if / else
Sources
if/else allows greater control over the flow of code than the basic if statement, by allowing multiple tests to be
grouped together. For example, an analog input could be tested and one action taken if the input was less
than 500, and another action taken if the input was 500 or greater. The code would look like this:

if (pinFiveInput < 500)


{
// action A
}
else
{
// action B
}

....

en résumé cela donne :


les "….." représentent une équation logique. Exemples :
if (test …..) / / debut du test a>b
{ a >= b
instruction 1 a<b
}
a <= b
else
a == b (noter les deux = sinon a prend la valeur de b)
{
a!= b (si a différent de b)
instruction 2
} // fin du test

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!

Faire vérifier le câblage par le professeur.

Complétez le tableau suivant :

État du contact (ouvert ou


Appui sur BP Mesure à l'ohmmètre État logique (0 ou 1)
fermé)

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
Voici ce que dit la documentation Arduino:

digitalRead()

Reads the value from a specified digital pin, either HIGH or LOW.

Syntax : digitalRead(pin)
Parameters: pin: the number of the digital pin you want to read
Returns : HIGH or LOW

...

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
digitalWrite(boutonPin, HIGH) ; // activation du pullup de la broche en
entrée

Vous pouvez maintenant rédiger


les fiches de synthèse:
N°5: le test IF
N°7: gestion d'une entrée numérique
(voir remédiation)

Faites valider les fiches de


synthèse N°5 et N°7 par le
professeur
Régi par la licence Creative Commons: Licence d'attribution en partage identique et non commercial 4.0

« Précédent | Suivant »
Equipe STI 2D options EE et SIN du Lycée LaMache - Combe - Verilhac - Boiron - Varenne
Créé avec le logiciel libre eXeLearning