Ich möchte lediglich einen MircoServo (SG90) auf einer PCF8574 Erweiterung ansprechen. Am Servo hängt zur Zeit keine Last.
Die einzelnen Pins kann ich ansprechen / abfragen. Aber Das reicht ja nicht, um einen Servo in einen entsprechenden Winkel zu fahren. Das einzige was ich rausbekomme ist ein kurzes zucken des Servo's.
Habe schon mit der Servo.h versucht, aber das brachte mich letzten ende auch nicht weiter.
Ein Servo braucht ein HIGH mit einer Länge von 0,5 (Nullstellung) - 1,5 (180°) ms und dann ein LOW von 18ms. Das genaue Timing des HIGH Signal ist hier viel wichtiger als die Länge des LOW Signal. Dieses Signal kann ein Arduino selber erzeugen oder ein geeigneter IC wie der PCA9685.
Hier muss das Arduino das Signal am IC generieren, zB: über den I2C Bus.
Es gibt auch s.g SoftwarePWM die allerdings sehr ungenau ist, der PCF8574 kann kein PWM Signal generieren, Du kannst nur den Pin für die bestimmte* Zeit auf HIGH stellen und dann für 18ms auf LOW und dann wieder von vorne.
Die HIGH Pegel Zeit bestimmt die Position des Servo Motors, 0,5-1,5 ms.
Wenn Du wirklich den PCF8574 hast kannst Du ein Programm schreiben das dem IC "sagt" setze den Pin X für zB: 1ms auf HIGH und für 18ms auf LOW, ist allerdings sehr ungenau. Ein PCA9685 ist wesentlich genauer.
Grüße,
Donny
PS: Die servo.h lib ist nur für den gebrauch von Servo's am Arduino selbst bestimmt.