Hallo,
Für mein Projekt brauche ich einen Servolenkung- und einen Gleichstrommotor auf dem gleichen Arduino Uno. Bei mir funktioniert nur der eine oder andere Motor. Zum testen habe ich ein kleines Programm geschrieben, sobald ich "Schranke.attach(7);" aktiviere funktioniert der Gleichstrommotor nicht mehr!!!
Was mache ich falsch, gibt es eine Möglichkeit beide Motoren gleichzeitig zu betreiben??
Hallo my_xy_projekt
dein Tip war gut.
Mit dem Tausch von Pin7 und 10 funktionieren beide Motoren.
Was ist der Grund , dass das Tauschen einen Einfluss hat?
Hallo agmue
Danke für den Tip. ich werde in Zukunft mehr mit Millisekunden() als mit delay() programmieren.
Das Mobatool werde ich genauer anschauen.
wh13:
Hallo my_xy_projekt
dein Tip war gut.
Mit dem Tausch von Pin7 und 10 funktionieren beide Motoren.
Was ist der Grund , dass das Tauschen einen Einfluss hat?
Das sollte auf Deinem ARDUINO-Board sogar drauf stehen.
PIN10 ist ein PWM-Pin.
PIN7 ist KEIN PWM-PIN.
Ansonsten empfehle ich für den Einstieg ein gut leserliches und aussagekräftiges PINOUT.
Hallo my_xy_projekt
was mich irritieret, ich habe einen zweiten Servomotor diazugeschaltet auf Pin 6.
Anschliessend hat der GSM nicht mehr funktioniert.
ich habe Pin6 auf Pin 11gewechselt, beides sind ja PWM Ports, mit diesem Wechsel funktionieren alle drei Motoren.
Könnte die Reihenfolge mit der "Servo.h" Bibliothek zusammenhängen?
Da ich gerne verstehe wieso etwas funktioniert oder nicht, habe ich diese Frage gestellt, für mein Projekt ist das Problem gelöst.
wh13:
was mich irritieret, ich habe einen zweiten Servomotor diazugeschaltet auf Pin 6.
Anschliessend hat der GSM nicht mehr funktioniert.
ich habe Pin6 auf Pin 11gewechselt, beides sind ja PWM Ports, mit diesem Wechsel funktionieren alle drei Motoren.
Könnte die Reihenfolge mit der "Servo.h" Bibliothek zusammenhängen?
Das kann ich Dir so nicht beantworten.
Vielleicht hilfts ja:
Der UNO hat 6 PWM Ausgänge. Jeweils 2 Ausgänge werden von einem Timer angesteuert.
Die Servo-Bibliothek benutzt auch einen Timer. Darum funktionieren 2 PWM Ausgänge, die von diesem Timer angesteuert werden nicht.
Die Servo Bibliothek kann 12 Servos ansteuern. Die Servos können an jedem Pin angeschlossen sein nicht nur an den PWM Pins.
https://www.arduino.cc/reference/en/libraries/servo/:
The Servo library supports up to 12 motors on most Arduino boards and 48 on the Arduino Mega. On boards other than the Mega, use of the library disables analogWrite() (PWM) functionality on pins 9 and 10, whether or not there is a Servo on those pins. On the Mega, up to 12 servos can be used without interfering with PWM functionality; use of 12 to 23 motors will disable PWM on pins 11 and 12.
Gilt für den Arduino UNO:
Die Servo-Bibliothek braucht keine PWM Ausgänge. Du kannst jeden der 20 I/O Pins nehmen (D0 bis D13; A0 bis A5). Die Servo Bibliothek benutzt einen Timer weshalb an den Pins 9 und 10 ein PWM (analogWrite) nicht funktioniert. Die Servo Bibliothek kann 12 Servos gleichzeitig ansteuern.
verstehe ich das richtig, dass ich z.B. drei Servo an die PWM Anschlüsse 5,6 und 11 anschliessen kann?
Wenn Du willst kannst Du die Pins 5, 6 und 11 für 3 Servo nutzen. Du kannst aber auch jeden anderen freien Pin nehmen.
Note that in Arduino 0016 and earlier, the Servo library supports only servos on only two pins: 9 and 10.
Also IDE Version 0016 und vorherige Versionen.
IDE 0016 ist am 30.5.2009 herausgekommen und am 25.07.2009 von der nächsten Version abgelöst worden. ReleaseNotes IDE Arduino Ziemlich weit unten.
The Servo library supports up to 12 motors on most Arduino boards and 48 on the Arduino Mega. On boards other than the Mega, use of the library disables analogWrite() (PWM) functionality on pins 9 and 10, whether or not there is a Servo on those pins. On the Mega, up to 12 servos can be used without interfering with PWM functionality; use of 12 to 23 motors will disable PWM on pins 11 and 12.
Ich habs zwar nicht selbst kontrolliert darum zitiere ich und gebe die Quelle an.
Danke für die Glückwunsche.
Bei 5000 Karmas feiern wir dann ordentlich. 8) 8)