Afficher la valeur d'une tension

Résolu
kiars95 Messages postés 8 Date d'inscription jeudi 5 août 2010 Statut Membre Dernière intervention 23 août 2010 - 5 août 2010 à 12:25
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 - 23 août 2010 à 11:51
bonjour

au secours! je souhaiterais savoir comment faire pour afficher sur visual c#, une tension mesurée avec mon arduino duemilanove. Il faut savoir que j'ai placé sur mon interface un boutton et un texbox. aider moi please

13 réponses

cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
9 août 2010 à 11:19
Bonjour

Tu dois avoir un driver pour piloter ta carte.
Ce driver possede une ou des interfaces, sans doute livrées dans une librairie ou une DLL

peux-tu nous donner plus d'information sur ces interfaces, car sans cela il nous est difficile de te répondre.

Bob
C# is amazing, enjoy it!
1
kiars95 Messages postés 8 Date d'inscription jeudi 5 août 2010 Statut Membre Dernière intervention 23 août 2010 1
10 août 2010 à 11:53
bonjour Robert 33,
merci de m'aider, je t'explique la situation en esperant ke tu comprenne

En fait g crée une interfaces avec visual C# 2008 express edition mais le soucis c que pour lire mes entrées ou mes sorties analogiques afin d'afficher les tension sur mon interface il me fo (enfin ! je pense) cela:

using Microsoft.SPOT;
using System.Threading;
using Microsoft.SPOT.Hardware;
using GHIElectronics.NETMF.Hardware;
using GHIElectronics.NETMF.FEZ;

car le message d'erreur est le suivant :


Erreur 4 Le type ou le nom d'espace de noms 'AnalogOut' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)
et c'est introuvables dans les references

ou les trouver?
merci!
1
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
10 août 2010 à 17:06
Bonjour

je suppose que 'AnalogOut' est le point d'entré de ta librairie.
il faut que tu l'ajoutes à tes références de projet.
Dans le projet, sous "reférences", clique-droit et Ajouter une référence.
Ensuite tout dépend de la libraire d'interface fournie par le constructeur.
Soit c'est un composant Dotnet installé, dans ce cas il doit apparaitre dans la liste de l'onglet .NET
Soit c'est un composant Com, ou active-X, installé alors il est dans la liste de l'onglet COM
Si non, cliques sur l'onglet "Browse" ou "Recherche" et indique l'endroit ou se trouve le composant.

Bob
C# is amazing, enjoy it!
1
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
19 août 2010 à 06:36
Bonjour

ça c'est du C++, pas du c#.

en remplaçant le #include <Firmata.h> par une clause using ... et en mettant en reference la DLL du constructeur
tu devrais pouvoir réutiliser une partie de ce code.

mais je ne peux pas te faire un cours C# ici, désolé.

Bob
C# is amazing, enjoy it!
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kiars95 Messages postés 8 Date d'inscription jeudi 5 août 2010 Statut Membre Dernière intervention 23 août 2010 1
17 août 2010 à 12:56
bonjour Robert,

desole de repondre ke maintenant mais g eu kelke soucis enfin bref!
voila mon code arduino duemilanove
/* Supports as many analog inputs and analog PWM outputs as possible.
*
* This example code is in the public domain.
*/
#include <Firmata.h>

byte analogPin;

void analogWriteCallback(byte pin, int value)
{
pinMode(pin,OUTPUT);
analogWrite(pin, value);
}

void setup()
{
Firmata.setFirmwareVersion(0, 1);
Firmata.attach(ANALOG_MESSAGE, analogWriteCallback);
Firmata.begin(11500);
}

void loop()
{
while(Firmata.available()) {
Firmata.processInput();
}
for(analogPin = 0; analogPin < TOTAL_ANALOG_PINS; analogPin++) {
Firmata.sendAnalog(analogPin, analogRead(analogPin));
}
}
sinon g plus simple

/*
Analog input, serial output

Reads an analog input pin, prints the results to the serial monitor.

The circuit:

* potentiometer connected to analog pin 3.
Center pin of the potentiometer goes to the analog pin.
side pins of the potentiometer go to +5V and ground

created over and over again
by Tom Igoe and everyone who's ever used Arduino

*/

