Programmation Partie 2
Après avoir compris la structure de base de notre programme et comment stocker des valeurs, nous devons étudier comment interagir avec les composants de nos circuits.
Input
Une opération d'entrée est une opération où nous lisons ou recevons des données d'un composant dans notre circuit - un capteur. Comme indiqué dans la section Circuits , différents capteurs peuvent avoir des signaux numériques ainsi que des signaux analogiques.
Signal | Instruction Arduino | Explication |
---|---|---|
Analogique | format@@0 analogRead(pin) | Retourne un entier compris entre 0 et 1023 lu sur la broche `` |
Numérique | Lecture numérique(pin) | Retourne soit 0 (LOW) soit 1 (HIGH) lu sur broche |
Exemple
// Lit la valeur à partir d'un bouton connecté à la broche numérique 2
buttonState = digitalRead(2);
// Lit la valeur à partir d'un capteur connecté à la broche analogique A3
sensorReading = analogRead(A3) ;
Sortie
Inversement, une opération de sortie est celle où nous envoyons des données à un composant de notre circuit - un actionneur.
Signal | Instruction Arduino | Explication |
---|---|---|
Analogique | analogWrite(broche, valeur) | Envoie une valeur comprise entre 0 et 1023 à broche |
Numérique | digitalWrite(broche, valeur) | Envoie soit 0 (LOW) soit 1 (HIGH) à broche |
Exemple
// Envoi d'un signal HIGH (identique à la valeur 1) à la broche 3
digitalWrite(3, HIGH);
// Envoi d'un état de 123 à la broche A1
analogWrite(A1, 123) ;
Prise de décision
Pour implémenter la prise de décision dans la programmation, nous utilisons les conditions. Ils nous permettent de déterminer ce qui doit se passer (qui devrait être exécuté) en fonction des conditions que nous définissons.
Syntaxe
// Un simple if conditionnel
if (condition) {
// Instructions to be executed only if condition is true
}
// if-else conditionnel
// utilisé lorsque nous vérifions deux issues possibles d'une condition
if (condition) {
// Instructions to be executed if condition is true
} else {
// Instructions to be executed if condition is false
}
// if-else-if conditional
// used when we check for more than two possible outcomes of a condition
if (condition1) {
// Instructions to be executed if condition1 is true
} else if (condition2) {
// Instructions to be executed if condition1 is false but condition2 is true
} else {
// Instructions to be executed if all conditions are false
} }
Là où la condition
peut généralement être l'une des suivantes :
Opérateur | Libellé | Exemple |
---|---|---|
== | Égalité | buttonState == BAS |
!= | Inégalité | buttonState != BAS |
> | Supérieur à | Lecture du capteur > 300 |
>= | Supérieur ou égal à | Lecture capteur >= 300 |
< | Moins de | Lecture du capteur < 300 |
< | Inférieur ou égal à | Lecture capteur <= 300 |
Série
Une fonctionnalité de programmation très importante que nous utiliserons a trait à l'obtention d'informations de l'Arduino lorsque notre programme est en cours d'exécution. Le port série fournit cette communication et nous n'avons pas besoin de créer un circuit pour elle.
Configuration
void setup() {
// Initialise le port série et le configure à la vitesse de transfert de 9600 bits par seconde
Serial.begin(9600);
}
Manipulation
void loop(){
// Affiche la lecture depuis A0 toujours à une nouvelle ligne
Serial. rintln( analogRead(A0) );
// Attendez 0. secondes (500 millisecondes) avant d'exécuter à nouveau la fonction de boucle
retard(500);
}
Délai
Comme nous l'avons vu dans le dernier exemple, la fonction delay()
peut être utilisée pour mettre en pause l'exécution de notre programme pour un temps spécifié.
Syntaxe retard(nombre_de_millisecondes)
Exemple: retard(1000) pour une pause de 1sec, retard(5000) pour 5secs, retard(50) pour 50 millisecondes
Cela peut être utile chaque fois que nous avons besoin d'une pause entre l'exécution des instructions et il est communément placé comme dernière instruction dans la fonction boucle pour fournir une pause avant de l'exécuter à nouveau.