Problème de char

Bonsoir je reviens vers vous pour solliciter votre aide

Je cherche à comprendre comment récupérer un nombre entier
Dans mon programme je retrouve 255 sur le moniteur série
Mais c'est bien juste 3 caractères
Moi je vous le nombre

String monitserie = "";
void setup() {
Serial.begin(9600);
#define red
}

void loop() {
 char str[16];
 if (Serial.available())
 {
 monitserie = Serial.readString();
 int nbCaract =  monitserie.length();
 monitserie = monitserie.substring(0, nbCaract-2);   // Pour supprimer les caractères cachée \n (Lf 0xA)  \r (Cr 0xD)

for(int rouge = 4 ; rouge< 7 ; rouge++)

 Serial.print((int) str[4]);

 }
}

J'ai oublier je rentre sur le moniteur série
Rgb(255,213,165)
Et ce sont les trois nombres que je voudrais récupérer

Salut,

je ne vous rien qui convertisse une chaine en nombre dans ton code. Tu veux parser une chaine dans le genre "rgb(a,b,c)"?

Bonjour,

Tu peux utiliser strtok() pour séparer les trois valeurs puis atoi() pour les convertir en numérique

Evites d'utiliser des Strings, utilises plutôt des c_strings, c'est à dire des tableaux de caractères terminés par \0

En fait j'adapte mes programmes à ce que je maîtrise à peu près

Je cherche à faire varier les couleurs d'un bandeau led ws2812b
Sur une carte méga branché à un raspberry

J'utilise la fonction "colour picker" de node red
Dans le moniteur série je reçois
rgb (123,123,123)(les chiffres sont des exemples )
Côté arduino j'ai utilisé un sketch de l'exemple de la bibliothèque fastLED.h
Qui utilise des valeurs de 0 à 255
Donc je voudrais juste récupérer les 3 valeurs
Pour les utiliser dans le sketch

Pourquoi dois je éviter les Strings ?

strtok est tres pratique et utilise des tableaux de char. apres la classe string offre une interface de haut niveau qui est plus lourde pour l'arduino mais je ne vois pas trop d'inconvenient de l'utiliser si tu n'a pas de problematique de memoire et de vitesse.

tu dois decouper ta chaine en une commande et une liste de parametres. a toi de voir comment