Encoder Geschwindigkeit mit einem Attiny 85 auslesen

OP #5304571
Lesenswert?

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
Gast #5304621
Lesenswert?

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
#5304648
Lesenswert?

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
#5304667
Lesenswert?

@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"
#5304677
Lesenswert?

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.
Angehängte Dateien:
#5305037
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren