www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Drehrichtung und Umdrehungen erkennen u. zählen


Autor: ANDREAS25 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Ich habe eine Frage
Ich möchte von einer Seiltrommel die sich von 0 bis max. 200 U/min Dreht
die Anzahl der Umdrehungen (nicht die Drehzahl/min) auf einem lcd 
ausgeben und wenn sich die Trommel in die andere Richtung dreht sollen 
die Umdrehungen wieder heruntergezählt werden. (Seil abspulen 
raufzählen,
Seil aufspulen runterzählen, Seil völlig aufgewickelt Zähler wieder bei 
0)
Ich habe dazu zwei Reedschalter einen für die Richtung einen für die
Umdrehungen.
Eigendlich ganz einfach.
Meine Frage ist nur wie ich das Ganze am besten an einen Atmega8
anschließe. Meine Überlegung.
Die zwei Reeds an Int0 und Int1,für jeden eine eigene ISR
Die erste ISR setzt eine Variable für die Drehrichtung auf 1
Die zweite ISR zählt eine Variable je nach Drehrichtung rauf oder runter
und gibt diese am lcd aus und sezt die Drehrichtung wieder auf 0.
Oder kann ich bei so langsamen Ereignissen die Interrupts weglassen
und das Ganze in eine Schleife setzen und mit if then wie einen
Taster abfragen?
mfg andreas

Autor: Frank501 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich braucht man dazu nur eine ISR.
Wenn Eingang A einen Interrupt auslöst, wird Eingang B abgefragt. Wenn 
Eingang B dann hi ist dreht sich die Trommel z.B. rechts herum und man 
inkrementiert einen Zähler. Wenn Eingang B lo ist, dreht sich die 
Trommel in die andere Richtung und der Zähler wird wieder dekrementiert.

Die Herausforderung sehe ich aber eher darin, das wenn das Seil nicht 
gleichmäßig aufgewickelt wird, das dann die Umdrehungen beim Aufwickeln 
nicht mehr mit denen beim Abwickeln übereinstimmern, weil das Seil sich 
anders aufwickelt und über einer anderen Windung liegt.

Frank

Autor: ANDREAS25 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Das mit dem ungleichmäßigen Aufwickeln ist mir bewusst stellt aber in 
dem
Fall kein Problem dar.
Aber wie stelle ich mit einer ISR die Drehrichtung fest.
Ich bekomme vom Reed ja nur eine kurze Flanke oder "merkt" sich der Int
die fallend Flanke. Wenn ich langsam drehe ist der eine Eingang schon 
wieder low bis der zweite ausgelöst wird.
mfg andreas

Autor: Frank501 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In dem Falle würde es helfen, die Magneten so zu versetzen, daß die 
Reedkontakte versetzt so ausgelöst werden, daß sich die Signale zu 50% 
überlappen.

Frank

Autor: ANDREAS25 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich habe es mal mit folgendem Code im MyAVR Board versucht.
Hab noch zwei externe Pullups hizugefügt, funktioniert im Versuchsaufbau
eigendlich.
mfg andreas


Reed1 Alias Pind.2
Config Reed1 = Input
Reed1 = 1
Reed2 Alias Pind.3
Config Reed2 = Input
Reed2 = 1

On Int0 On_int0
On Int1 On_int1
Config Int0 = Falling                                       '
Config Int1 = Falling
Enable Int0
Enable Int1
Enable Interrupts

Do
Loop

On_int0:
    Waitms 10
    Richtung = 1
Return

On_int1:
      Waitms 10
   If Richtung = 0 Then
      Incr Umdrehungen
      Else
      Decr Umdrehungen
   End If

      Print "Umdrehungen" ; "  " ; Umdrehungen
      Richtung = 0

Return

Autor: Ralph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als alternative zu deiner Lösung sieh dir doch mal den Sensor an : 
TLE4942

http://www.infineon.com/dgdl/Data_Sheet_TLE4942-1_...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.