Affichage d'une Output Arduino sur une interface VB

Bonjour tout le monde, j'espère que vous vous portez bien.
Je reviens envers vous, car, dernièrement, j'ai testé pas mal de réponses qui ont été postées par des membres, que je leur remercie chaleureusement en passage, mais, malheureusement, ça n'a pas marché. Je ne sais pas si je n'ai pas bien saisi le concept ou bien je n'ai pas bien recherché.

Vous trouverez ci-dessous le code Arduino d'une fonction qui donne la main à l'utilisateur pour saisir un "Code d'erreur" et le sauvegarde dans un tableau. Ce que je voulais faire, c'est que, une fois le code saisi et sauvegardé, je veux l'afficher dans un Textbox (avec Read only=True) pour que celui ci, par la suite, soit sauvegardé dans une base de données (je me contente seulement de la 1ère partie du problème: Arduino-VB).

Pouvez-vous me donner quelques indices concernant les déclarations ? merci beaucoup!
Bon début de semaine :slight_smile:

 void menu_cause_code(){
for(i=0;i<10;i++)
  trait_cause_code[i]=' ';
    i=0;
                 do       {     if(i>=0 && i<10){
                                          //   Key2=customKeypad.waitForKey();
                                             Key2= NO_KEY;
	                                    while( (Key2 = customKeypad.getKey()) == NO_KEY );
                                          if(Key2!=NO_KEY)
                                          Key=Key2;
                                    
                                          if(Key!='*'&&Key!='#'&&Key!='A'&&Key!='B'&&Key!='C'&&Key!='D')
                                          { lcd.setCursor(i,3);
                                           lcd.print(Key);
                                            trait_cause_code[i]=Key;
                                           i++;
                                       }
                                           
                                          if(Key=='D')
                                          {lcd.setCursor(i,3);
                                            lcd.print(' ');
                                          trait_cause_code[i]=' ';
                                         i--;}
                                         
                                         if(i>9)
                                         i=9;
                                         if(i<0)
                                         i=0;
                                         
                                          }
                 
                 }while(Key!='*');
                 

                                    if(Key=='*')
                                    {
                                      EN=false;
                                      lcd.setCursor(0,2);
                                      lcd.print("config done!");
                                      Serial.print(trait_cause_code);
                                    
                                  }
                           
}

Salut,

  1. Faire un Nouveau Sujet ou le corriger avec les Balises... - Français - Arduino Forum

  2. c'est quoi le problème ?

Pour les balises code, c'est fait! Désolé si je n'ai pas bien respecté les normes !
En ce qui concerne mon problème, c'est que mon Output, stockée dans un tableau, doit être transférée vers un Textbox sur l'interface VB!
D'après ce que je sache, il faut faire une boucle consistant à envoyer chaque valeur appuyée sous arduino vers VB!
J'espère bien être plus ou moins clair!

Oui enfin j'avais compris plus ou moins la problématique général, mais où ça coince précisément ? T'as un soft VB ? Il reçoit bien ? Sous quelle forme ? Ou bien t'as pas d'appli ?

