Récupérer le texte entré dans le moniteur série

Bonjour j'aimerais savoir comment récupérer le texte que l'on rentre dans le moniteur série !

available() t'indique s'il y a quelque chose dans le buffer, read() lit et supprime le premier caractère du buffer. Donc il faut simplement lire chaque caractère se trouvant dans le buffer, et le stocker dans un tableau de char :wink:

Ton programme devra lire le buffer aussi vite que possible, car le buffer ne peut contenir que 64 caractères.

Voici un petit exemple:

const size_t INPUT_SIZE = 128;
		
void loop()
{
	if ( Serial.available() > 0 )
	{
		static char input[ INPUT_SIZE ];
		static uint8_t i;
		
		char c = Serial.read();
		
		if ( c != '\n' && i < INPUT_SIZE - 1 )
			input[ i++ ] = c;
		else
		{
			input[ i ] = '\0';
			i = 0;
			
			Serial.print( "Commande recue: " );
			Serial.println( input );
		}
	}
}

La commande entrée dans le moniteur série doit se terminer par un '\n' (l'option "Nouvelle ligne" dans le moniteur série de l'IDE Arduino).

Tout d'abord, merci de votre réponse. Pouvez vous m'indiquer comment stocker dans un tableau de char, chaque caractère du "string" entré ?

Il vient de le faire ...

Forum qui bug, la dernière fois que j'ai édité mon post il n'y avait pas de réponses... Et là, la réponse est 20 minutes AVANT ma dernière édition :o

Donc oui il n'avait pas vu le bout de code :wink:

Merci a guix qui as résolus mon problème ! Et oui guix tu avait raison (par rapport au bug du forum)

Quelqu'un peut m'expliquer pourquoi mon arduino ne me renvoie pas "Commande recue !" lorsque je tape "cmd" dans le moniteur série ?? http://i.imgur.com/PGwet0G.png

Parce qu'en C/C++ on compare les strings avec la fonction strcmp ou strncmp :wink:

Donc il faut que je fasse ceci ? :

if (strcmp(input,"cmd") == 0){
Serial.println("Commande recue !");
}
else
{
Serial.println("Commande non-recue !");
}

Alors j'ai testé le code que j'ai entré ci-dessus, et il fonctionne !

C'est bien :stuck_out_tongue: