-         

Ergebnis 1 bis 8 von 8

Thema: Hallsensor schwingt?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    09.05.2009
    Beiträge
    12

    Hallsensor schwingt?

    Anzeige

    Hallo und gleich danke für jede Hilfe.

    Ich habe in einem Drehgeber (Selbstbau) zwei Hallsensoren vom Typ Siemens TLE 4905L verbaut. Es geht um die langsame Drehung einer Scheibe.
    Leider gibt es jetzt Stellungen der Drehscheibe, die ein "Flackern" des Hallsensors auslösen - d.h. der Interrupt springt massiv an und zählt wie verrückt nach oben.
    Ich kann leider nur mit "Change" arbeiten, damit ich die Drehrichtung mit 2 Sensoren sicher ermitteln kann. Kennt jemand eine Möglichkeit den Hallsensor zu "beruhigen"?

    Hallsensor1 Alias Porte.4 ' Hallsensor 1 definieren an PortE4 JP1Pin6 Int4
    Config Hallsensor1 = Input
    On Int4 Hallsensor1change ' Bei Change auf Routine Hallsensor1change springen
    Hallsensor1 = 1
    Config Int4 = Change ' Change um beide Flanken zu erkennen!!!!
    Enable Int4


    Verzweifelter Gruß

    Plastikboot

  2. #2
    Benutzer Stammmitglied Avatar von lumi
    Registriert seit
    12.11.2011
    Ort
    Shanghai
    Beiträge
    60
    Ich sehe da kein Problem in der Software, wohl aber in der Hardware.
    Wie langsam dreht die Scheibe und wie weit sind die Sensoren auseinander. Welche Magnete hast du verbaut.
    Möglich wäre, dass die Sensoren bei einer bestimmten Stellung auf beide Magnete ansprechen und somit "flackern".
    Meine Blogs: Mein Leben in China - Roboter selbst gebaut
    Mein Favorit unter den Robotern ist natürlich R2D2

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.03.2011
    Beiträge
    1.401
    Zitat Zitat von plastikboot Beitrag anzeigen
    Ich habe in einem Drehgeber (Selbstbau) zwei Hallsensoren vom Typ Siemens TLE 4905L verbaut. Es geht um die langsame Drehung einer Scheibe.
    Leider gibt es jetzt Stellungen der Drehscheibe, die ein "Flackern" des Hallsensors auslösen - d.h. der Interrupt springt massiv an und zählt wie verrückt nach oben.
    Ich kann leider nur mit "Change" arbeiten, damit ich die Drehrichtung mit 2 Sensoren sicher ermitteln kann. Kennt jemand eine Möglichkeit den Hallsensor zu "beruhigen"?
    Das ist ein "klassisches" Problem. Es läßt sich aber lösen, wobei ein Interrupt bei Flankenwechsel nicht die Lösung ist, sondern eher zur Vergrößerung des Problems beiträgt.

    Lösungen findet man hier http://http://dse-faq.elektronik-kom...e-faq.htm#F.29 oder hier http://http://www.mikrocontroller.ne...cles/Drehgeber

    Eine wirkliche kurze Zusammenfassung des Codes sei hier mal kopiert:

    Von: MaWin 25.7.2001

    Am einfachsten realisiert man das mit einer state machine als Tabelle. In C sieht das so aus.

    int table[4][4]={{0,1,-1,0},{-1,0,0,1},{1,0,0,-1},{0,-1,1,0}};
    int position=0; // zaehlen wir mal die absolute Position
    volatile int quadrature_input; // bit 0 und bit 1 sind Quadratureingaenge
    int new_quadrature_value, last_quadrature_value=quadrature_input;

    Folgenden Code ausreichend oft wiederholen (in der Programm Hauptscheife oder einer Zeitgeber gesteuerten Interrupt Routine):

    new_quadrature_value=quadrature_input;
    position+=table[last_quadrature_value][new_quadrature_value];
    last_quadrature_value=new_quadrature_value;
    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    09.05.2009
    Beiträge
    12
    Hallo Lumi und Klebwax,

    @lumi: es liegt wohl nicht an einem doppelten Ansprechen durch zwei Magnete, sondern um den Punkt an dem ein Magnet gleichzeitig auslöst und auch wieder nicht auslöst. Die Interrupts können dann nicht auswerten, weil dieser Wechsel zu schnell von statten geht. Durch Deinen Hinweis bin ich aber ein gutes Stück weiter gekommen - oft ist man ja betriebsblind...

    @klebwax: das war dann der Durchbruch: vom Interruptgesteuerten Abfragen zu einem timergesteuerten Interrupt für die Abfrage - ich rechne mir noch die maximale Geschwindigkeit aus und kann dann einfach damit weitermachen .... leider brauch ich jetzt wahrscheinlich wieder einen Prozessor mehr, weil der voll mit dem Drehgeber beschäftigt ist

    Gruß und Dank

    plastikboot

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.03.2011
    Beiträge
    1.401
    Zitat Zitat von plastikboot Beitrag anzeigen
    leider brauch ich jetzt wahrscheinlich wieder einen Prozessor mehr, weil der voll mit dem Drehgeber beschäftigt ist
    Das ist mir nicht klar. Die drei Zeilen C-Code im Interrupthandler macht doch jeder Prozessor ohne das du das merkst. Andere lassen ein halbes Dutzend und mehr Drehgeber im Hintergrund laufen.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    09.05.2009
    Beiträge
    12
    Hi Klebwax,

    bin halt nur ein kleiner Bascomer - da wird es schnell langsam - und der Atmega soll noch ein paar andere zeitkritische Sachen machen...
    Im Augenblick klappt es eh noch nicht so ganz - aber durchbeissen macht wenigstens satt

  7. #7
    Benutzer Stammmitglied Avatar von lumi
    Registriert seit
    12.11.2011
    Ort
    Shanghai
    Beiträge
    60
    Gut zu wissen, dass du eine Lösung gefunden hast und dass es nicht nur an der Anordnung der Magnete liegt.
    Meine Blogs: Mein Leben in China - Roboter selbst gebaut
    Mein Favorit unter den Robotern ist natürlich R2D2

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.03.2011
    Beiträge
    1.401
    Zitat Zitat von plastikboot Beitrag anzeigen
    Hi Klebwax,

    bin halt nur ein kleiner Bascomer - da wird es schnell langsam - und der Atmega soll noch ein paar andere zeitkritische Sachen machen...
    Im Augenblick klappt es eh noch nicht so ganz - aber durchbeissen macht wenigstens satt
    Bascom ist ja doch auch ein Compiler und der Code sollte auch nicht schlechter sein, als ein aus C erzeugter. Probleme bei zeitkritischen liegen eher im Systemdesign als in der Wahl der Programmiersprache.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

Ähnliche Themen

  1. U813 Prescaler schwingt
    Von chr-mt im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 02.03.2010, 16:51
  2. OpAmp-Spannungsfolger schwingt
    Von malthy im Forum Elektronik
    Antworten: 17
    Letzter Beitrag: 17.02.2010, 21:23
  3. servo schwingt
    Von cmdrkeen im Forum Mechanik
    Antworten: 10
    Letzter Beitrag: 11.02.2010, 12:43
  4. Op-Schaltung schwingt :-(
    Von Philipp83 im Forum Elektronik
    Antworten: 26
    Letzter Beitrag: 08.03.2008, 13:46
  5. OP schwingt
    Von Crazy Harry im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 22.09.2007, 22:55

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •