Hallo, messe mit einem ATmega8 eine Spannung von 0- 5 V. Klappt auch alles aber als Ausgabe erhalte ich 0-1023. Mir ist klar das 5 V dem Wert 1023 entsprechen müssen und 512 demnach 2.5 V. Möchte in 100 mv Schritten messen aber wie setzte ich jetzt die Daten um ? Mache das ganze in Bascom. Danke !
Hey danke ! Die 5 beziehen sich auf die Spannung oder ? Dann kann ich da also da die jeweils zu messende Spg eintragen ?
Die 5 bezieht sich auf die Spannung, die dem Messwert 1023 entspricht. Kann mich mal wer zwicken?
@R.T.F zwickzwackzwick @belluh 5V = 5000mV werden in 1024 Teile geteilt. Wenn man das jetzt über 'nen Abakus laufen läßt, kommt für einen Teil 4,8828125mV (ungefähr ca. genau) heraus. Wieviel Teile mußt du dann auf einen Haufen packen, um 100mV zu erhalten ? Na.......kommt Licht ??
Schon klar. Aber einer mehr oder weniger........... Er hat das Prinzip halt noch nicht erkannt.
@R. T: Stimmt schon..., aber eigentlich doch 2^10(-1) = 1023 (+1) da wir ja bei null anfangen zu zählen und nicht bei 1 und darum find ich sind es trotzdem 1024 aber vielleicht irre ich mich ja
@ Sebastian: -->ein kleines Beispiel: 2-Bit ADC mit 4V Referenzspannung --> Frage: Anzahl der Quantisierungsstufen q = 2^2=4 oder 2^2-1=3 ? mit der Formel: U_mess = ADC_wert * Uref/q ergeben sich folgende Zusammenhänge ADC_wert U_mess(q=4) U_mess(q=3) 00 0V 0V 01 1V 1,33V 10 2V 2,66V 11 3V 4V
Wollen wir uns das wirklich nocheinmal antun... http://www.mikrocontroller.net/forum-extern/read-1-136722.html#136722 Zum Nachlesen im M16 DB auf Seite 214 oder graphisch im Anhang
..und etwas allgemeiner: Evaluating and Using ADCs http://www.national.com/appinfo/adc/files/Web-pres2001.pdf
Nur weil der Maximal-Wert des ADCs 1023 ist, heißt es nicht, dass er nur 1023 stufen hat. Natürlich hat er Exakt 10bit Auflösung und wenn man 5,12V als Referenz nimmt, macht das durchaus sinn: 5,12V = 5120mV 5120 / 1024 = 5 mV D.H jeder Schritt 5mV Der gültige ADC Bereich liegt zwischen 0 und 1023, wobei 0 = 0V entspricht und 1023 = 5,12V (theoretisch..)
hallo, der link: Evaluating and Using ADCs http://www.national.com/appinfo/adc/files/Web-pres2001.pdf ist gut wenn es diesen auf deutsch geben würde, wäre es noch besser, kennt jemand einen link der dies so darstellt nur in d mfg heiko
Mal ein kleiner Tipp: Man steuert erstens AD-Wamdler nie auf Vollwert aus: Die Linearitätsdefiniton beim Kalibrieren liegt oft bei 2/3 Endwert, d.h. DORT ist die beste Genauigkeit. Zweitens würde ich aus rechentechnischen und fehlerinterpretationstechischen Gründen zu Vollwerten raten: 5V sollten exakt 1000 enstsprechen. Es macht wenig Verlust, statt der 1023 die praktikableren 1000 zu bnutzen, die oberen Daten können aber prima Steuerinfos transportieren: Wenn man z.B: eine Messwert verarbeitung hat, so könnete man eine Übersteuerung pauschal auf 1020 setzen, einen Drahtbruch auf 1010 einen eventuell möglichen Fehler durch Störungen auf 1005 oder so. Dann kann die anschließende Messwertlogig mit DISESEM einen Wert operieren , ohne zusätzliche Signale oder Zustände zu benutzen- wichtig bei ereignisesteuerten Systmen, mit schmaler Übertragung zwischen 2 Systemen. Generell ist es aus Gründen der Fehlersuche und Plausibilierung der Messung sinnvoller, mit gedanklich leicht nachvollziehbaren Übersetzungsfaktioren (im obigen Beispiel 4.0 / mv) zu arbeiten, wie oben bereits beschreiben. In "alten" Systemen war das sogar unumgänglich, da man kein floating point benutzen konnte :D Ich habe auf diese Weise mal ein Messwertmodul entwickelt, daß die vorhandene Übertragungsstrecke nutzen könnte, OHNE zusätzlich digitale Steuerinfos übertragen zu müssen. Eine Wert von >1000 wäre dann z.b. kein verwertbarer Messwert, sondern deutet auf einen Fehlemssung hin. Die Auswertemathematik woanders, wiess dann, daß sie den Wert verwerfen muss und den alten ausgeben soll. Speziell in schnellen Umgebungen kann man hier einfach den nächsten Messwert nehmen. Noch ein Punkt: Auf obige Weise wäre auch klar, daß "1000" wirklich exakt Maximal Analog bedeuten und nicht ein Anschlag / Übersteuerung vorliegt. Auf diese Weise habe ich z.B. bei einem 8Bit-System immer 5V=250 eingestellt und wusste so, daß >=251 immer etwas mit Fehlern zu tun haben musste. Dies alles nur als Anregung zu nächlicher Stunde ... :D
sehr interessant, würde gerne mehr davon erfahren wollen, wie du es im enddefekt realisiert hast, hardware- sowie softwaretechnisch? möchte mich demnächst auch mit diesem thema auseinandersetzen, da ich keine erfahrung mit soetwas habe, informiere ich mich hier gelegentlich und stosse zum 1. mal auf so eine für mich informationsreiche nachricht. hätte jetzt 1000 fragen aber vielleicht erstmal die ersten schritte??? mfg heiko
SO ähnlich mache ich es auch, Beispiel 4-20mA Stromschleife. Den A/D-Messbereich lege ich für 0-22mA aus. Ich kenne keine Transmitter, die nicht auch mehr als 20mA ausgeben bei Überschreitung des Eingangsmessbereichs oder bei Defekten. Ergibt die Möglichkeit der Fehlererkennung. Das Einstellen der Referenz dass sich "schöne glatte" Zahlen ergeben, halte ich nicht für erforderlich, meist wird der Messwert doch sowieso skaliert.
4-20mA ist exakt mein Thema gewesen damals. Ich habe einen dieser typischen ->Kopfmessumformer ersetzt, wie er damals von Sensycon/H&B angebten wurde - das ging dann in ein CAN-Modul für die ABB. Diese Gerätchen besitzen ja eine interne Linearisierung die sogar wieder einen Analogwert ausgibt- nur eben einen linearen. Dazischen sitzt ein AD, ein uC und wieder ein AD. Der uC gibt die Gelegenheit zu Linearisieren und zugleich Überstrom zu detektieren. Bei der Gelegenheit kann man sich Fehlerzustände ausdenken, die anderswo reinterpretiert werden. Soweit ich weiss, sind die KMU sogar bis 25ma spezifiziert. Dawer wundert es nicht, daß sowas auftritt. Ist aber schon eine Weile her, so genau bin ich da nicht mehr drin.
hallo, @jürgen schuhmacher & crasy horse könnt ihr vielleicht mehr zur vorgehensweise, realisierung und benötigten sachen posten? mfg heiko
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.