mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Poti zur Dateneingabe verwenden


Autor: Axel(ojojo) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jo

Wie verwende ich einen Poti und den AD-Wandler um einen Wert zwischen 
0-255 auszuwählen ?

jo Axel

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin moin Axel,

in der einfachsten Form gehts folgendermaßen:

Ersten Anschluß des Potis an 1,245V legen.
Zweiten Anschluß des Potis an Masse.
Schleifer (mittlerer Anschluß) an ADC 0.

In der Codesammlung findest du bestimmt Routinen, mit denen du den AVR 
füttern kannst.
Dann (wie gesagt im einfachsten Fall) einen Port als Ausgang wählen und 
dort 8 LED`s anschliessen. LED`s so anordnen, das Bit 0 rechts steht 
(LSB) und Bit 7 am weitesten links (MSB). Die anderen 6 LED`s dazwischen 
anordnen.  Je nach angelegter Spannung geben die LED`s jetzt das 
Bitmuster der Spannung wieder.

Gruß,
Günter

Autor: Holger Buss (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Axel,

Du kannst auch 5V ans Poti anlegen. Der ADC erzeugt dann Werte von 0 bis 
1023. Wenn Dir die Zahl zu gross ist, kannst Du ja zwei mal rechts 
schieben.

Gruss,
Holger

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin Holger,
ich schrieb ja, in der einfachsten Form.

Gruß,
Günter

Autor: Thomas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Die Eingabe von Werten via Poti
ist für Hobbyanwendungen ein clevere Sache.
Ich versuche es so einfach wie möglich.


Das Poti mit einem Bein an 0V und mit dem
anderen Bein an +5V. Den Schleifer verbindest
Du mit dem AD-Eingang z.B. bei mir AD7.
Die Referenzspannung von 5V muß auch angelegt werden.

Dieser Pseudocode für den 8535 funktioniert bei mir.

Per Interrupt holst Du den AD-Wert in zwei Hilfsvariablen

SIGNAL (SIG_ADC)  // Interrupt kommt wenn der Wandler mit der Conversion 
fertig ist
  {
  lo_val = inp(ADCL);
        // Wert des AD-Wandlers in Variable            transferieren
  hi_val = inp(ADCH);
        // Wichtig: immer zuerst
               das low-byte lesen
  }


main()

Hiermit schaltest Du einen Analogeingang (hier 7) intern auf den 
AD-Wandler

outp(7, ADMUX);    // Den Analog Eingangsmultiplexer auf Eingang AD7 
stellen


z.B. in einer Schleife startest Du die Wandlung

outp((1<<ADEN)|(1<<ADSC)|(0<<ADFR)|(1<<ADIE)|(1<<ADPS0)|(1<<ADPS1)|(1<<A 
DPS2),ADCSR);
  // AD-Wandler einschalten => ADEN
  // AD-Wandlung starten => ADSC
  // AD-Wandlung 1 = free running, 0 = single conversion => ADFR
  // AD Complete Interrupt freigeben => ADIE
  // ADPS0-2 bei 8MHz die Konversationsfrequenz auf 8MHz/128= 62500 Hz 
stellen
  // ADCSR = AD-Steuerregister

Irgendwann ist dann der Wandler fertig...
und Du kannst den 10Bit Wert auf 8Bits umwandeln.

ad = 0;
ad = (hi_val<<6) | (lo_val>>2);

in ad ist dann Dein Wert

Ich hoffe Du es ist klar geworden?

Autor: M. Johann Petersen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde gerne einen analogen Joystick an den ADC anschliessen.

Wie kann ich das machen, da ja die Potis dort nicht als Spannungsteiler 
sondern nur als einstellbarer Widerstand beschaltet sind?

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Spannungsteiler bauen (siehe Anhang).

Autor: M. Johann Petersen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Andreas!

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.