Frank (Diskussion | Beiträge) |
Pit49 (Diskussion | Beiträge) K |
||
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
+ | Wie einfach man mit einem Drehgeber die Drehzahl messen kann zeigt diese Schaltung /dieser Quelltext. Für dieses Beispiel wurde ein Drehgeber GP1A030 mit Codescheibe verwendet. Es könnte aber genauso ein GP1A038 oder ein ähnlicher Sensor sein. In diesem Demo wird nicht die Drehrichtung ausgewertet, obwohl es mit diesem Sensor ebenfalls möglich wäre. | ||
+ | |||
+ | |||
+ | [[Bild:drehgeber_an_rncontrol.gif|center|framed|Beispielschaltung, wenn man lediglich die Drehzahl ohne Drehrichtung auswerten möchte. Als Widerstand hat sich 330 Ohm als gut erwiesen.]] | ||
+ | |||
+ | |||
<pre> | <pre> | ||
Zeile 5: | Zeile 11: | ||
'für | 'für | ||
'RoboterNetz Board RN-CONTROL ab Version 1.1 | 'RoboterNetz Board RN-CONTROL ab Version 1.1 | ||
− | 'Das neue preiswerte Controllerboard zum | + | 'Das neue preiswerte Controllerboard zum Experimentieren |
' Achtung: | ' Achtung: | ||
Zeile 12: | Zeile 18: | ||
' | ' | ||
'Aufgabe: | 'Aufgabe: | ||
− | ' Dieses Testprogramm demonstriert wie man mit | + | ' Dieses Testprogramm demonstriert wie man mit Drehgebern |
' die Umdrehungszahl von Motoren anzeigen kann | ' die Umdrehungszahl von Motoren anzeigen kann | ||
' Als Drehgeber wird ein Sharp GP1A030 mit Codescheibe | ' Als Drehgeber wird ein Sharp GP1A030 mit Codescheibe | ||
Zeile 18: | Zeile 24: | ||
' In diesem Demo wird nicht die Drehrichtung ausgewertet, daher | ' In diesem Demo wird nicht die Drehrichtung ausgewertet, daher | ||
' wird nur ein Interrupt Port (INT0) an den Sensorausgang (VOA) | ' wird nur ein Interrupt Port (INT0) an den Sensorausgang (VOA) | ||
− | ' angeschlossen. Zudem noch +5V, GND und +5V | + | ' angeschlossen. Zudem noch +5V, GND und +5V über 330 Ohm |
' Widerstand an Anode des Sensors. Also einfachste Beschaltung. | ' Widerstand an Anode des Sensors. Also einfachste Beschaltung. | ||
− | ' Wenn man | + | ' Wenn man das Programm startet wird jede Sekunde die Drehzahl |
' ermittelt und alle 3 Sekunden über RS232 auf einem | ' ermittelt und alle 3 Sekunden über RS232 auf einem | ||
' Terminalprogramm (oder KN-KeyLCD) ausgegeben. | ' Terminalprogramm (oder KN-KeyLCD) ausgegeben. | ||
− | ' Das Programm | + | ' Das Programm eignet sich somit zum Messen von Drehzahlen als |
− | ' | + | ' auch zur Überprüfung der Drehgeberfunktion. Es läßt sich |
− | ' sehr einfach zu Wegstrecken Auswertung ausbauen. Statt | + | ' sehr einfach zu Wegstrecken-Auswertung ausbauen. Statt |
− | ' an einem Interrupt könnte man Sensor auch an einen Timereingang | + | ' an einem Interrupt könnte man den Sensor auch an einen Timereingang |
− | ' anschließen, jedoch wird dies | + | ' anschließen, jedoch wird dies hier im Programm nicht berücksichtigt. |
Zeile 106: | Zeile 112: | ||
</pre> | </pre> | ||
+ | |||
+ | ==Siehe auch== | ||
+ | * [[RN-Control]] | ||
+ | * [[Avr]] | ||
− | [[Kategorie: | + | [[Kategorie:Robotikeinstieg]] |
[[Kategorie:Microcontroller]] | [[Kategorie:Microcontroller]] | ||
[[Kategorie:Software]] | [[Kategorie:Software]] | ||
+ | [[Kategorie:Quellcode Bascom]] |
Aktuelle Version vom 4. Januar 2013, 18:40 Uhr
Wie einfach man mit einem Drehgeber die Drehzahl messen kann zeigt diese Schaltung /dieser Quelltext. Für dieses Beispiel wurde ein Drehgeber GP1A030 mit Codescheibe verwendet. Es könnte aber genauso ein GP1A038 oder ein ähnlicher Sensor sein. In diesem Demo wird nicht die Drehrichtung ausgewertet, obwohl es mit diesem Sensor ebenfalls möglich wäre.
'################################################### 'rncontrol_drehzahl.BAS 'für 'RoboterNetz Board RN-CONTROL ab Version 1.1 'Das neue preiswerte Controllerboard zum Experimentieren ' Achtung: ' Diese Demo ist mit Bascom Compiler 1.11.7.8 getestet ' 'Aufgabe: ' Dieses Testprogramm demonstriert wie man mit Drehgebern ' die Umdrehungszahl von Motoren anzeigen kann ' Als Drehgeber wird ein Sharp GP1A030 mit Codescheibe ' verwendet (siehe http://www.robotikhardware.de Rubrik Sensoren) ' In diesem Demo wird nicht die Drehrichtung ausgewertet, daher ' wird nur ein Interrupt Port (INT0) an den Sensorausgang (VOA) ' angeschlossen. Zudem noch +5V, GND und +5V über 330 Ohm ' Widerstand an Anode des Sensors. Also einfachste Beschaltung. ' Wenn man das Programm startet wird jede Sekunde die Drehzahl ' ermittelt und alle 3 Sekunden über RS232 auf einem ' Terminalprogramm (oder KN-KeyLCD) ausgegeben. ' Das Programm eignet sich somit zum Messen von Drehzahlen als ' auch zur Überprüfung der Drehgeberfunktion. Es läßt sich ' sehr einfach zu Wegstrecken-Auswertung ausbauen. Statt ' an einem Interrupt könnte man den Sensor auch an einen Timereingang ' anschließen, jedoch wird dies hier im Programm nicht berücksichtigt. 'Autor: Frank 'Weitere Beispiele und Beschreibung der Hardware 'unter http://www.Roboternetz.de oder robotikhardware.de '####################################################### $regfile = "m32def.dat" ' bei Mega 16 $regfile = "m16def.dat" $framesize = 32 $swstack = 32 $hwstack = 32 $crystal = 16000000 'Quarzfrequenz $baud = 9600 Config Int0 = Falling Config Timer1 = Timer, Prescale = 256 Const Timervorgabe = 3036 Const Markierungenproscheibe = 120 Dim Zaehlerirq0 As Long Dim Impulseprosekunde As Long Dim Impulseprominute As Long Dim Umdrehungenprominute As Integer Print Print "* RN-CONTROL 1.4 *" Print "Drehzahl Messung"; "" Zaehlerirq0 = 0 On Int0 Irq0 Enable Int0 On Timer1 Timer_irq Enable Timer1 Enable Interrupts Do Print Print "Impulse Sek: "; Impulseprosekunde Impulseprominute = Impulseprosekunde * 60 Umdrehungenprominute = Impulseprominute / Markierungenproscheibe Print "Umdreh. Min: "; Umdrehungenprominute Wait 3 Loop End 'Pro Impuls (Markierung auf Scheibe) ein Aufruf Irq0: Incr Zaehlerirq0 Return 'Pro Sekunde ein Aufruf Timer_irq: Timer1 = Timervorgabe Impulseprosekunde = Zaehlerirq0 Zaehlerirq0 = 0 Return