Ich habe folgendes Problem (Nano) in einem (umfangreichen) Sketch:
a) über die Pins 7, 8, und 12 werden jeweils ein Servo angesteuert; hierzu verwende ich die library <Servo.h>
b) über Pin 9 wird ein PWM-Signal erzeugt (und über einen MOSFET ein DC-Motor gesteuert)
Ist im Sketch b) allein ohne a) so funktioniert b) einwandfrei.
Gleiches gilt auch wenn a) allein verwendet wird.
Sind die Programmteile a) und b) im Sketch gemeinsam verwendet so funktioniert Programmteil b) nicht mehr (Programmteil a) läuft einwandfrei).
Die servo.h benutzt den Timer1 um die Servopulse zu erzeugen. PWM an Pin 9 wird auch über den Timer1 gesteuert. Da kommt sich beides ins Gehege - das geht nicht gleichzeitig.
MicroBahner:
Die servo.h benutzt den Timer1 um die Servopulse zu erzeugen. PWM an Pin 9 wird auch über den Timer1 gesteuert. Da kommt sich beides ins Gehege - das geht nicht gleichzeitig.
Du mußt andere PWM Pins verwenden. Pin 9 und Pin 10 werden vom Timer 1 gesteuert und dieser ist von der servo.h Bibliothek blockiert. Also bleiben 3, 5, 6 und 11 übrig.
Siehe https://www.arduino.cc/en/Tutorial/SecretsOfArduinoPWM