Der PCA9685 ist ein PWM Portexpander. Damit ist es möglich bis zu 16 LEDs, Servos oder andere Bauteile an Euren ESP8266 anzuschließen und mit einem PWM Signal zu versorgen.
Dank ESPEasy (und dem passenden Plugin) ist die Ansteuerung des PCA9685 besonders leicht. So könnt Ihr mit dem PCA9685 letztlich bis zu 16 Servos mithilfe von ESPEasy ansteuern.
Damit dies funktioniert, müsst Ihr allerdings ein paar Einstellungen beachten. Alles was Ihr dazu wissen müsst, ist im folgenden Artikel beschrieben.
Sicherheitshinweise
Ich weiß die folgenden Hinweise sind immer irgendwie lästig und wirken unnötig. Aber leider haben schon viele Menschen die es "besser" wussten aus Leichtsinnigkeit Augen, Finger oder anderes verloren bzw. sich verletzt. Im Vergleich dazu ist ein Datenverlust fast nicht der Rede Wert, aber auch diese können echt ärgerlich sein. Deswegen nehmt Euch bitte fünf Minuten Zeit um die Sicherheitshinweise zu lesen. Denn auch das coolste Projekt ist keine Verletzung oder anderen Ärger wert.
https://www.nerdiy.de/sicherheitshinweise/
Affiliatelinks/Werbelinks
Die hier in aufgeführten Links zu Online-Shops sind sogenannte Affiliate-Links. Wenn Du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekommt Nerdiy.de von dem betreffenden Online-Shop oder Anbieter eine Provision. Für Dich verändert sich der Preis nicht. Falls Du Deine Einkäufe über diese Links tätigst unterstützt Du Nerdiy.de dabei auch in Zukunft weitere nützliche Projekte anbieten zu können. 🙂
Voraussetzungen
Hilfreiche Artikel:
Zusätzliche Tipps zum Thema ESPEasy findet Ihr in den folgenden Artikeln.
- ESPEasy – Befehle und Aktionen per HTTP, MQTT, UDP und direkt ausführen
- ESPEasy – Firmware kompilieren, flashen und WLAN Zugangsdaten konfigurieren
- ESPEasy / Wemos D1 Mini – ADC an eine andere Maximalspannungen anpassen
Benötigtes Werkzeug:
Benötigtes Material:
Die Funktionsweise
Das Signal zur Ansteuerung eines Servos besteht im Prinzip aus einem Impuls von 0,5 bis 2,5ms Länge. Diese Impuls sollte alle 20ms wiederholt werden.
Dieses Signal lässt sich mithilfe des PCA9685 simulieren. Dazu muss lediglich die PWM Frequenz so angepasst werden, dass sie der Periodendauer des Servosignals entspricht.
In diesem Bild könnt Ihr den Zusammenhang zwischen Servosignal (links) und Servoposition (rechts) ganz gut erkennen.
Quelle: https://de.wikipedia.org/wiki/Servo
Konfiguration in ESPEasy
In diesem Abschnitt geht es lediglich um die Konfiguration des ESPEasy Plugins. Das heißt Ihr solltet den PCA9685 bzw. das Breakoutboard auf dem dieser verbaut ist, bereits mit dem ESP8266 verbunden haben. Dazu solltet Ihr die beiden nach folgendem Schema verbunden haben.
PCA9685 | ESP8266 |
GND | GND |
VCC | 5V oder 3V3 |
SDA | GPIO 0 |
SCL | GPIO 2 |
V+ | 5V |
Auf Eurem ESP8266 sollte die ESPEasy Firmware bereits installiert sein. Wie Ihr dabei vorgehen könnt ist im Artikel ESPEasy – Firmware kompilieren, flashen und WLAN Zugangsdaten konfigurieren beschrieben.
Dann könnt Ihr in die Sektion “Devices” wechseln und das Device “Extra IO – PCA9685” anlegen.
Das erstellte Plugin solltet Ihr dann wie abgebildet konfigurieren.
Wichtig ist dabei, dass Ihr die PWM Frequenz (“Frequency”) auf 50Hz einstellt. Dies entspricht der (für das Servo notwendigen) Periodendauer von 20ms.
Habt Ihr alle Konfigurationen vorgenommen könnt Ihr die angeschlossenen Servos mit dem korrekten Befehl ansteuern.
Ein Beispiel:
Der Befehl
PCAPWM,0,300,
stellt das PWM Signal des ersten(=0) Anschluss des PCA9685 (welcher PCAPWM heißt )auf den Wert 300.
Für das Servo das ich am Anschluss 0 meines PCA9685 verwende konnte ich zum Beispiel die folgenden Befehle nutzen.
- Kleinster Winkel: PCAPWM,0,50,
- Größter Winkel: PCAPWM,0,300,
Wie Ihr Befehle an Euer ESPEasy Gerät senden könnt ist im Artikel ESPEasy – Befehle und Aktionen per HTTP, MQTT, UDP und direkt ausführen beschrieben.
Zusätzliche allgemeine Infos zu diesem ESPEasy Plugin findet Ihr auch unter folgendem Link: https://www.letscontrolit.com/wiki/index.php?title=PCA9685
Viel Spaß mit dem Projekt
Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂
P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