mikrocontroller.net

Forum: Compiler & IDEs ADC


ADC
Autor: A. M. (bacarni) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. M. (bacarni) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: fieser, klugscheissender Rahul (Gast)
Datum:

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

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. M. (bacarni) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: A. M. (bacarni) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bernd M. (adventureman1972)
Datum:

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

Danke

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht 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...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.