bonjour
je suis débutante en c# et j'ai trouvée des difficultés pour recuperer des données d'un port logique arduino sur une interface C#
merci
-----
bonjour
je suis débutante en c# et j'ai trouvée des difficultés pour recuperer des données d'un port logique arduino sur une interface C#
merci
Bonsoir chabane lilia et tout le groupe
Bienvenue sur le forum.
Avec le trop peu d'informations que tu donnes, il est impossible de t'aider.
Il faut tout "déballer" ici. Le schéma, le programme, et ce que tu entends par "récupérer".
salut
ca c'est mon code sur arduino
mais quand j'essaie de simuler il m'affiche erreur d'ouverture de port sérieCode:void setup() { Serial.begin(9600); } void loop() { int val = analogRead(A0); // lit la valeur analogique sur la broche A0 // et met le rأ©sultat dans la variable Serial.println(val, DEC); // affiche la variable dans le Terminal Serie }
Dernière modification par gienas ; 12/04/2019 à 21h33. Motif: Ajouté les balises code obligatoires pour les programmes
Tu es sûre pour C# ? Quel IDE ?
Tu as un exemple assez complet en C# ICI...
J'ai glissé Chef !
Et tu es sur que ton simulateur est bien configuré et qu'il génère des valeurs à lire sur le port série ?
Comme le dit Ikhar84, une solution dans ces cas là est de regarder si un programme d'exemple dont on est sur qu'il marche va bien tourner.
Si c'est le cas, c'est ton programme qui doit être corrigé. Si le programme d'exemple a le même problème, c'est ton environnement.
bonsoir
désolé j ai fais une erreur
voila mon code
mais il m indique erreur
Code:using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using ZedGraph; using System.IO.Ports; namespace data { public partial class Form1 : Form { double val = 0; //GraphPane myPane = new GraphPane(); PointPairList listPointsSicaklik = new PointPairList(); LineItem myCurveSicaklik; public Form1() { InitializeComponent(); GraphPane myPane= zedGraphControl1.GraphPane; PointPairList listPointsSicaklik = new PointPairList(); LineItem myCurveSicaklik; myPane.Title.Text = "serial Test"; myPane.XAxis.Title = "Time"; myPane.YAxis.Title = "Voltage"; serialPort1.Open(); } private void button1_Click(object sender, EventArgs e) { string[] data = serialPort1.ReadLine().Split('*'); val += 0.05; listPointsSicaklik.Add(new PointPair(val, Convert.ToDouble(data[1].ToString()))); myPane.XAxis.Scale.Max = val; myPane.AxisChange(); zedGraphControl1.Refresh(); } } }
Dernière modification par gienas ; 13/04/2019 à 20h40. Motif: Ajouté les balises code OBLIGATOIRES pour les programmes.
lorsque je simule mon code avec un port serie vertuel il m affiche juste la 1er valer puis le port indique erreur
On ne voit pas comment est instancié serialPort1.
Je ne connais pas bien C#, mais es-tu sur que serialPort1 correspond au bon port COM?
@Jack: ce qui rend le code C# difficile à etudier c'est que l'IDE est de type WYSIWYG, les contrôles sont pris de la boite a outils et positionnés visuellement sur la form (fenêtre?), leur déclaration est en fait dans un fichier distinct: le designer.
Serialport est donc un contrôle pris tel quel et posé sur la forme, ici n'apparaît que le code qui interagit avec lui...
Pour les paramètres de ce SerialPort1 il faudra la portion du designer qui le déclare ou une capture de son onglet propriétés.
Comme pour le GraphPane qui est un panel (panneau) dédié à "embarquer" un graphe apparemment.
On ne peut même pas copier son code pour tester, il comporte des contrôles non fournis en standard par l'IDE et on n'a pas les propriétés de ces contrôles...
Il faut vraiment simplifier le code avec uniquement le port série et une sortie sur la console pour commencer !
Accessoirement, l'erreur donnée par l'ide n'est toujours pas fournie par le posteur... un bloc try/catch et un copié/collé du message de l'exception générée devrait pas mal aider...
Dernière modification par Ikhar84 ; 14/04/2019 à 01h18.
J'ai glissé Chef !
Ok.
Il faudra tout de même modifier la propriété portName de serialPort, vu que par défaut la valeur est COM1 alors qu'il s'agit à priori d'un port COM virtuel, donc surement pas COM1
Il suffit de prendre l'autre partie de la classe partielle; normalement elle s’appelle nomDuFormulaire.Designer.cs@Jack: ce qui rend le code C# difficile à etudier c'est que l'IDE est de type WYSIWYG, les contrôles sont pris de la boite a outils et positionnés visuellement sur la form (fenêtre?), leur déclaration est en fait dans un fichier distinct: le designer.
Serialport est donc un contrôle pris tel quel et posé sur la forme, ici n'apparaît que le code qui interagit avec lui...
Pour les paramètres de ce SerialPort1 il faudra la portion du designer qui le déclare ou une capture de son onglet propriétés..
Mon interface graphique sur C# fonction bien j'ai réalisée un arduino virtuel sur proteus et j'ai défini un signal sin au port analogique A0
Sur mon interface j récupère un signal direct
Ca veut dire que tu n'as plus de problème alors. Qu'est-ce que tu as modifié pour que ça fonctionne?Mon interface graphique sur C# fonction bien
Ca veut dire quoi, "un signal direct"???Sur mon interface j récupère un signal direct