Hallo, Kann mir jemand Tipps geben zu einem Programm, mit dem ich mit einem ATMEL ATTINY 85 einen Encoder auslesen kann. Habe gelesen das dies mit einer Quadrature und Interrupts funktioniert. Könnte mir jemand mit einem Ansatz für ein Programm weiterhelfen. Grüße Theoretiker87
Ein ATtiny25 reicht dafür, den absoluten Wert zu erfassen: http://mino-elektronik.de/mt12_iic/mt12_iic.htm 2.Schaltung Die Geschwindigkeit kann aus der Änderung/Zeit ermittelt werden, wobei Du zum notwendigen Meßbereich keine Angaben gemacht hast.
Sven T. schrieb: > Könnte mir jemand mit einem Ansatz für ein Programm weiterhelfen Regelmässiger Timerinterrupt und ein paar Befehle, in Assembler oder C. Ein Attiny85 könnte bis 2 Mio Striche pro Sekunde einlesen. http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.29
Sven T. schrieb: > mit dem ich mit einem > ATMEL ATTINY 85 einen Encoder auslesen kann. Habe gelesen das dies mit > einer > Quadrature und Interrupts funktioniert. Kommt drauf an was du wirklich willst - wenn du nur die Geschwindigkeit brauchst, wie im Titel angegeben, brauchst du nur eine Frequenzmessung an einem Kanal. Georg
Wenn Du einen Vierflankendetektor brauchst: int drehencodertask(int A,int B) { static int enc_last=0,enc_delta=0; char i = 0; if (A) i = 1; if (B) i ^= 3; i -= enc_last; if (i & 1) { enc_last += i; enc_delta += (i & 2) - 1; } return enc_delta; } Das im Timerinterrupt aufrufen. encdelta enthält dann den Zählerwert. input A,B musst Du eventuell invertieren, je nachdem, was dein encoder ausgibt
@MaWin (Gast) >Ein Attiny85 könnte bis 2 Mio Striche pro Sekunde einlesen. Jaja, man muss es immer übertreiben. >http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.29 Jaja, die lieben Fragmente und Prinzipabläufe. Dumm nur, daß dort nix wirklich Komplettes steht. Dann schon eher so, ist immer noch sehr schnell für eine Softwarelösung. Beitrag "Re: Versetzte Rechtecksignale auswerten, kein drehgeber"
Hallo Seven, da Du keine Programmiersprache angegeben hast, ist für Dich auch evtl. LunaAVR mit dem RotaryEncodier.interface und einem TimerN (1kHz - 3Khz) interessant. https://avr.myluna.de/doku.php?id=de:libraries https://forum.myluna.de/ Die Implementierung RotaryEncodier.interface basiert auf Peter Danneggers Implementierung für einen Drehencoder. Anbei ein komplettes Beispiel mit 1kHz Abtastfrequenz.
:
Bearbeitet durch User
Uwe S. schrieb: > da Du keine Programmiersprache angegeben hast, ist für Dich auch evtl. > LunaAVR Meine Güte, wenn einer keine Programmiersprache angegeben hat, programmiert er in C oder frickelt allenfalls noch in Assembler.
:
Bearbeitet durch User
Sven T. schrieb: > Hallo, > ich verwende ATMEL Studio. > > > Grüße Da kann man auch ASM oder C oder C++ verwenden. Etwas mehr angaben wären schon gut. Was genau willst du machen? Was genau hast du schon gemacht? Was genau hat bisher geklappt (und wie)? Was genau hat bisher nicht geklappt? Diese vier Fragen solltest du schon mal beantworten können, dann fällt es uns auch leichter, dir zu helfen. Das Problem bei Encodern ist, dass es so viele davon gibt. Eine interessante Frage wäre auch: Weist du was ein Quadratursignal ist? Wenn wir, neben den obigen Fragen, auch noch deinen Wissensstand kennen, hilft dies bei Antworten noch besser.
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.