Étape 5: Si Déclaration
Je vais utiliser le même circuit que précédemment et allumer la LED en utilisant un if/else instruction. Le si la déclaration est un moyen très efficace de présenter le code de condition. Je vais utiliser le Sketch intitulé IfStatementConditional trouvé dans l’IDE Arduino sous File/Examples/05.Control.
Vous aurez besoin d’un Arduino, un potentiomètre, un voyant et quelques fils de raccordement. Connectez la fiche centrale du potentiomètre à broche A0 (analogique 0) sur l’Arduino, puis le + ve engendrer le 5v sur l’Arduino et la - ve à la GND sur l’Arduino. Et branchez le + ve plomb de la LED pour D5 sur l’Arduino et la ve - conduire à GND.
Dans ce Sketch, la valeur de l’axe A0 sera imprimé sur le moniteur de la série et en même temps que la luminosité de la LED va changer quand on tourne le potentiomètre.
L’esquisse
const int analogPin = A0 ; broches que le capteur est attaché à
const int ledPin = 5 ; goupille de la LED associée au
const int seuil = 400 ; un seuil arbitraire qui est de l’ordre de l’entrée analogique
void setup() {}
pinMode (ledPin, sortie) ; initialiser les broches de la LED en tant que sortie :
Serial.Begin(9600) ; initialiser la communication série :
}
void loop() {}
int analogValue = analogRead(analogPin) ; lire la valeur du potentiomètre :
Si (analogValue > seuil) {/ / si la valeur analogique est assez élevée, allumer la LED :
digitalWrite (ledPin, HIGH) ;
}
else {}
digitalWrite (ledPin, basse) ;
}
Serial.println(analogValue) ; imprimer la valeur analogique :
Delay(1) ; délai entre les lectures de stabilité
}
Nous allons disséquer le croquis :
const int analogPin = A0 ;
const int ledPin = 5 ;
const int seuil = 400 ;
Comme d’habitude, nous commençons par les variables, cette fois-ci que j’ai opté pour utiliser « const int » en tant que type, ce qui signifie que la valeur des variables ne changera jamais.
- analogPin sera toujours attaché à la broche analogique 0
- ledPin sera toujours attaché à la broche numérique 5
- seuil, sera toujours à 400
void setup() {}
pinMode (ledPin, sortie) ;
Serial.Begin(9600) ;
}
Il n’y a rien de nouveau dans la configuration du Sub, nous avons mis la broche 5 de sortie étant donné qu’une LED attaché à elle et nous commençons la série monitor à 9600 bits/s
void loop() {}
int analogValue = analogRead(analogPin) ;
Si (analogValue > seuil) {}
digitalWrite (ledPin, HIGH) ;
}
else {}
digitalWrite (ledPin, basse) ;
}
Serial.println(analogValue) ;
Delay(1) ;
}
La première ligne dans la boucle Sub est la déclaration d’une variable locale du type int appelé analogValue, et nous lui assigner la valeur que nous lisons de la variable analogPin.
Si et if/else instructions :
Syntaxe :
- Si (condition) {exécuter la commande si la condition est remplie}
Syntaxe
- Si (condition) {exécuter la commande si la condition est remplie}
- else {exécuter une autre commande si la condition n’est pas remplie}
exemple :
Si (a > b) {digitalWrite (ledPin, HIGH);}
ou
Si (a > b) {digitalWrite (ledPin, HIGH);}
else {digitalWrite (ledpin2, HIGH);}
Chaque fois que nous utilisons un if instruction, nous cherchons à répondre à une certaine condition, exemple si « a » est plus grand que « b ». Et si le résultat est true alors que nous puissions exécuter tout ce qui se trouve entre les accolades. Si le résultat n’est pas vrai puis ne rien faire.
Maintenant, si vous utilisez un if/else instruction et le résultat n’est pas vrai, alors tout ce qui est sous « else » s’exécutera.
La meilleure façon de définir une condition est d’utiliser les opérateurs logiques et comparaison.
Opérateurs de comparaison :
Ils sont utilisés pour comparer les variables et les constantes contre l’autre pour vérifier si une certaine condition est remplie.
== Est égal à un == b contrôles si un est égal à b
! Ne = pas égal à une! = b vérifie si un n’est pas égal à b < moins d’un < b vérifie si un est inférieur à b > plus grand qu’un > b vérifie si un est plus grand que b < = moins remercie ou est égal à un < = b vérifie si une est moins d’ou est égal à b > = plus grand qu’ou égal à un > = b vérifie si un est plus grand qu’ou égal à b
Remarque : la différence entre =, ==. = est utilisé pour assigner une variable, un nombre ou une valeur, tandis que == est utilisé pour comparer deux variables.
Opérateurs logiques :
Opérateurs logiques sont utilisés pour comparer deux expressions et renvoie une valeur TRUE ou FALSE. Les opérateurs logiques sont AND(&&), OR(||) et pas (!).
Logique et si (a > b & & c < d) seulement vrai si les deux expressions sont vraies
Logique ou si (a > b || c < d) True si une ou les deux expressions est true
N’est pas logique si (! a > b) True uniquement si l’expression est false
Revenons à l’esquisse
Si (analogValue > seuil) {}
digitalWrite (ledPin, HIGH) ;
}
else {}
digitalWrite (ledPin, basse) ;
}
- Ici nous testons pour voir si l’analogValue est plus grand que le seuil : si (analogValue > seuil)
- Si alors allumer la LED: digitalWrite (ledPin, HIGH) ;
- Dans le cas contraire: {else}
- Avant de s’éteindre la LED: digitalWrite (ledPin, basse) ;
Serial.println(analogValue) : imprimer la valeur d’analogValue sur le moniteur de la série
Delay(1) : un retard infime de 1 milliseconde pour stabiliser la lecture