-
So,habs auch mal geschafft das Teil anzutackern.
Ja,der Encoder-Befehl aus Bascom geht davon aus das der Encoder bei "jedem" Flankenwechsel rastet aber da er eben immer beide Flanken mitnimmt werden auch immer schön zwei schritte angezeigt und gezählt.
Das ist also schon richtig so das er beim Pollin-Encoder gleich 2 zählt.
Wenn man ihn langsam dreht dann kann man schön die einzelnen Stellungen sehen (Rechts 0,1,3,2 Links 0,2,3,1)
Hier noch mein Programm.
Es Basiert auf dem von Andree-HB
Ich hab es nur etwas umgestellt weil die vielen LCD-Ausgaben zuviel Zeit gekostet haben.
Jetzt gibt es für jede Anderung nurnoch 2 Ausgaben was die Reaktionsgeschwindigkeit verbessert hat.
Ach ja.
Hab es auf 2x16 angepasst weil ich gerade nix anderes greifbar hatte.
Code:
$crystal = 8000000
$baud = 300
$hwstack = 64
$swstack = 30
$framesize = 120
Dim A As Byte
Dim B As Byte
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.0 , Db7 = Portc.1 , E = Portd.7 , Rs = Portb.0
Config Lcd = 24 * 2
Initlcd
Cls
Cursor Off
Config Pind.5 = Input
Config Pind.6 = Input
Cls
Locate 1 , 1
Lcd "Encoder test"
A = 100 'irgendein Startwert
Locate 2 , 1
Lcd A
Main:
B = Encoder(pind.6 , Pind.5 , Rechts , Links , 1)
Goto Main
Links:
Decr A
Locate 1 , 14
Lcd B
Locate 2 , 1
Lcd A ; " Links "
Return
Rechts:
Incr A
Locate 1 , 14
Lcd B
Locate 2 , 1
Lcd A ; " Rechts "
Return
End
-
Hi,
ich habe auch mal noch eine Frage zu den Drehencodern. Ich habe zwar nicht die von Pollin, aber wenn ich die mit dem o.g. Code ausprobiere, dann erhalte ich beim Rechtsdrehen:
Rechts
Rechts
Rechts
und beim Linksdrehen
Links
Links
Rechts
das wäre ja nicht so schlimm, wenn es immer so wäre.
Nur habe ich verschiedene Werte, wenn ich den Drehencoder langsam nach links drehe und andere Werte beim schnell nach links drehen
Habt ihr da noch ne Lösung?
-
Ja,die Verarbeitungsgeschwindigkeit ist begrenzt.
Wenn du wie wild rumkurbelst dann bekommt Bascom nicht jeden Flankenwechsel mit und produziert Müll.
Wer es schnell mag der wird nen Decoder nebst Entprellung hinten anhängen.
Da gibt es dann einfach je einen Impuls für Links/Rechts bzw, Auf/Ab.
Danach evtl. noch nen Auf/Ab Zähler angehangen.
Damit hat der Controller dann Luft für anderes und verpasst nix.
-
Hallo,
danke für deine Antwort. Weist du welcheln Decoder man da verwenden kann?
-
Ja,zb. den LS7083/84 oder LS7183/84 aber die sind nur schlecht zu bekommen.
Man kann sich auch selber ne Schaltung zusammentackern.
Dafür braucht man nur jeweils einen CD4013 und CD4093 nebst ner Hand voll anderer Bauteile (Widerstände und Kondensatoren).
Kann ich dir auch mal raussuchen.
Findeste aber auch überall im Web.
-
Hallo Ratber!
Nachdem ich jetzt mehrfach google bemüht habe, habe ich immernoch keine passende Schaltung gefunden, die die beiden oben genannten Bauteile verwendet!
Auch finde ich den Baustein selber nicht bei Reichelt, sondern nur einen MOS 4013 bzw MOS 4093.
Hoffe, du kannst mir ein paar Tips geben!
Tobias
-
Ein Quadratursignaldecoder?, der ist hier beschrieben:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=10007