Bonjour,
Plus précisément, je suis coincé au niveau VB! Mes données sont stockées dans un tableau, comme c'est illustré par (trait_cause_code*).*
Le problème c'est que je ne sais pas quoi faire au niveau du Arduino pour que je puisse faire envoyer ces données à un textbox.
Autrement dit, dois-je ajouter une boucle au début de la fonction (while(Serial.available()>0) { les instructions de la fonction; } ? Et comment recevoir ces données et les afficher par VB ? dois-je faire une boucle de Try - Catch ou quoi au juste ?! Vraiment, je suis bloqué et saturé et je ne sais plus quoi faire!!
Merci beaucoup pour l'intérêt porté à mon problème!

http://forum.arduino.cc/index.php?topic=136009.0

J'ai déjà consulté ces deux liens dernièrement, mais, plus ou moins, ce n'est pas identique à mon besoin.
D'après ce que j'ai compris, côté Arduino, après avoir fait (trait_cause_code*=Key), je dois faire un Serial.println(trait_cause_code) pour envoyer la valeur stockée par le port Série.*
Mais, côté VB, que dois-je ajouter pour que je puis afficher ceci sur un textbox ?!
J'ai déjà initialisé dans le Form_load tous les paramètres (PortName, BaudRate, ...), je me suis bloqué dans la partie du Textbox !!!

Bonjour,
Sans passer par Arduino, comment faits-tu pour afficher un texte dans une texbox ?

HamzaLAMFAOUAR:
J'ai déjà consulté ces deux liens dernièrement, mais, plus ou moins, ce n'est pas identique à mon besoin.
D'après ce que j'ai compris, côté Arduino, après avoir fait (trait_cause_code*=Key), je dois faire un Serial.println(trait_cause_code) pour envoyer la valeur stockée par le port Série.*
Mais, côté VB, que dois-je ajouter pour que je puis afficher ceci sur un textbox ?!
J'ai déjà initialisé dans le Form_load tous les paramètres (PortName, BaudRate, ...), je me suis bloqué dans la partie du Textbox !!!
[/quote]
Et mon projet met à jour différentes textbox donc tu as tout ce qu'il te faut ...

Il faut que tu décomposes ton besoin.

  1. Envoyer les données de ton arduino sur la liaison série
  2. Récupérer les données depuis ton application VB sur la liaison série

Pour le premier point, tu peux déjà valider l'envoi de l'arduino sur la liaison série à partir du terminal fourni avec l'IDE arduino.

Valide déjà que ton arduino transfert bien les données. Pour l'instant, je pense que le code que tu nous as donné ne doit pas tout transmettre car trait_cause_code doit être un tableau de char ? Si c'est le cas, il faut que tu boucles sur le tableau pour transmettre chaque caractère.

Une fois que tu seras certain que ce que transit sur la liaison série est bon, tu pourras t'attaquer au second point. Pour ce dernier, tu peux regarder le lien que t'a donné B@tto sinon, je te conseille d'aller sur des forums dédiés au VB.

Re,
Tu veux peut être que l'on fasse le code pour toi ?
Une simple recherche sur le net, si l'on se donne la peine, avec "afficher texte dans textbox vba" et tu trouves ce qu'il faut faire côté VBA.

icare:
Bonjour,
Sans passer par Arduino, comment faits-tu pour afficher un texte dans une texbox ?

Sans passer par Arduino, je mets un bouton et une Textbox avec Read Only, une fois le bouton appuyé, j'affiche le message voulu!

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = "Hello!"
    End Sub

icare:
Re,
Tu veux peut être que l'on fasse le code pour toi ?
Une simple recherche sur le net, si l'on se donne la peine, avec "afficher texte dans textbox vba" et tu trouves ce qu'il faut faire côté VBA.

Ne vous inquiétez surtout pas, je ne vous demanderai jamais une telle chose, si non, ça servira à rien mon projet, côte personnel! Excusez-moi si j'ai abusé! Côté VB, je cherche chaque jour sur le net, en reformulant mes requêtes! Je n'ai besoin que d'un simple indice pour continuer mon projet.
Désolé si je vous ai dérangé !

Pour la partie VB, tu n'es simplement pas au bon endroit. Tu auras peut-être la chance de tomber sur qqun qui connait mais tu auras surement de meilleures réponses sur un forum spécialisé en VB.

Pour la partie Arduino, tu dois pouvoir valider la transmission en utilisant le terminal série de l'IDE.

Traites bien chaque sujet de façon unitaire avant de passer à l'assemblage de l'ensemble. Si tu veux tout traiter d'un coup, en cas de problème, tu ne sauras pas si cela vient de l'arduino ou du VB.

Bonjour,
Côté Arduino, il te transmet des caractères ASCII vers le port série.
Côté VBA, tu reçois des caractères ASCII que tu transformes et stockes dans un string.
Puis :

TextBox1.Text = pre  //pre est un String

C'est malheureusement un peu plus compliqué que ça dans la mesure où il y a une gestion par thread et que l'interface est un thread à part entière. La réception série en étant un autre, il y alors des opération cross-thread à gérer. C'est pas la mer à boire, on peut s'en sortir même sans forcément bien comprendre ce qu'on fait (ça a été mon cas au début xD)

Une fois encore tout est dans mon projet dont j'ai donnée les liens, suffit de prendre le temps de l'étudier

Je suis toujours entrain de l'analyser un peu, je vous tiendrai au courant dès que possible, MERCI BEAUCOUP!