Communication entre arduino et un IHM

C’est un bon tuto effectivement :slight_smile:

Je trouve le tuto très intéressant !

J'ai essayé de relier les message reçu au port série de la manière suivante:

Serial.readBytes(msg_recu);
  if (msg_recu == 00)
  {
    run_tension_test = true ;
  }

Je pensais qu'avec cette méthode, l'arduino pourrait lire le message reçu et lancer le test mais la première ligne de ce code pose problème...

Je crois que j'ai trouvé la bonne commande maintenant.

int msg_recu = Serial.available();
  if (msg_recu == 00)
  {
    run_tension_test = true ;
  }

Est ce que vous êtes d'acord avec moi ? :slight_smile:

non...

Serial.available() dit combien d'octets sont disponibles en lecture....

qu'est-ce que vous allez envoyer sur le port série ?

avez vous lu le tuto ? pourquoi ne pas le mettre en application ?

Bonjour victorelec

Si c'est une String, il faut la convertir en int

int msg_recu_index = msg_recu.toInt();

Ensuite sélectionner l'action à exécuter en fonction de l'index de la commande (msg_recu_index) avec un switch (msg_recu_index)

switch (msg_recu_index)
{
	case 0:
		// Qu faire si commande = 0
		break;
	case 1:
		// Qu faire si commande = 1
		break;
	case 2:
		// Qu faire si commande = 2
		break;
	default:
		// Qu faire si commande inconnue
	break;
}

Cordialement
jpbbricole

Petite note si nécessaire: attention toInt() va retourner 0 s'il 'arrive pas à décoder un entier et donc tout message erroné fera exécuter la commande 0

En utilisant strtol() sur msg_recu.c_str() on aura plus de latitude pour détecter une erreur éventuelle.

idéalement on se passera de la classe String comme dans le tuto.

Bonjour J-M-L

Il est vrai que dans ce genre de "mécanique" il faut éviter "00" comme commande.
Mon propos était surtout de démontrer comment passer d'une String à une sélection de fonction avec switch.

Elle a le mérite d'exister, et fonctionne très bien pour gérer des commandes entre un utilisateur et l'Arduino.

Cordialement
jpbbricole

jusqu'à ce qu'elle ne fonctionne plus très bien comme déjà discuté :wink:

Mon tuto montre comment gérer des commandes et propose même le code pour cela en s'en passant et éviter tous les problèmes associés.

Bonjour @jpbbricole et merci pour votre message. C'est très intéressant ! j'en tiens compte :slight_smile:

OK, c'est noté. Merci :slight_smile:

En matière de développement informatique on arrive rarement à réaliser de grandes chose en restant cantonné dans son petit code personnel et ses petites habitudes, sans apprendre des autres.

Bonsoir hbachetti

En langage Arduino, j'ai quasiment tout appris des autres, mais il faut aussi avoir son libre arbitre et ne pas tout prendre des "experts".
Je fais partie des gens, comme tu dis, qui développent "sur le coin de la table", qui sont quand même la majorité des pratiquants de ce forum et je ne pense pas faire du mauvais travail.
Maintenant quand à réaliser de "grandes choses" je ne sait pas ce que ça veut dire.

Cordialement
jpbbricole

Ton refus d'appliquer les conseils des "experts" et d'apprendre d'eux tendrait à prouver le contraire.

Tout simplement des projets complexes, y compris monstrueux, et en équipe.

Je pense que dans un bureau d'étude, si tu étais intégré dans une équipe de développeurs chevronnés et rigoureux, tu ne tiendrais pas la semaine.
Dans un projet sérieux, ton code serait examiné par les autres membres de l'équipe, et critiqué. En cas de refus de ta part d'appliquer les conseils des gourous, tu serais rapidement mis au placard, sur des projets de seconde zone.
J'ai connu certaines personnes à qui c'est arrivé :woozy_face:

Bonsoir hbachetti

C'est ce genre de propos qui me fait penser que tu est totalement en dehors de la réalité de ce qu'est le monde de l'Arduino :woozy_face:.

Bonne soirée
Cordialement
jpbbricole

je suis simplement en plein dans la réalité du développement informatique. C'est mon métier.
Par contre, comme tu dis, je ne suis pas dans la réalité du bricoleur qui se contente de ses connaissances approximatives, et refuse par tous les moyens d'évoluer, par pure obstination.
Le monde ARDUINO appartient à ceux qui le font évoluer, pas à ceux qui restent campés sur leur petites positions personnelles.

Bonsoir à tous

dans le ou les mondes Arduino je vois quelques facilités qui sont un peu comme 'les petites roues des vélos'....vient en génaral le moment ou, pour aller plus loin , on se rend compte qu'on à intérêt à s'en passer.
L'envie de progresser, découvrir, explorer....me paraît coller parfaitement avec Arduino !!

Certaines recommandations que vous faites sont du mauvais travail (le forum a pour but l’entraide par le partage de bonnes pratiques et l’apprentissage) car vous savez pertinemment - puisque cela vous a été expliqué à de nombreuses reprises - que vous ne rendez pas service aux nouveaux en leur proposant certains codes (par exemple la concaténation de String dans un Serial.print())

Si vous pouviez donc adopter ces bonnes pratiques vos codes seraient plus pertinents.

Personnellement je conserve ce sujet dans mes archives :
https://forum.arduino.cc/t/softwareserial-not-reliable/879780/73
Si l'on jette un oeil au début, le demandeur soupçonne un problème de fiabilité de Serial. Ensuite au post #73 il conclut :

Moi aussi à 5 ans j'ai débuté comme ça :slight_smile: