Hallo Leute! Ich bin gerade mit einem neuen Projekt beschäftigt. Manche Taster möchte ich nun durch Encoder-Drehschalter ersetzen. Conrad: 700699 Man hat, wenn man z.B. durch ein Menu scrollen möchte einfach mehr Gefühl, als mit Taster. Ich habe euch das Datenblatt mitgesendet. Auf Seite 6 sieht man wie man das Ganze entprellen kann. Aber an welcher Stelle führe ich die beiden Leitungen in den µController hinein? Gehe ich von Punkt Terminal A und Terminal B aus in den Mikrocontroller oder jeweils von dem Punkt, der sich zwischen Widerstand und Kondensator befindet? Danke für eure Hilfe Tschüss Martin
Hallo nochmal! Mit Seite 6 ist jene Seite gemeint, die der Acrobat-Reader anzeigt. Das Datenblatt selbst ist mit Seite 8/8 beschriftet. Tschüss Martin
'Terminal A' und 'Terminal B' würden bei uns Pin 1 bzw. Pin 2 heissen. Gemeint sind einfach nur die Anschlusspins des Bausteins. Dein entprelltes Signal kriegst du am besagten Punkt zwischen Widerstand und Kondensator, so du nicht einfach in Software entprellen willst. Ich hab jetzt nicht nachgesehen. Gibts die Dinger eigentlich auch mit einem integrierten Drucktaster? Sowas wäre für ein Menü ideal (meine Multiplex-Fernsteuerung hat sowas): Mit drehen scrollt man zum Menüpunkt, durch drücken wählt man ihn aus.
Ja gibt es auch. Ich bin total begeistert. Die haben die Bestellnummer: 700700 Danke für die Antwort. Tschüss Martin
Conrad hat schon länger Drehimpulsgeber von Hopt-Schuler im Programm 705514 705538 705526 705586 705594 und seit kurzem die genannten Typen von Alps.
http://www.hopt-schuler.com/ddm/kurzinfo.asp?tytypnr=427&sp=D&tytypn=427 http://www.hopt-schuler.com/doc/Schalterkatalog.pdf Typ DDM427 Früher hatten die sogar richtige Datenblätter als PDF, aber jetzt hat anscheinend die Werbeabteilung die Macht übernommen, nur noch bunte Bildchen "formschön, zweckfrei und gegen Aufpreis entnehmbar" (Loriot), schade.
Ja, ich habe gerade vor 10 Minuten auch so ein ALPS Ding mit Drucktaster eingelötet und via ASM in einem Tiny2313 laufen. Die Entprellung habe ich komplett in Software eingebaut, in einem Timer-Interrupt, der ca. alle 750µs mal guckt, was los ist. Die Abfrage des Encoders auf Richtung und Betätigung ist recht einfach, da die Flanken auch bei schneller Drehung mit Hand mehr als 2ms auseinanderliegen. Ich habe die Aufgabe so gelöst, daß ich Pin 1 auf High->Low teste und in dem Moment auf den Pegel des zweiten Pins gucke. Ist dieser ebenfalls schon Low, wurde gegen die Uhr, ist er noch High, wurde mit der Uhr gedreht. Da ich nach dieser Abfrage den Test einstelle, bis beide Leitungen wieder High sind, verpasst der Controller keinen Impuls und das Prellen wird wirkungsvoll unterdrückt. Mit einer Handvoll Flags wird neben dem Encoder dann auch gleich noch der Taster ausgewertet. Geht echt fein.
Ganz genau; das Entprellen ruig der Software überlassen. In Zeiten des Sparens kann man auf die Kosten der Kondensatoren und die Zeit für das einlöten gut verzichten. So wie das TravelRec. beschreibt funktionierts prima, habs auch so gemacht (in Timer-Interrupt pollen / mit State-Machine auswerten).
Hallo Leute TravelRec welchen Schalter hast du verwendet? Wäre es möglich den Code zu posten, würde mich interessieren wie du es realisiert hast. mfg Alex Z.
Den ALPS schlagmichtod von C****d, der so arbeitet, wie in dem von Martin geposteten Datenblatt, also mit den durcheilenden, versetzten Pulsen bei jeder Rastung. Code kann ich posten, ist aber nicht bereinigt und braucht z.Zt. einen Interrupt und ein GPIOR vom Tiny2313 für die Flags. Der ganze Kram ist eingewoben in eine Displaysteuerung die noch nicht fertig ist. Im Großen und Ganzen macht der Code genau das, was ich oben mit Worten beschrieben habe.
Peter Dannegger hat dazu auch schon was in der Codesammlung gepostet. Allerdings mit der Timer-Tasten-Poll-Variante...
Wenn es fertig ist. Und du bereit bist es zu posten würde ich mich darüber freuen. mfg Alex
Na okay, hier isser. Sicher nicht perfekt und auch nur in Schnipseln, die nichtrelevanten Teile habe ich gelöscht. Dem Button ist noch ein zusätzlicher Zähler zugeordnet, der es ermöglicht, zwischen kurzen und langen Tastendrücken zu unterscheiden, um zusätzliche Schaltfunktionen zu erreichen. Gebaut wurde das Ganze für einen Tiny2313, mit 8MHz Clock.
Ach ich seh´ gerade, die Register TempH und Temp3 werden hier nicht benutzt, brauchen für den Fall also nicht definiert zu werden. Die ISR erledigt die komplette Abfrage und einen Sekundentimer, die Auswertung der Schaltsignale muß dann in der Main erfolgen.
Und es muß der Interrupt für OutputCompareA Timer0 natürlich aktiviert werden: ldi Temp, 0b00000001 out TIMSK, Temp Und der passende InterruptVektor muß entsprechend adressiert sein.
Ähem, der Encoder hängt an PortA 0 und PortA 1, der Button an PortB 1 - zum besseren Verständnis. Die internen Pullups für die entsprechenden Pins müssen gesetzt sein.
Habe den Encoder PANASONIC EVEQDBRL416B verbaut. Er arbeitet aber nicht wie gewollt (zumnindest von mir). Wenn ich nach rechts drehe ist soweit alles ok, wenn ich nach links drehe bekomme ich sehr häufig die Bitfolge für Rechtsdrehung geliefert. Habe schon mehrere Exemplare ausgetestet. Ist so ein Problem bekannt und habt ihr vielleicht eine Lösung?
Hi, sind das die Pnasonic Teile von Pollin? Mit einigen (wenigen) hatte ich auch schon Probleme. Die Rastpositionen werden nicht immer sauber angelaufen und manchmal "verschluckt" er einige Impulse, daher dann die falsche Decodierung. Gruß Fred
moosmichel001 wrote: > Ist so ein Problem bekannt und habt ihr vielleicht eine Lösung? Ja, nimm eine Routine, die auch entprellt: Beitrag "Drehgeber auslesen" Peter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.