Hallo Zusammen, ich habe eine Frage zu ADC und Visualisierung der Meswerte auf meinem PC mit C#. Ich messe Spannung mit PIC16F876 und möchte die Messwerte über Max233 anzeigen lassen. Meine Anwendung zeigt sehr komische Werte wie: bei einer Spannung von 5 V --> 3,72E-294 ----------------- von 3,72 v--> 5,37E-299 ----------------- von 2,42 V--> 7,74E-304 weisst jemand was es seien kann? wäre dankbar für jede info!
ich empfange die Daten mit: int count = serialPort1.BytesToRead; byte[] ba = new byte[count]; serialPort1.Read(ba, 0, count); dann konvertiere in double, dann werden die Werte in richTextBox angezeigt. Muss ich noch irgendwelche Schritte dazwischen durchführen?
Ja, mal ein bischen mehr Infos rüberwachsen lassen! Das ist eine Frechheit! Wenn Du eine vernünftige Antwort haben willst, dann gebe Dir bei der Fragestellung bitte ein bisschen mehr mühe! Schaltung?! Source-Code?!
mit dieser Methode empfange ich die Daten: private void Erfassen() { try { int count = serialPort1.BytesToRead; byte[] ba = new byte[count]; serialPort1.Read(ba, 0, count); Double data1 = BitConverter.ToDouble(ba, 0); Double data2 = BitConverter.ToDouble(ba, 0); richTextBox1.Invoke(new EventHandler(delegate { richTextBox1.Text = data1.ToString(); })); label1.Invoke(new EventHandler(delegate { label1.Text = data2.ToString(); })); } catch { }; anbei noch die Schaltung:
Hi dein PIC misst die Spannung als integer-Wert, den du dann in eine Spannung umwandelst. Und wie überträgst du dann den Wert ? Mit sprintf in eine Text-String umgewandelt ? gerhard
Hallo, ich habe den PIC in Assambler programiert und dann nch in C. In beiden Fällen habe ich die falschen Werte erhalten oder mache ich noch was nicht ganz richtig. hier ist main () Funktion aus dem Programm void main(void) { uns16 a; // Variablen char n; //++ Einstellungen des AD-Wandlers ++++++++++++++++++++++++++++ ADCON1=0; // Ganzer PortA als Analog Vdd Vss ADON=1; // ADC-Einschalten ADCS1=1 ; // Geschwingigkeit der ADC ADCS0=0 ; ADFM=1; // Rechts Ausrichtung //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ TRISC=0b.1011.1100; // RC6>TX, RC7>RX InitUSART(); // Hardwareschnittstelle des PICs einstellen while(1) // Ganzes Programm ist Endlosschleife { while(!RCIF); // Warte auf Empfang n=RCREG; // Empfange Kanalnummer a=ADC(n); // AD-Wandlung while(!TXIF); // Prüfen, ob Sender frei ist TXREG = a.low8; // Niederes Datenbyte senden while(!TXIF); // Prüfen, ob Sender frei ist TXREG = a.high8; // Oberes Datenbyte senden } // Ende der Schleife } // Ende des Hauptprogramms Gruß Serg
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.