LEÇON 12: Utilisation de “If” avec arduino

Dans notre projet de LED de la leçon 11, nous avons contrôlé la couleur de la LED en modifiant les lignes de code dans le programme. Comme vous le savez, vous voulez vraiment faire ce genre de chose en interagissant avec l’utilisateur via le port série. Ainsi, dans ce projet, nous allons demander à l’utilisateur de définir la couleur en indiquant sa couleur préférée dans le moniteur en série. Notez que dans notre nouvelle image ci-dessous, nous avons recouvert la LED d’une balle de ping-pong. Nous avons fait cela pour que la LED apparaisse mieux dans la vidéo, mais après l’avoir fait, je l’aime vraiment! Ça fait une petite lampe cool. Pour ce faire, créez un petit trou de la taille de la LED dans la balle de ping-pong, puis montez simplement la balle sur la LED. C’est un truc cool!

Ce projet utilise le même circuit que celui défini dans le projet 11. Nous allons simplement modifier le code.

Donc, pour ce projet, nous voullons que l’utilisateur entre la couleur souhaitée pour la LED. Ensuite, nous ferons passer la LED à la couleur demandée. Pour ce faire, nous devons apprendre une nouvelle commande de programmation appelée  condition “if” ou “if Statement”. La condition “if” comporte une clause ou un groupe de commandes entre un ensemble d’accolades. Il exécute ces commandes uniquement si une condition est remplie. Une condition “if” dans arduino ressemblerait à ceci:


if ( mettez votre condition ici) 

{

//mettez toutes vos commandes entre les accolades

}

Les commandes entre les accolades seront exécutées si la condition à l’intérieur de la parenthèse est vraie. Considérons que vous aviez deux variables, a et b. Disons que vous vouliez exécuter les commandes de la clause uniquement si a est > ou = à b. Dans ce cas, vous placeriez cette condition entre parenthèses et votre code ressemblerait à ceci:


if ( a>=b) {

put all your commands between the curly brackets

}

Arduino n’exécuterait le code que si la condition était vraie. Sinon, il sauterait à la première ligne de code après l’accolade de fermeture. Il existe un certain nombre de tests de condition différents pouvant être utilisés entre parenthèses:


a == b      // Teste si a est eqaul à b. Notez que vous devez utiliser deux signes égaux

a! = b      // Teste si a n'est pas égal à b.
a < b       // Teste si a est inférieur à b
a > b       // Teste si a est supérieur à b
a <= b      // Teste si a est inférieur ou égal à b
a >= b      // Teste si a est supérieur ou égal à b


Vous pouvez combiner plusieurs conditions en utilisant les opérateurs logiques «et» ou «ou». En arduino, le symbole pour l’opération “et” est && et le symbole pour l’opérateur “ou” est ||. (Ceci est le symbole au-dessus de la barre oblique inverse sur le clavier). Donc, vous pourriez avoir une condition où a est supérieur à b ET a est supérieur à c. Cela ressemblerait à:


if (a>b && a>c) {

put your commands here

}

OK, c’est comme ça que les déclarations et le travail conditionnel. Un élément clé est que vous devez vous rappeler que lorsque vous testez l’égalité dans une instruction if, vous utilisez deux signes identiques. Une des erreurs les plus courantes que je constate chez les élèves est d’oublier et d’utiliser un signe égal dans un conditionnel.

Ce que vous voudrez faire maintenant, c’est écrire un programme qui demandera à l’utilisateur de quelle couleur il souhaite que le voyant soit. Dans l’invite, faites-lui savoir que ses choix sont Rouge, Vert ou Bleu. Puis tournez la LED de cette couleur. Vous devriez également inclure un “test”. . . s’il ne choisit pas l’un des choix autorisés, il doit choisir à nouveau. Faites de votre mieux pour développer le code vous-même, mais si vous êtes bloqué, pointez à mon code ci-dessous. Vous ne devriez pas copier et coller mon code, mais simplement l’utiliser comme guide si vous êtes bloqué.


int redPin=11;                 //connecter&nbsp;le pied de la LED rouge sur 11
int greenPin=10;               //connecter le pied de la LED verte sur 10
int bluePin=6;                 //connecter le pied de la LED bleue sur 6
int brightness=255;            //Regler&nbsp;la luminosité à 75
String colorChoice;            //Sauvegarder le&nbsp;choix de couleur&nbsp;des utilisateurs

void setup()

{
//&nbsp;Mettez votre code d'installation ici, pour lancer une fois:

Serial.begin(9600);             //Allumer le port Serial
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);

}

void loop()

{
Serial.println("Quelle couleur voulez-vous? (red, green, or blue)"); //Invite l'utilisateur d'entrer sa couleur
while (Serial.available()==0) { }        //Attendre que l'utilisateur entre sa couleur
colorChoice = Serial.readString();

if (colorChoice=="red") {

analogWrite(redPin, brightness);       //Allumer le port rouge
analogWrite(greenPin, 0);              //éteindre le port vert
analogWrite(bluePin, 0);               //éteindre le port bleu
}

if (colorChoice=="blue") {

analogWrite(redPin, 0);                 //éteindre le port rouge
analogWrite(greenPin, 0);               //éteindre le port vert
analogWrite(bluePin, brightness);       //Allumer le port bleu
}

if (colorChoice=="green") {

analogWrite(redPin, 0);                      //éteindre le port rouge
analogWrite(greenPin, brightness);           //Allumer le port vert
analogWrite(bluePin, 0);                     //éteindre le port bleu
}

if (colorChoice!="red" && colorChoice!="green" && colorChoice != "blue")

{
Serial.println("Votre choix n'est pas valide, Essayez encore");
Serial.println("");
}

}

Maintenant, votre tâche consiste maintenant à avancer et à donner au programme davantage d’options pour les couleurs. Placez-le où vous pouvez allumer les LED rouge, verte, bleue, cyan, magenta, jaune, orange, violette et rose. Faites des recherches sur Internet pour vous assurer de choisir vraiment ces couleurs. Une partie de votre performance sera fionction de votre capacité à faire correspondre les couleurs.

Leave a Reply

Your email address will not be published. Required fields are marked *