Archiv verlassen und diese Seite im Standarddesign anzeigen : Funktioniert der Pollin-Dreh-Encoder mit BASCOM?
Pollin bietet zur Zeit einen Dreh-Encoder für 0,75€ an:
http://www.pollin.de/shop/detail.php?pg=NQ==&a=Njg2OTU3OTk=
weiß jemand ob das Teil direkt über den Bascom Encoder-Befehl ausgewertet werden kann?
felack
ja impulsgeber sind impulsgeber, die funzen damit alle ^^
musste höchstens noch ne rauschunterdrückung oder flankenbereinigeung reinpaggn, aba das wird schon gehen...
Martin
Es ist ein Schalter (für Handbetrieb) mit 40mNm der mechanisch die zwei Phasen A und B mit Kontakten erzeugt.
(Laut Angabe für 1Mio Einstellungen, also recht zuverlässig aber eher weniger als Encoder zur Messung von Motorumdrehungen geeignet. )
Manfred
Andree-HB
04.05.2006, 23:03
..also ich habe Heute auch ein paar von den Encodern bekommen. Mit der neuen Encoder-Funktion im Bascom habe ich allerdings so meine liebe Mühe.
Ich bekomme es nicht hin, dass er von einer zur nächsten Raststellung nach folgendem Code nur um 1 hoch-/herunterzählt, er zählt immer 2 Takte, Richtung wird korrekt erkannt :
Dim A As Byte
Dim B As Byte
Portd = &B11111111
A = 100
Do
Locate 1 , 1
Lcd "Encoder test"
B = Encoder(pind.6 , Pind.5 , Rechts , Links , 1)
Locate 2 , 10
Lcd B
Waitms 300
Loop
End
Links:
Cls
A = A + 1
Locate 2 , 1
Lcd A
Locate 3 , 1
Lcd "rechts herum"
Return
Rechts:
Cls
A = A - 1
Locate 2 , 1
Lcd A
Locate 3 , 1
Lcd "links herum"
Return
Nunja, zur Not könnte man die Variable auch noch durch 2 teilen :-)
Alles mal an Parametern probiert ?
Andree-HB
05.05.2006, 10:08
Jipp, habe mit den Parametern und Wartezeiten herumgespielt....klappt aber nicht....und irgendwie erschliesst sich mir auch nicht der Zustand/Inhalt/Sinn von (hier) variable "b"...ist halt das Beispiel aus der Hilfe...
digitali
06.05.2006, 17:51
Tach,
das habe ich mal vor einiger Zeit mit einem anderen Drehrichtungsgeber gemacht. Drei LED's werden hier kurz angesteuert. Links, Rechts und Enter. Funzt wunderbar.
------schnipp-----
$regfile = "m8def.dat"
$crystal = 16000000
Config Portc = Output
Config Portd = Input
Dim B As Byte
Portd = 255
Do
Portc = &B11111111
B = Encoder(pind.1 , Pind.0 , Links , Rechts , 0)
If Pind.2 = 0 Then
Gosub Enter
End If
Waitms 5
Loop
End
Links:
Portc = &B11110110
Waitms 5
Return
Rechts:
Portc = &B11101101
Waitms 5
Return
Enter:
Portc = &B11011011
Waitms 5
Return
------schnapp-----
Was mir aufählt bei digitali wird Port d auf Eingang gesetzt
und bei Andree-HB fehlt das
Config Portd = Input
mfg,MX3
Lunarman
07.05.2006, 11:32
Vielleicht zählt Bascom auch das an und das aus?
ich kenn mich da nich aus, auch wenn sich das reimt.
Moin
Jetzt wo ich das Topic sehe fällt mir das Tütchen mit den Gebern ein was hier schon seit Wochen rumfliegt.
Der knopf (Eigentlich die Aufnahme dafür) is ja nicht gerade ne Schönheit.
Hat schon einer versucht den abzuziehen ?
@Andre-HB
Ich probier das morgen mal aus,was bei mir passiert.
Jipp, habe mit den Parametern und Wartezeiten herumgespielt....klappt aber nicht....und irgendwie erschliesst sich mir auch nicht der Zustand/Inhalt/Sinn von (hier) variable "b"...ist halt das Beispiel aus der Hilfe...
Das Beispielprogramm ist doch ganz einfach gehalten.
B zeigt den Zustand des Encoders an.
Der Encoder von Pollin kann in den Endstellungen nur 2 Werte annehmen wo beide Kontakte entweder auf oder zu sind.
Hast du die Kontakte mit jeweils einem Kondensator etwas entprellt ?
Wie gesagt,ich probiers morgen auch mal dann haben wir 2 Ansagen.
Dafür nehme ich einfach dein Programm.
Was die Schgaltstellungen betrifft so hab ich da mal eben was auffem Oskar gezaubert (Single mit Pretrigger).
http://home.arcor.de/ratber/encoder.jpg
Die Raststellungen sind mit den roten Strichen eingezeichnet.
Is also wie es sein soll.
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.
$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.
Mad-Onion
27.06.2006, 16:34
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.