float Value;

void setup() {
Serial.begin(9600);
}

void loop() {
// read the analog input into a variable:
float analogValue = analogRead(3);

// print the result:
Value = analogValue;
Serial.println(Value, DEC);

// wait 10 milliseconds for the analog-to-digital converter
// to settle after the last reading:
delay(10);
}



et je ne connais pas C# ( visual C# 2008 edition express)
mais je dois afficher en permanence la tension relevée sur le pin analogique et g tout essayé mais je n'y arriv pas et le temps press pour moi car mon stage fini dans kelke jour, si tu pouvais m'aider j'apprecierais enormément
merci kiars95
0
kiars95 Messages postés 8 Date d'inscription jeudi 5 août 2010 Statut Membre Dernière intervention 23 août 2010 1
19 août 2010 à 12:11
Salut,

je te remercie pour ton aide c cool
je pense que je v reussir, encore merci
tchaw
0
kiars95 Messages postés 8 Date d'inscription jeudi 5 août 2010 Statut Membre Dernière intervention 23 août 2010 1
20 août 2010 à 18:51
salut c encore moi
bonne nouvelle car g reussi a le faire mais apres une solution un new probleme
j' affiche ma tension dans textbox sachant quelle pe variée et pour observer sa variation je voudrais rajouter un progress bar, seulement je suis perdu
voici mon programme sous c#

ArduinoPort.Write(new byte[] { 82 }, 0, 1);
string tension2 = ArduinoPort.ReadLine();
textBox2.Text = tension2;
textBox2.Text = (textBox2.Text.Substring(0, textBox2.Text.IndexOf(".") + 3) + " V");
( jusqu'ici tt va bien la tension est affichée)
maintenant pour mon progressbar j ecris ceci
int tac = int.Parse(tension2);
progressBar1.Value = tac; mais ca marche pas malgré que sa compile bien j'uska ke je test et voici le mesage d'erreur :
Le format de la chaîne d'entrée est incorrect.
assurez-vous que le format des arguments de votre methode est correct
serais-tu pourquoi? merci d'avance pour t lumieres
0
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
22 août 2010 à 07:17
Bonjour

je pense que l'exception doit provenir de la conversion int.Parse(tension2);
en cas d'exception, peux-tu afficher la valeur ?

try
{
int tac = int.Parse(tension2); 
progressBar1.Value = tac; //mais ca marche pas malgré que sa compile bien j'uska ke je test et voici le mesage d'erreur : 
}
catch (Exception ex)
{
MessageBox.Show("Erreur de conversion :"+tension2);
}


C# is amazing, enjoy it!
0
kiars95 Messages postés 8 Date d'inscription jeudi 5 août 2010 Statut Membre Dernière intervention 23 août 2010 1
22 août 2010 à 18:59
bonjour,
oui g essayé et ca me met le message erreur de conversion et effectivement la tension s'affiche dans le message
cela est du a koi alors
0
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
22 août 2010 à 20:04
Bonsoir

Peux-tu nous poster le message exact affiché par la ligne suivante:

catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(String.Format("Erreur : pour tension [{0}] : {1}", tension2, ex.ToString()));
}

Bob.
C# is amazing, enjoy it!
0
kiars95 Messages postés 8 Date d'inscription jeudi 5 août 2010 Statut Membre Dernière intervention 23 août 2010 1
23 août 2010 à 00:30
desolé mais dois-je le rajouter a la suite ou remplacer l'ancien catch par celui ci
0
kiars95 Messages postés 8 Date d'inscription jeudi 5 août 2010 Statut Membre Dernière intervention 23 août 2010 1
23 août 2010 à 01:39
salut

en observant le message il affichait la tension suivante 72.0000000000000
g donc essayé
int tac = int.Parse(textBox2.Text.Substring(0, textBox2.Text.IndexOf(".")));
progressBar2.Value = tac;
et ca a marché
merci encore pour ta precieuse aide
cordialement
0
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
23 août 2010 à 11:51
De rien,

Pense à valider une réponse pour clore ce sujet


Bob
C# is amazing, enjoy it!
0
Rejoignez-nous