IF
L'instruction if ("si" en français), utilisée avec un opérateur logique de comparaison, permet de tester si une condition est vraie.
Syntaxe:
if (condition)
{
// faire traitement
}
}
Exemple:
// si intensity>0 , allumer la LED
if (intensity > 120){
if (intensity > 120){
digitalWrite(LEDpin, HIGH);
}
IF..ELSE
Syntaxe:
if (condition)
{
// faire traitement 1
}
}
else
{
// faire traitement 2
}
}
Exemple:
// si intensity>120 , allumer la LED , sinon éteindre la LED
if (intensity > 120){
digitalWrite(LEDpin, HIGH);
} else
{
digitalWrite(LEDpin, LED);
}
if (intensity > 120){
digitalWrite(LEDpin, HIGH);
} else
{
digitalWrite(LEDpin, LED);
}
else peut contenir un autre test if, et donc des tests multiples, mutuellement exclusifs peuvent être réalisés en même temps.
Chaque test sera réalisé après le suivant jusqu'à ce qu'un test VRAI soit rencontré. Quand une condition vraie est rencontrée, les instructions associées sont réalisées, puis le programme continue son exécution à la ligne suivant l'ensemble de la construction if/else. Si aucun test n'est VRAI, le bloc d'instructions par défaut else est exécuté.
if (condition 1)
{
// faire traitement 1
}
}
else if (condition 2)
{
// faire traitement 2
}
}
else
{
// faire traitement 3
}
}
SWITCH..CASE
PARAMÈTRES:
var : variable dont vous vouler tester l'état .
default : si aucune autre condition vraie n'est rencontrée, le code default sera exécuté.
break : Sans une instruction break, l'instruction switch continuera à exécuter les expressions suivantes jusqu'à un rencontrer un break ou jusqu'à la fin du switch. L'instruction break indique à l'instruction switch d'arrêter de rechercher des conditions vraies, et fait sortir de la structure de choix.
Syntaxe:
switch (var) { // début de la structure
case valeur1: // cas 1
//faire traitement2 quand la variable est égale à 1 (càd si var == valeur1)
break;
// l'instruction break est en option
case valeur2: // cas 2
//faire traitement2 quand la variable est égale à 2 (càd si var == valeur2)
break;
// l'instruction break est en option
default: // cas par défaut
// si aucune condition n'est vraie, le code par défaut sera exécuté
// le cas default est optionnel (non -obligatoire)
}
case valeur1: // cas 1
//faire traitement2 quand la variable est égale à 1 (càd si var == valeur1)
break;
// l'instruction break est en option
case valeur2: // cas 2
//faire traitement2 quand la variable est égale à 2 (càd si var == valeur2)
break;
// l'instruction break est en option
default: // cas par défaut
// si aucune condition n'est vraie, le code par défaut sera exécuté
// le cas default est optionnel (non -obligatoire)
}
FOR
Il y a 3 parties dans l'entête d'une boucle for :
Syntaxe:
for (initialization; condition; incrementation){
// faire traitement }
Exemple:
// Eteint progressivement une LED en utilisant une broche PWM (impulsion)
int PWMpin = 10; // LED en série avec une résistance de 1k sur la broche 10
void setup()
{
// aucune initialisation nécessaire
}
void loop()
{
// boucle incrémentant la variable i de 0 à 255, de 1 en 1
for (int i=0; i <= 255; i++){
// impulsion de ratio HAUT/BAS fonction de i sur la broche 10
analogWrite(PWMpin, i);
delay(10); // pause de 10ms
} // fin de la boucle for
}
int PWMpin = 10; // LED en série avec une résistance de 1k sur la broche 10
void setup()
{
// aucune initialisation nécessaire
}
void loop()
{
// boucle incrémentant la variable i de 0 à 255, de 1 en 1
for (int i=0; i <= 255; i++){
// impulsion de ratio HAUT/BAS fonction de i sur la broche 10
analogWrite(PWMpin, i);
delay(10); // pause de 10ms
} // fin de la boucle for
}
WHILE
Syntaxe:
while (expression){ // tantque expression (booléenne) est vraie
// faire traitement }
Exemple:
var = 0;
while(var < 200){ // tant que la variable est inférieur à 200
// fait traitement...
var++; // incrémenter la variable
}
while(var < 200){ // tant que la variable est inférieur à 200
// fait traitement...
var++; // incrémenter la variable
}
DO..WHILE
Syntaxe:
do // faire
{
// traitement {
}while (condition); // tantque condition (booléenne) est vraie
Exemple:
var = 0;
do{ // faire
x++; // incrémenter x
serial.print("x=");
serial.println(x); // afficher la valeur de x
}while(x < 20); // tant que x est inférieur à 20
do{ // faire
x++; // incrémenter x
serial.print("x=");
serial.println(x); // afficher la valeur de x
}while(x < 20); // tant que x est inférieur à 20
BREAK
Syntaxe:
break ;
Exemple:
for (x = 0; x < 255; x ++) // boucle for comptant x de 0 à 255
{
// mettre une impulsion de largeur x sur la broche
digitalWrite(PWMpin, x);
// lire la valeur de la tension d'un capteur sur la broche
sens = analogRead(sensorPin);
// si la mesure est supérieure à un seuil, on sort de la boucle
if (sens > threshold){
x = 0;
break; // sortie de la boucle
}
delay(50); // pause de 50ms
}
{
// mettre une impulsion de largeur x sur la broche
digitalWrite(PWMpin, x);
// lire la valeur de la tension d'un capteur sur la broche
sens = analogRead(sensorPin);
// si la mesure est supérieure à un seuil, on sort de la boucle
if (sens > threshold){
x = 0;
break; // sortie de la boucle
}
delay(50); // pause de 50ms
}
CONTINUE
Syntaxe:
continue ;
Exemple:
for (x = 0; x < 255; x ++) // boucle for qui compte x de 0 à 255
{
if (x > 40 && x < 120){ // crée un saut en fonction de la valeur de x
continue; // l'instruction continue force à continuer
// la boucle sans exécuter les instructions
}
// les instructions suivantes sont ignorées
// lorsque continue; est prise en compte
digitalWrite(PWMpin, x); // met une impulsion de largeur x sur la broche
delay(50); // pause de 50ms
}
{
if (x > 40 && x < 120){ // crée un saut en fonction de la valeur de x
continue; // l'instruction continue force à continuer
// la boucle sans exécuter les instructions
}
// les instructions suivantes sont ignorées
// lorsque continue; est prise en compte
digitalWrite(PWMpin, x); // met une impulsion de largeur x sur la broche
delay(50); // pause de 50ms
}
RETURN
Syntaxe:
return ;
return valeur;
Exemple:
// fonction qui permet de comparer l'entrée d'un capteur à un seuil
int checkSensor(){ // fonction de type int
if (analogRead(0) > 400) { // si la valeur analogique du capteur > 400
return 1; // renvoie 1
else{
return 0; // renvoie 2
}
}
int checkSensor(){ // fonction de type int
if (analogRead(0) > 400) { // si la valeur analogique du capteur > 400
return 1; // renvoie 1
else{
return 0; // renvoie 2
}
}
Le mot-clé est pratique pour tester une section de code sans avoir à mettre en commentaire de larges section de code potentiellement source d'erreur de compilation et que l'on souhaite isoler :
void loop(){
// idée brillante de code à tester ici
return; // mot clé return
// le reste du programme qui pose problème ici
// ce code ne sera jamais exécuté...
}
// idée brillante de code à tester ici
return; // mot clé return
// le reste du programme qui pose problème ici
// ce code ne sera jamais exécuté...
}
GOTO
Syntaxe:
label:
goto label; // fait sauter le déroulement du programme au point label:
Exemple:
for(byte r = 0; r < 255; r++){
for(byte g = 255; g > -1; g--){
for(byte b = 0; b < 255; b++){
if (analogRead(0) > 250){ goto sortir;}
// plus d'instructions
}
}
}
sortir:
for(byte g = 255; g > -1; g--){
for(byte b = 0; b < 255; b++){
if (analogRead(0) > 250){ goto sortir;}
// plus d'instructions
}
}
}
sortir:
0 commentaires:
Enregistrer un commentaire