mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Softwareprogramm mit Poti und AD-Wandlung


Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an Alle,

Ich bin Anfänger auf dem Gebiet der μ-Controllertechnik.
Will nichts desto trotz ein kleineres Projekt realisieren.

Ich habe ein Programm mit 13 LED´s welche aufsteigend immer eine höhere 
Wertigkeit haben.
Nun will ich mit einem Poti, den ich langsam aufdrehe, die LED´s langsam 
hochlaufen lassen. Wenn ich bei einer Einstellung für eine gewisse Zeit 
verharren (5Sekunden), dann soll der μC die LED´s langsam wieder 
runterregeln.

Ich hab mich mal eingelesen das ich hierfür eine AD-Wandlung benötige, 
allerdings ist mir die Anwendung noch nicht ganz klar wie ich mit der 
AD-Wandlung die LED´s ansteuern kann.

Danke für eure Hilfe schonmal im vorraus.

Autor: Frank L. (hermastersvoice)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit der AD Wandlung kannst du keine LED steuern. Das Ergebnis der 
Wandlung wird in einem Register abgelegt und kann dann nach Belieben 
verarbeitet werden.

bye

Frank

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>mit der AD Wandlung kannst du keine LED steuern. Das Ergebnis der
>Wandlung wird in einem Register abgelegt und kann dann nach Belieben
>verarbeitet werden.

sinnfreier Post...


Der AD-Wandler liefert dir einen Wert zwischen 0 und einer oberen Grenze 
(je nach Auflösung des ADC).
Nimmt man beispielsweise einen 8-Bit ADC so, liefert dieser Werte 
zwischen 0 und 255.
Dieses Intervall muß man dann nur noch in 13 Teile teilen und jeden Teil 
jeweils einer Diode zuordnen.
Wenn man dann noch den aktuell eingelesene Wert mit dem vorhergehenden 
vergleicht, kann man auch das gewünschte Timeout programmieren.

Autor: Alexander Liebhold (lippi2000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also du willst quasi mit dem Poti nen Spannunsgteiler aufbauen und somit 
den Wert von 0-2,5V z.B. verändern. Ist die Änderung groß, werden 
entspr. viele LED's angeschalten. Ist die Änderung klein, so nimmt der 
aktuelle Wert ab.

1. ADC einlesen und Wert abspeichern.
2. Delay oder Timer für Verzögerung
3. neuen Wert über ADC  einlesen und separat abspeichern
4. Auswertung der Differenz beider Werte
5. (Diff groß --> ausgabewert erhöhen)bzw.(diff klein --> ausgabewert 
verringern.
6. Ausgabewert für LED's aufbereiten
7. alles in ne Endlosschleife


Gruß Alexander

Autor: Alexander Liebhold (lippi2000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja, zwischen Schritt 6 und 7 musst du natürlich den alten Abtastwert 
mit dem neuen austauschen.

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke schonmal für eure vielen Anregungen.

>Also du willst quasi mit dem Poti nen Spannunsgteiler aufbauen und somit
>den Wert von 0-2,5V z.B. verändern. Ist die Änderung groß, werden
>entspr. viele LED's angeschalten. Ist die Änderung klein, so nimmt der
>aktuelle Wert ab.


Ich will den Poti von 0 an langsam aufdrehen bis zum maximum. Die LED´s 
sollen sich dann von der untersten langsam nach oben schrauben, so das 
am Ende die letzte LED leuchtet wenn ich den Poti voll aufgedreht 
habe.(Also es soll immer nur eine LED leuchten).

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

Bewertung
0 lesenswert
nicht lesenswert
chris wrote:

> Ich will den Poti von 0 an langsam aufdrehen bis zum maximum. Die LED´s
> sollen sich dann von der untersten langsam nach oben schrauben, so das
> am Ende die letzte LED leuchtet wenn ich den Poti voll aufgedreht
> habe.(Also es soll immer nur eine LED leuchten).


Können wir fürs erste den Teil mit 'langsam aufdrehen' und
'die LED sollen langsam der Potistellung nachgeführt werden'
mal vergessen?

Denn dann wird die Aufgabenstellung einfacher:
Die Anzahl der LED soll von der Potistellung abhängen.
So wie die Potistellung ist, soviele LED sollen leuchten.


Einverstanden?

> die Anwendung noch nicht ganz klar wie ich mit der
> AD-Wandlung die LED´s ansteuern kann

gar nicht. Das Eine hat mit dem Anderen nichts zu tun.
Aus dem AD-Wandler kriegst du einen Zahlenwert von 0 bis 1023.
Nicht mehr.
Was du dann mit diesem Zahlenwert machst ist dein Bier.
Du brauchst also eine Umrechnung von diesem Zahlenwert zu
der Anzahl der LED die leuchten sollen. Wie könnte das aussehen?

Nun, nehmen wir einfach mal an, ich liefere dir Zahlen von 0 bis 1023.
(Im Grunde ist es ja völlig egal, woher diese Zahl kommt. Ob ich
die Zahlen vorgebe oder der AD-Wandler ist ja völlig nebensächlich)

Deine Aufgabe ist es aus dieser Zahl zu errechnen, wieviele LED
leuchten sollen. Du weißt
bei einer Zahl von 0 sollen 0 LED leuchten
bei einer Zahl von 1023 sollen 13 LED leuchten

Aus diesen beiden Angaben musst du dir jetzt eine Formel bauen,
die dir für jede beliebige Zahl x, die Anzahl der zu leuchtenden
LED bestimmt.

zb könntest du sagen:  y = x * 13 / 1023;

Setzt du für x (also den Wert den du vom ADC bekommst) mal eine 0
ein, so liefert die Formel den Wert 0 ( also keine LED leuchtet),
setzt du für x mal 1023 ein, so kommt 13 heraus (also alle LED
sollen leuchten). Setzt du 768 ein, so liefert die Formel
768 * 13 / 1023 = 9, also 9 LED sollen leuchten.

Tja. Und jetzt brauchst du noch Programmcode, der sich diese
Zahl hernimmt und die entsprechende Anzahl an LED auch tatsächlich
einschaltet.

Ich würde mit letzterem anfangen:
* ein Programm schreiben, welches eine bestimmte Anzahl an
  LED einschalten kann. Die Anzahl ist natürlich variabel.
* wenn das soweit funktioniert, dann hängst du die Umrechnung
  von 0..1023 davor und testest ob auch das funktioniert
* wenn soweit alles klar ist, dann kommt der ADC ins Spiel,
  der die Zahl liefert, welche nach Umrechnung die entsprechende
  Anzahl an LED einschaltet (das ganze natürlich in einer
  Schleife, damit die LED-Reihe auch immer vom Poti-ADC
  nachgeführt wird)

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dankeschön für eure zahlreichen Lösungsvorschläge

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Chris,

bin auch Anfänger und hatte mir neulich das gleiche überlegt als ich 
über AD Wandlung gelesen habe. Sag mal ob es geklappt hat, wenn du 
fertig bist!

Viele Grüße
Flo

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Flo,

Ja das ganze funktioniert so. Danke nochmals an jeden für eure Beiträge.

Wenn du nicht weiterkommst, kannst du aber auch nochmal den Walter 
fragen.


Gruß Chris

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.