Forum: Compiler & IDEs ADC


ADC
von A. M. (bacarni) Benutzerseite


Lesenswert?

Hallo,
ich habe mir gerade das AVR-GCC-Tutorial durchgelesen, denn ich will 
über ein Poti eine LED dimmen. Daher habe ich mich mit dem A/D Wandler 
befasst. Im Tutorial steht auch ein Beispiel Quelldatei. In der wird ein 
Wert returned.

Allerdings habe ich den Grundsetzlichen Aufbau noch nicht richtig 
verstanden. Ich lege den Poti auf den ADC. Dann stelle ich alle Register 
richtig ein und bekomme nach der Rechnung einen Wert. Weiterhin habe ich 
einen Ausgang für die LED geschaltet. Aber wie mach ich es jetzt, dass 
die LED mal heller, mal dunkler leuchtet, ja nachdem, wie das Poti 
eingestellt ist. Denn aus der AD Rechnung bekomm ich ja einen Wert. Aber 
ich weiß nicht, wie ich ihn weiter verwenden soll, um auf den Ausgang 
z.B. halbe, ganz, viertel Spannung zu kriegen...

Vielen Dank
Arnulf

P.S.: Befasse mich erst seit kurzem mit der ganzen Thematik.

von Hannes (Gast)


Lesenswert?

Das machst Du am Besten über einen Timer, den Du in den PWM-Modus 
schaltest.

Siehe dazu Datenblatt Mega 8 und GCC-Tutorial.

73 Hannes

von Karl H. (kbuchegg)


Lesenswert?

Dazu müsstest du die LED mittels PWM ansteuern.

Darf ich dir eine andere Vorübung vorschlagen?
Anstatt 1 Led, nimm eine Led Reihe, die du an
einen Port schaltest. Also: 8 Led, jede an einem
anderen Port Pin.

Deine Aufgabe ist es nun:
Mittels ADC die Poti-Stellung festzustellen (natürlich
dadurch, dass du die Spannung misst, die über das Poti
abfällt) und dann jeweils eine unterschiedliche
Anzahl an Leds einzuschalten:
   * Wenn das Poti an einem Endanschlag ist, dann leuchtet
     nur 1 Led, ganz aussen
   * Ist das Poti am anderen Endausschlag, dann leuchten
     alle Led
   * Ist das Poti irgendwo dazwischen, dann werden entsprechend
     viele Led in diesem Leuchtband eingeschaltet

D.h. drehst du am Poti, so wird das Leuchtband länger bzw. kürzer.
Vielleicht hast du schon mal eine Aussteuerungsanzeige an einem
Verstärker gesehen. Ganz genau so. Nur dass du halt am Poti
drehen musst.

Du musst dazu einen Weg finden, wie du den tatsächlichen
Messwert in eine 'Anzahl Led' umrechnest und du musst einen
Weg finden, wie du genau soviele Led einschalten kannst.

Viel Spass.

von A. M. (bacarni) Benutzerseite


Lesenswert?

Vielen Dank für die Antworten.

Ich werd es erstmal versuchen Heinz Aufgabe zu lösen. Das klingt 
einfacher als sich jetzt auch noch direkt wieder mit PWM zu 
beschäftigen. Alles zu seiner Zeit. Ausserdem habe ich zu der Aufgabe 
auch schon eine Idee für die Realisierung. Werde mir eine kleine 
Schaltung aufbauen und mal sehen ob es klappt :)

Bis die Tage...

von Karl heinz B. (kbucheg)


Lesenswert?

> Das klingt einfacher als sich jetzt auch noch direkt wieder mit
> PWM zu beschäftigen.

Genau darum geht es:
Immer nur eine Baustelle.

Endlich mal jemand, der das versteht.

von fieser, klugscheissender Rahul (Gast)


Lesenswert?

Vorstufe zu Karl Heinz Programm:
Lass dir den ADC-Wert von den LEDs anzeigen (sieht etwas anders aus...).

von Dirk (Gast)


Lesenswert?

Um die Ausgabe auf einen PORT (8 Bit) zuvereinfachen kannst du das 
Ergebnis schieben und die 10Bit ADC Aufloesung in 8 Bit wandeln. Der AVR 
bietet dafuer auch ein Flagregister ADLAR.

von A. M. (bacarni) Benutzerseite


Lesenswert?

Danke für den Tip.
Ich habe die Schaltung jetzt soweit aufgebaut und erstmal ein Programm 
geschrieben, dass alle Led anschaltet.
Nun werde ich mich mit dem A/D-Wandler beschäftigen...

von A. M. (bacarni) Benutzerseite


Lesenswert?

So.... Lange hat es gedauert. Aber um dieses Thema abschließen zu 
können, kann ich sagen, dass es jetzt funktioniert.

Habe mir acht LEDs an einen Port angeschlossen, sowie ein Poti. Nach 
vielem hin und her und Pausen funktioniert nun alles, wie es soll.

Vielen Dank für die Hilfe.

von Bernd M. (adventureman1972)


Lesenswert?

Kannst du dein Programm veröffentlichen? Ich habe da ein ähnliches 
Problem und könnte Vorschläge gebrauchen...

Danke

von Johannes M. (johnny-m)


Lesenswert?

Bernd M. wrote:
> Kannst du dein Programm veröffentlichen? Ich habe da ein ähnliches
> Problem und könnte Vorschläge gebrauchen...
Deshalb musst Du doch nicht diese zwei Jahre alte Thread-Leiche 
ausgraben! Du bist angemeldet, also schreib dem Arnulf eine 
Benutzernachricht. Wenn er noch hier aktiv ist, dann wird er sich 
möglicherweise melden...

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
Noch kein Account? Hier anmelden.