www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wieviele Encoder bei AVR / Atmega?


Autor: Alexander W. (wackazong)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte so etwas in der Art wie eine Midibox realisieren 
(www.ucapps.de), bin aber noch am überlegen auf welcher 
Mikrocontrollerplattform ich das aufbaue. Ich neige eher zu AVR, scheint 
ein bisschen einfacher zu programmieren zu sein. Ich brauche ca. 200 
Taster und 40 Drehgeber, die ausgelesen werden müssen. Daher nun meine 
Frage:

Wieviele Drehgeber kann ich mit einem AVRuC (meinetwegen der Mega644) 
zuverlässig auslesen (per Timerinterrupt, hab ich schon gelesen)?

Bei den Buttons genau dasselbe: Wieviele maximal für einen uC?

Es hat doch sicher schon einmal jemand so etwas gebastelt auf einem AVR, 
oder nicht?

Ich habe im Forum gesucht, und viele Einträge zu "Wie lese ich einen 
Drehgeber/Encoder aus" gefunden, aber nichts zur Anzahl.

Wäre für ein paar Tips sehr dankbar.

ALEXander.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne eine Anforderung an die Hardwareumgebung zu stellen, ist deine 
Frage ist so nicht zu beantworten. Absolute Zahlen schonmal garnicht.

Es gibt sicherlich viele Wege, auf Drehgeber zuzugreifen und sie 
auszulesen. Jedenfalls könnte ich mir Wege vorstellen, die es 
ermöglichen, beliebig viele Drehgeber anzuschliessen. Das ist natürlich 
auch mit einem gewissen Aufwand verbunden. Selbiges gilt auch für die 
Taster.

Autor: Kuen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich brauche ca. 200 Taster und 40 Drehgeber, die ausgelesen werden müssen.

Also brauchst du im einfachsten Fall einem µC mit ca. 240 I/O-Ports. 
Oder man schaltet eine Logik davor, Tastermatrix oder ähnliches. Dann 
sind es natürlich weniger.


>Wieviele Drehgeber kann ich mit einem AVRuC (meinetwegen der Mega644)
>zuverlässig auslesen (per Timerinterrupt, hab ich schon gelesen)?

Kannst es per Timerinterrupt machen oder über die externen machen. Wie 
viele du zuverlässig auslesen kannst hängt natürlich von der Anzahl der 
möglichen Interrupteingänge ab und vom den Signalen selber die 
ausgewertet werden sollen.

Autor: Jörg B. (manos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was sind das für Tasten? Wie viele können gleichzeitig gedrückt sein, 
wie lange sind die mindestens gedrückt, wie schnell max.? Evtl. geht 
sowas dann mit Schieberegistern.
Wenn es sich um Keyboard-Tasten (Musik, nicht Tastatur) handelt, was ist 
mit der Anschlagdynamik?

Autor: T.Danielzik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wichtig an der Stelle ist noch,
was soll mit den eingelesenen Drehgeberwerten geschehen?
Nur anzeigen, oder an eine Steuerung zur Regelung weiterreichen?

Autor: Alexander W. (wackazong)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

vielen Dank für die Fragen, ich versuche mal ein bisschen ausführlicher 
zu werden:

- Die Taster können gleichzeitig gedrückt werden. Maximal 10 
gleichzeitig, jeder Finger ein Taster.
- Wie lange sind die Taster gedrückt? So kurz wie man das mit einem 
Finger machen kann. Ich verwende diese kleinen Printtasten, die man 
direkt auf die Platine löten kann.
- Die Encoder können gleichzeitig bedient werden, allerdings habe ich 
nur zwei Hände, daher werde ich maximal 2 Encoder gleichzeitig drehen 
können.
- Anschlagdynamik spielt keine Rolle.

Ich denke es sollte mit Schieberegistern gehen, so wird das bei ucapps 
auch gemacht. Dort gehen auf einem 40MHz PIC 64 Encoder (ohne Taster) 
gleichzeitig, das ist aber auch in Assembler programmiert und jahrelang 
optimiert, ich würde es eben in C machen wollen.

Ich hoffe das ich mein Projekt ein bisschen besser erklären konnte. Wenn 
nicht, gerne weiterfragen, das ist jedenfalls wirklich das schnellste 
Forum was ich bisher unter den Fingern hatte :)

Gruss, ALEXander.

Autor: Alexander W. (wackazong)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ergänzung:

- Die Drehgeberwerte und Tasterwerte sollen per MIDI oder USB an einen 
Computer geschickt werden.
- Ganz wichtig noch: Die Drehgeber sollten Beschleunigung unterstützen: 
Je schneller ein Drehgeber/Encoder gedreht wird, um so grösser sollten 
die übermittelten Schritte sein (ist im MIDI-Controller Bereich üblich 
und sehr praktisch)

Danke, A.

Autor: Jörg B. (manos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also 10 Tasten gleichzeitig ist dann wahrscheinlich nix mehr für Matrix, 
aber Schieberegister sollte machbar sein.
Man müsste dann halt mal ausrechnen, in wie viel ms die 200 Bit des 
Schieberegisters eingelesen und ausgewertet sind.
Ist natürlich abhängig von Programmiersprache und Taktfrequenz.

Autor: Jörg B. (manos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alexander W. wrote:
> - Ganz wichtig noch: Die Drehgeber sollten Beschleunigung unterstützen:
Ist eine frage der Software, nicht der Hardware.

Autor: Alexander W. (wackazong)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

klar, die Schnelligkeit der Auswertung ist abhängig von 
Programmmiersprache und Taktfrequenz.

Sagen wir mal Taktfrequenz 16MHz (Atmega32) und Programmiersprache C. 
Zusätzlich das Beschleunigungsfeature, was ja auch Zyklen kostet.

Über den Daumen gepeilt (ich weiss es einfach nicht, ich denke ihr könnt 
das evtl. besser abschätzen), wieviele Atmegas32 braucht man?

Einen?

Zehn?

Hundert?

Danke! Alexander.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Alexander W. (wackazong)

Die 200 Tasten sind kein Thema. Ob nur per 16x16 Matrix oder über 
Schieberegister, das sind Peanuts. Deine 40 Drehgeber sind da schon 
etwas anders. Mal als Überschlag.

40 Drehgeber -> 80 Pins

32 Pulse/U, Max. Drehzahl 3 Hz -> 100 Hz

Einlesen mit 300 Hz über 10 Schieberegister -> 10..50us
Auswertung kann ich jetzt nicht abschätzen.

Hmmm. Vielleicht brauchst du einen uC für die USB Kommunikation und 
Tasten und einen zweiten für die Drehgeber. Aber mit 16 MHz takt solle 
es auch ein AVR schaffen.

MFG
Falk

Autor: Jörg B. (manos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Raten würde ich mal 2-3. Einer für die Encoder und einer für die Tasten. 
Vielleicht noch einen dritten der die Ergebnisse der beiden dann an den 
PC sendet.
Kann natürlich auch sein, dass man für die Encoder mehr benötigt 
abhängig davon wie man die abfragen kann (wenn auch da Schieberegister 
geht reicht evtl. einer).

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für die Beschleunigung kann man sich hier Ideen holen.

Beitrag "Drehimpulsgeber drehgeschwindigkeitsabhängig auslesen"

MfG
Falk

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.