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
Lesezeichen