DOMOTIQUE 4EMES - PROGRAMMATION ARDUINO

3° PARTIE  -  LES ENTREES

Problématique :

DÉTECTER LA VARIATION DE LA VALEUR D'UN ACTIONNEUR RELIÉ SUR UNE ENTREE DE LA PLATINE ARDUINO.
LES TESTS : IF <--> ELSE

 

Noms des élèves du groupe     Classe ou groupe  

 

1 - Brochage de la platine "Affichage 8 dels"

Sur cette platine, les entrées sont reliées sur les broches (pattes) 10 - 11 - 12 - 13 de la platine Arduino

Sur cette platine, les sorties sont reliées sur les broches 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 de la platine Arduino

 

 

2 - Initialisation du programme (setup)

Le programme commencera obligatoirement les lignes ci-dessous

void setup()
{

pinMode( 10 , INPUT);
pinMode( 11 , INPUT);
pinMode( 12 , INPUT);
pinMode( 13 , INPUT);


pinMode( 0 , OUTPUT);
pinMode( 1 , OUTPUT);
pinMode( 2 , OUTPUT);
pinMode( 3 , OUTPUT);
pinMode( 4 , OUTPUT);
pinMode( 5 , OUTPUT);
pinMode( 6 , OUTPUT);
pinMode( 7 , OUTPUT);


digitalWrite( 0 , LOW );
digitalWrite( 1 , LOW );
digitalWrite( 2 , LOW );
digitalWrite( 3 , LOW );
digitalWrite( 4 , LOW );
digitalWrite( 5 , LOW );
digitalWrite( 6 , LOW );
digitalWrite( 7 , LOW );

}

 

Initialisation des broches 10 - 11 - 12 - 13  en ENTREES

PinMode (XX,INPUT) permet d'initialiser la broche XX en ENTREE

Initialisation des broches 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7  en SORTIES

PinMode (XX,OUTPUT) permet d'initialiser la broche XX en SORTIE

Mise à la valeur 0 des broches 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7  (les 8 diodes sont éteintes)

digitalWrite (XX,LOW) permet de mettre la broche XX à 0V (La Del sera éteinte)
digitalWrite (XX,HIGH) permet de mettre la broche XX à 0V (La Del sera allumée)

 

 

3 - Lecture de la valeur d'une entrée.

Pour lire la valeur d'une entrée nous allons utiliser la fonction digitalRead(BrocheXX)

Exemple d'un programme simple :
On veut que la DEL n°0 s'allume lorsque l'on appuie sur le bouton poussoir relié à la broche 10.
Lorsque l'on relâche le bouton poussoir, la diode s'éteint.

void loop()
{
if (digitalRead( 10))
{

digitalWrite( 0 , HIGH );
}
else
{
digitalWrite( 0 , LOW );
}
}
 void loop()  {     --> Début de la boucle du programme :

if (digitalRead( 10)) {          --> Lecture de la broche 10 pour savoir si le bouton est appuyé - (note : if = si)

digitalWrite( 0 , HIGH );    --> si le bouton poussoir 10 est appuyé, allumage diode 0
}           --> on ferme le "if"
else {   --> else = si non c'est à dire dans notre cas si le bouton poussoir n'est pas ou n'est plus appuyé

digitalWrite( 0 , LOW );    --> on éteint la DEL n°0
}           --> on ferme le "else"
}           --> on ferme la boucle et on revient au début du loop

 

 

4 - Test du programme

4-1 - Lancez le logiciel Arduino (Bouton Démarrer --> Tous les programmes --> Pédagogie --> Technologie --> Arduino)

4-2 - Copiez/Collez tout le programme ci-dessus dans la fenêtre d'édition du logiciel

(Attention copiez uniquement le texte, pas le cadre)

4-3 - Testez le programme. Si le résultat n'est pas satisfaisant, renouvelez l'opération...

 

Explique par un petit texte le résultat obtenu.

 

5 - Modification du programme

A partir du programme étudié que vous retrouvez ci-dessous, apportez les modification nécessaires afin que le programme réponde au cahier des charges suivant :

On veut que les DELs n°0-1-2-3-4-5-6-7 s'allument lorsque l'on appuie sur le bouton poussoir relié à la broche 11.
Lorsque l'on relâche le bouton poussoir, toutes les diodes s'éteignent.

 

 

6 -  Le téléversement du programme dans le module Arduino

6-1 - Lancez le logiciel Arduino (Bouton Démarrer --> Tous les programmes --> Pédagogie --> Technologie --> Arduino)

6-2 - Copiez/Collez tout le programme ci-dessus dans la fenêtre d'édition du logiciel

(Attention copiez uniquement le texte, pas le cadre)

6-3 - Testez le programme. Si le résultat n'est pas satisfaisant, modifiez votre programme...

 

 

Le programme a-t'il fonctionné du premier coup ?

Si non, avez-vous réussi à le corriger ?

Et dans ce cas, d'où venait le problème ?

Appelez le professeur pour lui montrer que vous avez réussi.

 

Validez une seule fois et attendez pour enregistrer correctement votre travail.