mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Joystick mit variablem Widerstand einlesen


Autor: Jann Schulte (mistanegativ)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also mein Problem is folgendes:
Ich habe einen AVR ATMega8 als "Herz"  eines kleinen Ferngesteuerten 
Autos.
Ich habe 4 Motoren die über Treiber IC's Angeschlossen sind und auch 
soweit funktionieren.
Jetzt habe ich einen Joystick ( keinen wie man jetzt denkt zum an den Pc 
anschließen oder so ) der einfach nur simpel hoch, runter, rechts, und 
links schaltet. Allerdings nicht einfach an/aus sodern auch mit 
variablem Widerstand. Also wenn er nur halb nach oben is, is auch nicht 
ganz HIGH (5V) sondern halt nur 4.99 oder so. Jetzt ist meine Frage ob 
bzw wie ich das messen kann und dann natürlich möglichst das ganze auch 
wieder ausgeben kann ( der Treiber IC "L 298" hat einen Eingang dafür ).

Falls das schon mal jemand gefrag hat und ich es nur nicht gefunden hab: 
Tut mir unheimlich leid, ich habs nicht gefunden, also bitte kein 
Rumgeflame, sondern nur links wenns geht, Danke.

Sofern ich noch mehr angaben machen soll oder so, kann ich das gerne 
tun.

Danke schon mal für eure Antworten.

MFG

MistaNegativ

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit'm AD-Wandler?!

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

> der Treiber IC "L 298" hat einen Eingang dafür

Nein. Der L298 hat digitale Eingänge.

Also : Joystick -> ADC -> PWM -> L289 -> Motor

MfG Spess

Autor: Jann Schulte (mistanegativ)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal, ich hab mal ein bisschen geguckt, würde der hier 
funktionieren? "MAX 517 BCPA"

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Danke erstmal, ich hab mal ein bisschen geguckt, würde der hier
>funktionieren? "MAX 517 BCPA"

Möglicherweise. Aber erkläre erstmal, was die Motoren machen sollen, 
wenn du den Joystick bewegst.

MfG Spess

Autor: Jann Schulte (mistanegativ)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich hab den treiber IC der halt den Enable hat, der wenn man halt 
"fährt" von AVR auf HIGH gesetzt wird. Im Moment ist der salopp gesagt 
"Wie schnell"- Anschluss einfach in Vcc ( also HIGH -> voll ) drin.
Die 4 Motoren sind in 2 Paare gegliedert:
[ vorne links + hinten links ]
[ vorne rechts + hinten rechts ]
-> wenn man 'oben' drückt, sollen beide Paare an gehen ( das 
funktioniert auch schon ) und man nach 'rechts' drückt soll nur das 
linke paar angehen usw. Die Motoren Paare ( also der ENABLE Port vom 
Treiber IC ) sind jeweils an einen Port am AVR angeschlossen.

Autor: Jann Schulte (mistanegativ)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss ich noch was sagen, oder warum antwortet ihr mir nich? ;)

Autor: was-willst-du (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab nicht so recht verstanden, was es werden soll.
Aber vielleicht ist die Antwort weiter oben schon der Schlüssel für 
Deine Aufgabenstellung.

>Also : Joystick -> ADC -> PWM -> L289 -> Motor

Du hast Dich dazu nicht geäußert.
Tja, nun gibts mehrere Annahmen:
- es ist nicht das richtige
- Du hast es gar nicht nicht verstanden
- Du willst nur noch andere Vorschläge sammeln

Was nun?

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich hab nicht so recht verstanden, was es werden soll.

Scheinbar soeine Art Kettenfahrzeug - zumindest klingt die Steuerung 
danach.

>-> wenn man 'oben' drückt, sollen beide Paare an gehen ( das
>funktioniert auch schon ) und man nach 'rechts' drückt soll nur das
>linke paar angehen usw.

Wie liest du denn den Joystick ein?
Benutzt du den AD-Wandler des AVR?
Da müsstest du zwei Kanäle belegen: einen für vor und zurück und einen 
für links/rechts.

>der einfach nur simpel hoch, runter, rechts, und
>links schaltet.

Schaltet er, oder ist es ein Joystick mit Potis drin?
Wenn er nur schaltet, dann musst du nur in einer Schleife die vier 
Eingänge abfragen und je nach Richtung deine Motoren einschalten.

Ein Bild von deiner Schaltung und dein Programmcode wären nicht 
schlecht...

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

Bewertung
0 lesenswert
nicht lesenswert
> Jetzt ist meine Frage ob
> bzw wie ich das messen kann und dann natürlich möglichst das
> ganze auch wieder ausgeben kann ( der Treiber IC "L 298" hat einen
> Eingang dafür ).

Das eine hat mit dem anderen erst mal nichts zu tun.

Den Joystick kannst du mit 2 ADC Wandlern (die du im Mega8 vorrätig 
hast) leicht abfragen. Da kriegst du dann jeweils einen Zahlenwert von 0 
bis 1023 raus, je nachdem wo der Knüppel in einer Achse steht.

Das andere ist die Fragestellung, wie du die Motoren feiner als einfach 
nur ein/aus laufen lassen kannst. Da ist PWM die Antwort.

Aber ob die PWM jetzt von den Werten vom Joystick oder von einer 
Regellogik oder von einem Suchprogramm oder .... angesteuert wird, ist 
erst mal grundsätzlich Jacke wie Hose und hängt nicht miteinander 
zusammen.

Autor: Jann Schulte (mistanegativ)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also verstanden hab ich das schon, nur ich wusste nicht das der Mega8 
schon nen A/D wandler drin hat, deswegen wollte ich wissen ob der den 
ich gepotet hab der richtiege is ^^


Also es ist ein "ganz normales Auto", aber da ich kein Lenkung bauen 
wollte, hab ich einfach die logik eines Kettenfahrzeuges ( wenn man das 
so nenn will ^^ ) benutzt.

Zum "Bild" der Schaltung: ich hab keinen Wirklichen Schaltplan, ich mach 
das eher so frei Hand ;)

Habt ihr vllt irgendwelche Beispieltquellcodes oder Schaltungen, von 
denn ich mir das abgucken kann ?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es mit dem Tutorial oder mit dem Datenblatt des ATmega?

http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC

Autor: Jann Schulte (mistanegativ)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, das werde ich mir mal zu Gemüte führen - Danke erstmal ;)

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.