Excel-Tabelle als Voltmeter, STK500, Atmega88

Gast #1999175
Hi Jungs

erstmal wünsche ich euch alle ein frohes neues Jahr

zu meinem Problem, ich versuche über den ersten  analog- digital 
wandlerkanal eine Spannung umwandlen, soweit so gut.wenn ich versuche 
nun die  spannung an der Excel Tabelle weiterzugeben klappt das 
überhaupt nicht. Das Programm habe ich schon auf mein Atmega88 
gespeichert die rx232 schnittstelle ist mit PD0:1 auf dem Stk500 
verbunden. nun wenn ich die excel tabelle starte kommt entweder die 
Fehlermeldung " die Methode PortOpen für das Objekt 'IMDComm' ist 
fehlgeschlagen. Oder die Meldung "die Methode input für das Objekt 
'IMDComm'ist fehlgeschlagen "

wenn ich versuche die beiden Meldungen zu überspringen in visualbasic, 
kriege ich am ende 2 euro zeichen als Wert :-)

ich wäre euch sehr sehr dankbar, wenn ihr mir hilft, denn allein komm 
ich wirklich nicht weiter.
PS: C-code und Excel-Tabelle als Anhang

Danke im Voraus
Angehängte Dateien:
#1999285
Hi

Du hast ein "return(result);" am ende deiner Wandelfunktion vergessen.

Was mit der Excel-Tabelle nicht stimmt, kann ich so nicht sagen.

Dann Teste das ganze mal mit einem Terminalprogramm wie zum Beispiel 
Hyperterminal, minicom...

Und bitte hier über Erfolg/Mißerfolg berichten.

mfg mf
#1999410
Anfänger schrieb:
> nun wenn ich die excel tabelle starte kommt entweder die
> Fehlermeldung " die Methode PortOpen für das Objekt 'IMDComm' ist
> fehlgeschlagen. Oder die Meldung "die Methode input für das Objekt
> 'IMDComm'ist fehlgeschlagen "

stammt die Tabelle von Dir?
evl. fehlen bei dir die benötigten ActivX Bibliotheken für die 
COM-Funktionen, wenn ich die Tabelle öffne siehts so wie im Anhang aus.

Sascha
Angehängte Dateien:
Gast #2002081
Hallo Jungs
sorry dass ich erst heute zurückschreibe, eine Erkältung hat mich 
erwischt.

ich habe es nun hingekrigt mit dem Hyperterminal die werte zu lesen. als 
nächster Schritt möchte ich gerne ein Spannungswert an den Hyperterminal 
übergeben . Die Umrechnnungen, die im  Tutorail stehen, habe ich 
übernommen, nund kriege ich kommische werte villeicht kann jemand mich 
erlösen, denn ich find leider kein Fehler. am Eingang habe ich 1v 
Spannung eingestellt, nun möchte ich am Rs232 ungefähr 1 V lesen

Anhang. Main.c und Übertragberischt

Danke im voraus
Angehängte Dateien:
#2002108
Ein C Buch wäre nicht schlecht

Das hier

test=adc0*(4,8828125 );

ist nicht die Zahl 4 Komma 8828125.
Gleitkommazahlen werden in Programmiersprachen praktisch immer wie im 
englischen Sprachgebrauch geschrieben. Mit einem Punkt und nicht mit 
einem Komma

test = adc0 * 4.8828125;

Lediglich Excel ist da eine (besch...) Ausnahme. Im deutschen Excel muss 
man ein Komma benutzen. Das hat schon für so manche Probleme gesorgt.
Gast #2002141
Hi
du hat recht, ich wiess zwar dass man in C kein Komma sondern Punkt 
schreibt. habe leider dafor mit dem Formel in Excel rumgespielt und beim 
kopieren einfügen nicht darauf geachtet, hut ab :-)

so nun die nächste Frage, ich möchte gerne soweit wie möcglich den 
Messfehler minimieren, gibts dafür irgendwelche Vorschläge!!!
ich messe folgenden

bei 3v   messe ich  2.856/2851

bei 1 v messe  ich  1.899  0.947
#2002161
Anfänger schrieb:

> so nun die nächste Frage, ich möchte gerne soweit wie möcglich den
> Messfehler minimieren, gibts dafür irgendwelche Vorschläge!!!

Du benutzt die interne Referenz

 ADMUX = (1<<REFS1) | (1<<REFS0);


Die hat aber
* weder exakt 2.56 Volt, sondern müsste ausgemessen werden
  (die interne Referenz ist hauptsächlich eines: stabil.
  d.h. sie verändert sich nicht.
  Das heißt aber nicht, dass sie exakt 2.56V beträgt. Sie kann
  auch 2.3V oder irgendwas anderes in diesem Bereich sein,
  solange sie nur eines tut: sich nicht verändern und stabil sein)

* noch hat sie 5V.
  Du rechnest aber offenbar mit 5V als Referenzspannung, denn
  5 / 1024 macht 0.00488.....
  und du hast ja offensichtlich das tausendfache davon genommen


Deine 'Messfehler' sind also in Wirklichkeit deine eigenen 
Programmierfehler :-)
Gast #2002175
Hi Kart
ich benutzte ein STK500 mit einem Atmega88.an Aref messe ich eine 
Spannungg von 5.041 V. Ist es nun richtig oder falsch. der AREF jumper 
auf dem STK500 ist angesteckt.

besten Dank Karl
#2002194
Tschuldigung.
Ich hab selber im Datenblatt für den Mega16 nachgesehen, weil ich keines 
für den Mega88 da habe.

Hab ich jetzt nachgeholt.
REF0 und REF1 jewils auf 1, bedeutet 1.1V Referenz und nicht 2.56V wie 
ich weiter oben schrieb. Aber bis auf den anderen Zahlenwert bleibt 
alles andere gleich.


Und erlös bitte deinen Mega88.
Der versucht krampfhaft mit seiner internen Quelle die 1.1V als Referenz 
einzustellen und du bläst ihm da von aussen 5V auf die Schaltung. 
Irgendwann wird da einer nachgeben und kaputtgehen. Und das wird nicht 
deine 5V Versorgung sein.
Gast #2003262
hi Karl

Ich habe es geändert und nehme jetzt die externe Refernzspannung, leider 
bin ich immer noch bei einm Fehler von ungefähr 1%, an Aref messe ich 
eine spannung von 5,049 V. Und für meinen Projekt ist die 
Messgenauigkelt sehr wichtig.

die externe Refernzspannung habe ich so deklariert:

 ADMUX &=~ ((1<<REFS1) | (1<<REFS0));  Richtig???????????????

Vielleicht hat jemand ein Idee wie man das besser hin kriegt

Danke im Voraus
Gast #2003401
Anfänger schrieb:
> ADMUX &=~ ((1<<REFS1) | (1<<REFS0));  Richtig???????????????

Ja.

Anfänger schrieb:
> leider
> bin ich immer noch bei einm Fehler von ungefähr 1%

Im Datenblatt sind 2 LSB als absoluter Fehler angegeben, sollte etwa 0,2 
% entsprechen.
Die Frage ist, ob Du einen konstanten Fehler von 1 % hast oder die Werte 
im Bereich 1 % drüber oder drunter liegen, also schwanken. Also einfach 
mal z.B. 1.000 Wandlungen am Stück und mit den Ergebnissen etwas 
Statistik machen.
Bei konstantem Fehler Korrekturwert machen (wobei sich natürlich die 
Frage der Genauigkeit Deines Meßmittels stellt ...), bei Streuung 
Meßsignal und Referenz besser blocken. Aber zu diesen Themen gibt es 
ganz viele Infos in der Suche.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.