zimtstern
16.01.2008, 16:07
Hallo!
Ich habe ein Problem mit der programmierung eines Sensors in Form eines Potentiometers. Dieser ist auf der Achse eines Motors angebracht. Mit Hilfe des Velleman K8055 Board kann ich den Wiederstand messen. Der Motor wird über den digitalen Ausgang angesteuert (Leistungstransistor) (ein/aus). Ein Relais, das ebenfalls an einem digitalen Ausgang angeschlossen ist, dient zur änderung der Richtung. Ich programmiere mit dem Programm Visual Basic 2005 Express Edition. Bei betätigung eines Buttons soll der Motor solange drehe, bis der Widerstand einen gewissen Wert hat und dann anhalten. Bei einer weiteren Betätigung soll das Programm merken, dass er in die andere richtung zurück drehen muss, bis der Widerstand wieder den Anfangswert hat. Da ich noch Neuling bin auf VB, klappt es natürlich nicht. Meine Programmcode dazu sieht so aus:
Private Sub Button2_Click(Byval...
a = ReadAnalogChannel(1)
If a > 130 Then
SetDigitalChannel(3) "Relais wird angezogen"
Sleep(1000)
SetDigitalChannel(4) "Motor beginnt zu drehen"
While a > 50
Dim a = ReadAnalogChannel(1) "Meiner Meinung nach wird der Wert a jetzt solange aktualisiert (neu deffiniert), bis er durch die Drehung des Motors unter 50 ist"
End While
ClearAllDigital() "Motor & Relais ausschalten"
End If
If a < 50 Then
Sleep(1000)
SetDigitalChannel(4) "Motor beginnt zu drehen (andere Richtung)"
While a < 130
Dim a = ReadAnalogChannel(1) "gleiche Idee wie vorher"
EndWhile
ClearAllDigital()
EndIf
End Sub
Das Problem liegt sicher in dieser While-Idee. Aber wie macht man das?
Grüsse
zimtstern
Ich habe ein Problem mit der programmierung eines Sensors in Form eines Potentiometers. Dieser ist auf der Achse eines Motors angebracht. Mit Hilfe des Velleman K8055 Board kann ich den Wiederstand messen. Der Motor wird über den digitalen Ausgang angesteuert (Leistungstransistor) (ein/aus). Ein Relais, das ebenfalls an einem digitalen Ausgang angeschlossen ist, dient zur änderung der Richtung. Ich programmiere mit dem Programm Visual Basic 2005 Express Edition. Bei betätigung eines Buttons soll der Motor solange drehe, bis der Widerstand einen gewissen Wert hat und dann anhalten. Bei einer weiteren Betätigung soll das Programm merken, dass er in die andere richtung zurück drehen muss, bis der Widerstand wieder den Anfangswert hat. Da ich noch Neuling bin auf VB, klappt es natürlich nicht. Meine Programmcode dazu sieht so aus:
Private Sub Button2_Click(Byval...
a = ReadAnalogChannel(1)
If a > 130 Then
SetDigitalChannel(3) "Relais wird angezogen"
Sleep(1000)
SetDigitalChannel(4) "Motor beginnt zu drehen"
While a > 50
Dim a = ReadAnalogChannel(1) "Meiner Meinung nach wird der Wert a jetzt solange aktualisiert (neu deffiniert), bis er durch die Drehung des Motors unter 50 ist"
End While
ClearAllDigital() "Motor & Relais ausschalten"
End If
If a < 50 Then
Sleep(1000)
SetDigitalChannel(4) "Motor beginnt zu drehen (andere Richtung)"
While a < 130
Dim a = ReadAnalogChannel(1) "gleiche Idee wie vorher"
EndWhile
ClearAllDigital()
EndIf
End Sub
Das Problem liegt sicher in dieser While-Idee. Aber wie macht man das?
Grüsse
zimtstern