[DEBUTANT] Couleur à la demande

Le forum du Snootlab Starter Kit

[DEBUTANT] Couleur à la demande

Message non lude boulou » Sam 3 Nov 2012 23:26

Bonjour!

Je débute en programmation et en Arduino, et j'ai reçu un starter kit hier. J'ai fait quelques tutos jusque là, mais j'aimerais en apprendre plus sur la librairie Serial. En effet, j'aimerais programmer un montage comme celui en fichier joint.
Le but serait que, quand on rentre le nom d'une couleur (blanc, rouge, vert, bleu, cyan, magenta, jaune) dans le moniteur série, la carte Arduino allume les LEDs adéquates. Quel serait donc le bout de code qui permettrait de récupérer le nom de la couleur que l'utilisateur saisit, et s'il correspond à une des couleurs prédéfinies, alors les LEDs correspondantes s'allument!
Pour l'instant mon code ressemble à ça:
Code: Tout sélectionner
int redPin = 12;                  // La LED rouge est connectée au pin 12
int greenPin = 11;                // La LED verte est connectée au pin 11
int bluePin = 10;                 // La LED bleue est connectée au pin 10

void setup()                      // Début du sketch
{
  Serial.begin(9600);             // Initialisation de la librairie Serial à 9600 bps
  pinMode(redPin, OUTPUT);       // Indique que le pin de la LED rouge est une sortie
  pinMode(greenPin, OUTPUT);     // Indique que le pin de la LED verte est une sortie
  pinMode(bluePin, OUTPUT);      // Indique que le pin de la LED bleue est une sortie
}


void loop()                      // Initialisation de la boucle
{
  digitalWrite(redPin, HIGH);    // LED rouge activée
  digitalWrite(greenPin, LOW);   // LED verte désactivée
  digitalWrite(bluePin, LOW);    // LED bleue désactivée
  delay(1000);                   // Attente de 1000 ms
  digitalWrite(redPin, LOW);     // LED rouge désactivée
  digitalWrite(greenPin, HIGH);  // LED vertee activée 
  digitalWrite(bluePin, LOW);    // LED bleue désactivée
  delay(1000);                   // Attente de 1000 ms
  digitalWrite(redPin, LOW);     // LED rouge désactivée
  digitalWrite(greenPin, LOW);   // LED verte désactivée
  digitalWrite(bluePin, HIGH);   // LED bleue activée
  delay(1000);                   // Attente de 1000 ms
}
Fichiers joints
photo-4.JPG
photo-4.JPG (43.35 Kio) Vu 2204 fois
boulou
 
Messages: 5
Inscription: Sam 3 Nov 2012 22:52

Re: [DEBUTANT] Couleur à la demande

Message non lude Stéphane » Mar 6 Nov 2012 17:37

Bonjour,

Pour cela, il y a généralement deux manières de faire.
Méthode 1 : Comparaison globale
L'utilisateur rentre une chaine de caractère, que vous comparez avec des chaines de caratères existantes, à l'aide de la fonction standard du langage C : strcmp
Exemple :
Utilisateur envoi "trololo".
Tests successifs avec les mots "vert", "violet", "blanc", "bleu", "rouge", etc. Si correspondance, alors déclencher les actions adéquates.

Méthode 2 : Caractère par caractère (validation en arbre)
Vous analysez le premier caractère rentré par l'utilisateur.
Si il correspond à un premier caractère valide (blanc, bleu, cyan, rouge, etc) vous comparez le second, et ainsi de suite pour déterminer le mot clé entré par l'utilisateur.
Exemple :
Utilisateur envoi "abricot".
- Premier caractère = "a" : pas de correspondance de couleur, fin de l'analyse.

Utilisateur envoi "vert".
- Premier caractère = "v" : coresspondance possible pour les mots "violet" et "vert". Test de la deuxième lettre.
Deuxième caractère = "e" : coresspondance possible pour le mot "vert" uniquement. Test du mot "vert", et actions en fonction de la validation ou pas.

Voila, bonne journée :)
Avatar de l’utilisateur
Stéphane
 
Messages: 179
Inscription: Lun 2 Mai 2011 09:40

Re: [DEBUTANT] Couleur à la demande

Message non lude boulou » Mar 6 Nov 2012 20:15

Merci beaucoup pour cette réponse très complète!!
J'ai beau rechercher, je ne trouve pas quel est la façon d'utiliser strcmp...
boulou
 
Messages: 5
Inscription: Sam 3 Nov 2012 22:52

Re: [DEBUTANT] Couleur à la demande

Message non lude telec16 » Mar 6 Nov 2012 21:09

Comme ça :
Code: Tout sélectionner
if(strcmp("chaine1", "chaine2") == 0)
{
  //choses à faire si les chaines corespondent
}
Avatar de l’utilisateur
telec16
 
Messages: 21
Inscription: Dim 4 Nov 2012 21:27

Re: [DEBUTANT] Couleur à la demande

Message non lude Stéphane » Mar 6 Nov 2012 21:20

Recherche google :

"language C strcmp" : lien

"arduino strcmp" : lien 1, lien 2

"arduino string" : lien 1

Voila :)
Avatar de l’utilisateur
Stéphane
 
Messages: 179
Inscription: Lun 2 Mai 2011 09:40

Re: [DEBUTANT] Couleur à la demande

Message non lude boulou » Mer 7 Nov 2012 09:08

Merci beaucoup! Je posterais mon code quand il sera fini!
boulou
 
Messages: 5
Inscription: Sam 3 Nov 2012 22:52


Retourner vers Starter Kit

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron