Steht doch in der ReadMe
pwm.stop()
Steht doch in der ReadMe
pwm.stop()
Gruß
Andreas
Geht das nur darüber?
Weil die Ausführung eines "normalen" Programms kannst du ja z.B. mit Strg + C beenden![]()
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Das ist kein Beenden, das ist ein Unterbrechen wenn man es ganz genau nimmt
Ein "ordentliches" Beenden wäre z.B. os._exit(1) das über eine Benutzereingabe ausgeführt wird.
Ich baue mir z.B. immer ein Menü:
Code:while(True): user_input = raw_input('Bitte treffen Sie Ihre Wahl: ') if user_input == "m": menu() ... elif user_input == "q": os._exit(1)
Gruß
Andreas
Haarspalterei :P
Aber gut danke für die Info![]()
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Hallo,
Ich habe mir nun folgendes Programm erstellt:
PWM Frequenz 19048 Hz, 50%
Das Programm läuft zwar ab, der Bot zittert aber wie wild.Code:import RPi.GPIO as GPIO import time import signal from pizypwm import * def endProcess(signalnum = None, handler = None): first.stop() second.stop() third.stop() fourth.stop() GPIO.cleanup() exit(0) signal.signal(signal.SIGTERM, endProcess) signal.signal(signal.SIGINT, endProcess) first = PiZyPwm(19048, 19, GPIO.BOARD) second = PiZyPwm(19048, 21, GPIO.BOARD) third = PiZyPwm(19048, 23, GPIO.BOARD) fourth = PiZyPwm(19048, 24, GPIO.BOARD) first.start(50) second.start(50) third.start(50) fourth.start(50) def ControlAPairOfPins(FirstPin,FirstState,SecondPin,SecondState): if FirstState == "1": GPIO.output(int(FirstPin),True) else: GPIO.output(int(FirstPin),False) if SecondState == "1": GPIO.output(int(SecondPin),True) else: GPIO.output(int(SecondPin),False) return GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) GPIO.setup(19,GPIO.OUT) GPIO.setup(21,GPIO.OUT) GPIO.setup(23,GPIO.OUT) GPIO.setup(24,GPIO.OUT) while True: ControlAPairOfPins("19","1","21","0") ControlAPairOfPins("23","1","24","0") print "Drehung nach rechts" time.sleep(1) ControlAPairOfPins("19","0","21","0") ControlAPairOfPins("23","0","24","0") print "Stop" time.sleep(1) ControlAPairOfPins("19","0","21","1") ControlAPairOfPins("23","0","24","1") print "Drehung nach Links" time.sleep(1) ControlAPairOfPins("19","0","21","0") ControlAPairOfPins("23","0","24","0") print "Stop" time.sleep(1) ControlAPairOfPins("19","1","21","0") ControlAPairOfPins("23","0","24","1") print "Geradeaus vorwaerts" time.sleep(1) ControlAPairOfPins("19","0","21","0") ControlAPairOfPins("23","0","24","0") print "Stop" time.sleep(1) ControlAPairOfPins("19","0","21","1") ControlAPairOfPins("23","1","24","0") print "Geradeaus rueckwaerts" time.sleep(1) ControlAPairOfPins("19","0","21","0") ControlAPairOfPins("23","0","24","0") print "Stop" time.sleep(1)
Ist das Programm so in Ordnung?
Kannst du das bitte überprüfen?
Naja, oben startest Du direkt die PWM auf allen Pins
Wenn ich das richtig interpretiere wollen Deine Motoren nun gleichzeitig nach vorne und nach hinten drehen => geht nicht => Zittern.Code:first.start(50)second.start(50) third.start(50) fourth.start(50)
Und unten in der while Schleife sagst Du den Motoren das sie voll aufdrehen sollen, oder? Das führt zu noch heftigerem Zittern weil es die PWM beeinträchtigt.
Gruß
Andreas
Vielen herzlichen Dank, tucow - nun habe ich es:
Damit drehen die Motoren nur mit 50% Leistung, dank Software - PWMCode:import RPi.GPIO as GPIO import time import signal from pizypwm import * def endProcess(signalnum = None, handler = None): first.stop() second.stop() third.stop() fourth.stop() GPIO.cleanup() exit(0) signal.signal(signal.SIGTERM, endProcess) signal.signal(signal.SIGINT, endProcess) first = PiZyPwm(20000, 19, GPIO.BOARD) second = PiZyPwm(20000, 21, GPIO.BOARD) third = PiZyPwm(20000, 23, GPIO.BOARD) fourth = PiZyPwm(20000, 24, GPIO.BOARD) GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) GPIO.setup(19,GPIO.OUT) GPIO.setup(21,GPIO.OUT) GPIO.setup(23,GPIO.OUT) GPIO.setup(24,GPIO.OUT) while True: first.start(50) second.start(0) third.start(50) fourth.start(0) print "Drehung nach rechts" time.sleep(1) first.start(0) second.start(0) third.start(0) fourth.start(0) print "Stop" time.sleep(1) first.start(0) second.start(50) third.start(0) fourth.start(50) print "Drehung nach Links" time.sleep(1) first.start(0) second.start(0) third.start(0) fourth.start(0) print "Stop" time.sleep(1) first.start(50) second.start(0) third.start(0) fourth.start(50) print "Geradeaus vorwaerts" time.sleep(1) first.start(0) second.start(0) third.start(0) fourth.start(0) print "Stop" time.sleep(1) first.start(0) second.start(50) third.start(50) fourth.start(0) print "Geradeaus rueckwaerts" time.sleep(1) first.start(0) second.start(0) third.start(0) fourth.start(0) print "Stop" time.sleep(1)
![]()
Geändert von pinsel120866 (09.02.2013 um 15:18 Uhr)
Lesezeichen