Hallo, ich hab gerade das Kapitel AVR-Tutorial: ADC durchgearbeitet. Leider sind die Codebeispiele für den Anfänger ziemlich sperrig und schlecht zu durchschauen. Könnte da jemand, der sich auskennt, nicht mal ein einfaches Beispiel dazuschreieben - ohne UART-Übertragung und ähnliches Beiwerk? Und eins ist mir auch nicht klar geworden: Wenn man von vornherein weiß, dass sich die zu messende Spannung z.B. zwischen 3V und 5V bewegen wird, kann man dann den Messbereich auch nach unten begrenzen? Geht das mit externen Referenzspannungen (die sind ja nur sehr grob beschrieben) ? Grüße
Sag konkret was dir unklar ist, vielleicht geht es anderen auch so und man kann das Tutorial verbessern. Ein "Leider sind die Codebeispiele für den Anfänger ziemlich sperrig und schlecht zu durchschauen." hilft wenig. Die Beispiele sollten an sich anfängertauglich sein. Begrenzung nach unten sist mir von der Einstellerei des ADC im AVR aus nicht bekannt. Man kann natürlich extern von der Spannung 3V abziehen (z.B. Operationsverstärker) und so die 3-5V in den Bereich 0-2V bringen und mit einer Referenzspannung 2V den vollen Auflösungsbereich des ADC ausnutzen.
Wie willst du ohne UART dein Ergebnis sehen. Wenn du weißt , dass das Ergebnis zwischen 3-5V groß ist, dann könntest du das mit OPVs so ausbalancieren, dass du aus den 2V Differenz 5V machst. So ohne weiteres kannst du die Auflösung nicht an den Spannungspegel anpassen. Grundsätzlich wenn du messen willst, die eine externe Referenz für den AVR, die Versorgungsspannung ist nur selten gut genug.
Michael Schmidt schrieb: > Hallo, > > ich hab gerade das Kapitel AVR-Tutorial: ADC durchgearbeitet. > Leider sind die Codebeispiele für den Anfänger ziemlich sperrig und > schlecht zu durchschauen. Könnte da jemand, der sich auskennt, nicht mal > ein einfaches Beispiel dazuschreieben - ohne UART-Übertragung und > ähnliches Beiwerk? Versteh ich nicht. Wenn man das Tutorial von Anfang an durchgeht sollte das eigentlich kein Problem darstellen. Alles baut aufeinander auf. Steigt man allerdings mitten drinn ein, dann hat man eventuell ein Problem. Aber auch da sollte eigentlich mit der Beschreibung dazu klar sein, wo im Programm der ADC Teil aufhört und der UART Teil anfängt. Irgendwas muss man schliesslich mit dem ADC Wert tun um ihn sichtbar zu machen. > Und eins ist mir auch nicht klar geworden: Wenn man von vornherein weiß, > dass sich die zu messende Spannung z.B. zwischen 3V und 5V bewegen wird, > kann man dann den Messbereich auch nach unten begrenzen? Geht das mit > externen Referenzspannungen (die sind ja nur sehr grob beschrieben) ? Dann brauchst du eine Externbeschaltung, die zunächst die 3-5V in den Bereich 0-2V verschiebt und kannst dann mit einer kleineren Referenzspannung arbeiten, um die 0-2V auszuwerten.
Nachtrag: Bei manchen AVRs sind differentielle Eingänge beim ADC vorhanden. Da ist quasi der oben erwähnte externe OPV eingebaut. Aber: Aufpassen! Ob der ADC dann die vollen 10-Bit Auflösung hat (Datenblatt).
Hat er nicht, 9Bit. Aber das hilft dann nicht weiter, die Referenzspannung bleibt ja trotzdem.
Karl Heinz Buchegger schrieb: > Irgendwas muss man schliesslich mit dem ADC Wert tun um ihn sichtbar zu > machen. Vielleicht mit LCD ausgeben - das würde mit den vorher beschriebenen (und als .inc ausgelagerten) Routinen nur eine zusätzliche Zeile Code bedeuten. Ich will aber gar nicht sagen, dass man das so wie es jetzt ist nicht machen kann - ich fand es beim Lesen halt nur schrierig, weil zwei Problemfelder (ADC und UART) zusammen auftauchen. Danke für den Hinweis mit dem OPV - das werd ich so probieren.
LCD ist IMHO in der Praxis wesentlich problematischer als UART. Bei mir kommt das Inbetriebnehmen der UART als Mund und Ohr zum Anwender als wichtigste Funktion direkt nach dem Anschluß der berühmten "Hello World"-LED. Danach kann ich mich an die restlichen Funktionen des µC rantasten.
man kann die Ergebnisse auch im Eeprom speichern und das Eeprom zur Kontrolle auslesen.
Thomas O. schrieb: > man kann die Ergebnisse auch im Eeprom speichern und das Eeprom zur > Kontrolle auslesen. Findest du dieses Vorgehen nicht auch unkomfortabel?
Michael Schmidt schrieb: > Vielleicht mit LCD ausgeben - das würde mit den vorher beschriebenen > (und als .inc ausgelagerten) Routinen nur eine zusätzliche Zeile Code > bedeuten. Wenn du die mit den UART Routinen vergleichst stellst du fest, dass die Unterschiede so groß auch wieder nicht sind. Das "Hauptproblem", nämlich einen Zahlenwert in eine lesbare Form aufzubereiten, ist da wie dort gegeben. Ob man dann diesen 'Text' per UART verschickt oder per LCD anzeigt, ist so gesehen relativ egal. Noch einfach wäre natürlich einfach 8 LED an einem Port zu haben. Aber auch das erfordert wieder Voraussetzungen, die im Tutorial so nicht gegeben sind. Irgendwann ist es in jedem Tutorial so, dass mein einzelne Konzepte nicht mehr für sich alleine einführen kann. Einigermassen 'interessante' Programme erfordern nun mal mehrere Konzepte in einem Programm.
nicht jeder AVR hat eine UART aber jeder hat eine Programmierschnittstelle. Also bevor ich zur Kontrolle ne Software UART programmiere gehe ich den Umweg über das Auslesen.
...es ging mir beim ersten Durchlesen des Tutorials ebenso (Das ist jetzt auch nicht negativ gemeint, das Tutorial ist gut !). Das ist aber auch nicht weiter tragisch. Ich habe für mich die Erfahrung gemacht, dass ich es einfacher verstehe, wenn ich mir ein konkretes eigenes Ziel setze und das Programm selbst schreibe. Ich würde in diesem Fall vermutlich mit einem Attiny13 auf dem Steckbrett einen kleinen Batterietester aufbauen, der mir anhand von ein paar Leds die Spannung der Batterie anzeigt (z.B. zwischen 1 und 1,5 Volt). Beim Erstellen des eigenen Programms stösst man dann immer auf die ein oder andere Frage, die das Tutorial dann beim "zweiten" Lesen schön beantwortet....
wenn du nur Messen willst ob die Batterien noch gut sind, brauchst du es nicht so kompliziert machen. Spannungsteiler mit Mittenabgriff(Poti) auf den Referenzspannungseingang, Batterie entsprechend belasten und dann Spannung messen. Eine reine Spannungsmessung ohne jegliche Belastung wird dir sonst fast immer 100% anzeigen.
Thomas O. schrieb: > wenn du nur Messen willst ob die Batterien noch gut sind, brauchst du es > > nicht so kompliziert machen. ...es ging mir jetzt auch nur um das Verständnis der Arbeitsweise des ADC, da finde ich ein "konkretes" Projekt immer schöner. Das das als Beispiel genannte auch einfacher geht, sollte klar sein....
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.