-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Hal-Sensor direkt oder mit Wiederstand an das Board?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    20.01.2008
    Beiträge
    40

    Hal-Sensor direkt oder mit Wiederstand an das Board?

    Anzeige

    Hallo,
    möchte die Drehzahl mittels Hal-Sensor an einem RNBFRA messen. Benötigt man eine Schaltung dazwischen (m. Widerstand) oder Schliesst man den Hal Sensor direkt an einen Eingang an? Ein Schaltbild habe ich in der Beschreibung, die da bei war nämlich nicht gefunden.
    Man will sich ja nichts zerschiessen und fragt Experten lieber vorher.
    Gruss
    Sascha

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Ein Hallsensor liefert nur geringe Ausgangsspannungen und es braucht also eine "Auswerteschaltung", um das Signal an der RNBFRA nutzen zu können.

    Gruß Dirk

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    20.01.2008
    Beiträge
    40
    Hallo Dirk,
    nochmals vielen Dank für die schnelle Antwort. Wie könnte denn so eine Schaltung aussehen? Gibt es evtl. Beispiele bzw. Schaltpläne?
    Hier im Forum habe ich im Bereich RN-Wissen/Bascom-Quellcode/Drehzahlmessung nur einen Inkremental-Geber mit einem 330 Ohm Vorwiederstand gefunden. Ist das mit einem Hal-Sensor vergleichbar oder müsste diese Auswerteschaltung komplexer aussehen?
    Viele Grüße
    Sascha

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Da gbt's im Forum einige Experten-Gespräche.
    Geh' mal auf die Suche.
    Z.B.: http://www.roboternetz.de/phpBB2/viewtopic.php?t=26341
    oder http://www.roboternetz.de/phpBB2/viewtopic.php?t=24248

    Gruß Dirk

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    20.01.2008
    Beiträge
    40
    vielen Dank für die Links. Nur leider kenne ich mich mit Elektrotechnik überhaupt nicht aus - bis auf dass ich eine Schaltung nach Plan löten kann. Auf den Seiten habe ich sehr unterschiedliche Baupläne gefunden, die mir jedoch sehr wenig sagen. (Bin nämlich Wirtschafts-Inf. von Beruf) Vielleicht habe ich ein paar detailliertere Infos für den Hall-Sensor vergessen mit an zu geben. Den Hall-Sensor habe ich bei Robotikhardware.de gekauft. In dem Datenblatt-PDF stehen so einige Abbildungen für Schaltungen. Dort steht zum einen, dass in dem Hall-Sensor schon eine Schaltung drin ist, die gegen Verpolung sowie den Output schützt (m. Schmitt-Trigger - was auch immer das zu heissen mag).
    Er hat ein digitales Output-Signal und auf Seite 6 im PDF steht u.a. dass er bis zu 32 Volt Ausgeben kann. Finde eigentlich diesen Output nicht gerade sehr gering -oder ich versteh das ganze falsch... Auf Seite 10 ist zwar eine Schöne Schaltung hinter dem Hall-Sensor zu sehen, aber es fehlen die Angaben des Widerstandes sowie von einem Kondensator. Auf Seite 11 ist dann eine ähnliche Schaltung, die sich aber von jeder anderen hier und über google gefundenen unterscheidet. Das PDF-File ist hier angehängt.
    Kann der Hall-Sensor eigentlich vom direkten Anschliessen ans Board zerstört werden? Habe den Hall-Sensor testweise mal an +12V, GND und den Hall-Output an Signaleingang 1 des ersten Eingabeports angeschlossen. Aber es konnte kein Signal verarbeitet werden, als ich den Magneten mit einem Abstand von ca 1mm an einer Bohrmaschiene vor dem Sensor kreisen liess. Als Ausgabe sollte ein Servo Drehzahlabhängig seine Stellung verändern. (Quellcode ist auch beigefügt)
    Gruß
    Sascha
    Code:
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    
    $crystal = 8000000                                          'Quarzfrequenz
    
    Declare Sub Rnb_servo(byval Servonummer As Byte , Byval Position As Byte)
    
    
    Config Int0 = Falling
    
    Config Timer1 = Timer
    Const Timervorgabe = 3036
    
    
    Dim Zaehlerirq0 As Long
    Dim Impulseprosekunde As Long
    Dim Impulseprominute As Long
    Dim Umdrehungenprominute As Integer
    
    Dim I As Byte
    
    Zaehlerirq0 = 0
    On Int0 Irq0
    Enable Int0
    
    On Timer1 Timer_irq
    Enable Timer1
    
    Enable Interrupts
    
    
    Do
       Impulseprominute = Impulseprosekunde * 60
       Umdrehungenprominute = Impulseprominute
    
       I = Umdrehungenprominute
       Call Rnb_servo(1 , I)
       Wait 1
    Loop
    
    
    Sub Rnb_servo(byval Servonummer As Byte , Byval Position As Byte)
       Print "#s" ; Chr(servonummer) ; Chr(position)
    End Sub
    
    End
    
    'Pro Impuls ein Aufruf
    Irq0:
     Incr Zaehlerirq0
    Return
    
    
    'Pro Sekunde ein Aufruf
    Timer_irq:
      Timer1 = Timervorgabe
      Impulseprosekunde = Zaehlerirq0
      Zaehlerirq0 = 0
      Return

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    20.01.2008
    Beiträge
    40
    Irgendwie ist das Attachment nicht mitgekommen...
    Angehängte Dateien Angehängte Dateien

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Dieser Sensor hat den Verstärker etc schon eingebaut.
    Der Ausgang ist ein open-collector, dh du brauchst einen Pullup, so ca 10k. Vielleicht reicht auch der interne des AVRs.
    Anschluss: Ausgang (Q) an den AVR, Q über einen Pullup an 5V, Vs an 5V und GND an GND.
    Auswertung: wenn ein Magnet erkannt wird, zieht Q auf low. Ansonsten liegt Q auf high.
    Testmöglichkeit: An Q eine LED mit Vorwiderstand nach 5V anschließen. Sie leuchtet, wenn der Ausgang aktiv ist.

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    20.01.2008
    Beiträge
    40
    der Test mit der LED funktioniert. Nur das Board kann offenbar Int0 (Int1 habe ich auch mal zum testen angeschlossen - da hat sich auch nichts getan) nicht verarbeiten - die Interrupt-Routine wird nicht aufgerufen. Habe es mit einem 10 K Widerstand zwischen Q und 5V sowie auch ohne probiert. Habe es dann komplett ohne Sensor versucht: nur mit einem Kabel von +5v an den Int0 gehalten, um Rising hervor zu rufen. Hat aber auch keinen Sprung in die Interrupt Routine hervorgerufen.
    Habe es auch mit und ohne Getriebemotoren-modus probiert - auch ohne erfolg.

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    20.01.2008
    Beiträge
    40
    habe meine Fusebit-Einstellungen als Anlage beigefügt. Vielleicht liegt es ja daran. Mit Fusebit KLA987= 111111... habe ich es auch schon ausprobiert - jedoch auch ohne erfolg. Nutzt evtl. jemand Interrupts bei einem ATMEGA32 und kann hier die Fusebit-Einstellungen posten? Anmerkung: das Pony-Programm funktioniert bei mir nicht, da ich einen USB-ISP-Programmer habe. Daher kann ich nur Bascom für die Fusebit-Konfiguration nutzen.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken fusebits_119.jpg  

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Die Fusebits haben keinerlei Einfluss auf die Interrupts.
    Wie sieht dein aktuelles Programm aus?

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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