Défi 3 – Réaliser son premier programme
Défi : Lire et afficher la valeur (ON ou OFF) du bouton poussoir (montage du défi 1).
Note : Ce petit projet (capteur d’humidité du sol) offre de belles possibilités pour débuter avec Arduino, car la création (compréhension) du capteur avec des clous (univers technologique) et la saisie de données font un très bon tour d’horizon de la robotique Arduino.
Programmation : déclaration des constantes et variables, forme de base d’un programme, initialiser un programme, lire une valeur avec digitalRead, écrire une valeur avec Serial.begin et Serial.print
Liens PFEQ : Prise de mesure (DDP) dans un circuit.
Le présent défi est une suite du montage réalisé dans le défi précédent. Mais cette fois, nous allons prendre une mesure dans le circuit et programmer Arduino pour afficher cette mesure.
Montage
Schéma électrique
Maintenant que le montage est fait, nous devons programmer Arduino. Comme ci-dessus, nous vous suggérons Ardublockly (ou Blockly@rduino) pour ce faire.
Le programme doit lire la valeur de la broche 2 (celle connectée à la sortie de l’interrupteur) puis l’envoyer sur le port série (moniteur série).
Le programme (blocs) ressemblera donc à ceci (ArduBlockly) :
Le programme (blocs) ressemblera donc à ceci (Blockly@rduino) :
La vidéo ci-dessous explique la procédure pour créer le petit programme ci-haut et donne quelques conseils d’utilisation de Blockly@rduino.
Attention! Les briques utilisées ne sont pas tout à fait les mêmes à la suite à d'une mise à jour du logiciel, mais le principe est le même.
Une vidéo pour débuter avec ArduBlockly
Voir le montage et le programme dans le simulateur de circuits TinkerCad : https://www.tinkercad.com/things/2z37dC4oSms
Un peu de théorie à propos de la programmation Arduino
Le code Arduino d’origine est en mode texte. Voici à quoi ressemble le code (commenté) pour le présent défi :
void setup() //c'est ici qu'on initialise le programme. Cette boucle roule 1 fois { pinMode(2, INPUT);//On signifie que la broche 2 est en entrée Serial.begin(9600);//On démarre la communication avec le port série } //les parenthèses servent à ouvrir et fermer des boucles void loop()//c'est la boucle qui roule toujours { Serial.print("État du bouton =");//On écrit du texte dans le moniteur série Serial.print("\t"); Serial.print(digitalRead(2));//On écrit ensuite la valeur de la broche 2 Serial.println(";"); Serial.print("\t");//On change de ligne dans le moniteur série. Ce qui rend la lecture plus facile. }
N’ayez pas peur d’éditer le programme en mode texte, ça peut quelquefois être plus simple que les blocs de Blockly@rduino!