Der PCA9685 ist ein recht praktischer IC. Dieser wird über I2C an den Mikrocontroller (zum Beispiel ESP8266) angebunden und kann dann bis zu 16 einzelne PWM Kanäle steuern.
So könnt Ihr mit nur zwei (I2C) Pins am Mikrocontroller bis zu 16 LEDs, Servos oder mit zusätzlichem Schaltungsaufwand auch Motoren steuern.
Gerade wenn man Servos ansteuern will erleichtert dieses IC bzw. das Breakout Board die Arbeit erheblich.
Dank ESPEasy und dem passenden Plugin lässt sich der PCA9685 sehr leicht ansteuern und letztlich auch über Wifi kontrollieren.
Wie Ihr den PCA9685 dazu an Euren Mikrocontroller anschließen und konfigurieren 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:
Den PCA9685 PWM Portexpander anschließen
Das PC9685 Breakoutboard muss über den I2C Bus mit dem Wemos D1 Mini verbunden werden. Dazu könnt Ihr das PCA9685 Breakoutboard zum Beispiel anhand des unten stehenden Schaltplans mit einem Wemos D1 Mini verbinden.
Der Anschlusspin “V+” definiert mit welcher Spannung die angeschlossenen “Verbraucher” betrieben werden. Wenn Ihr zum Beispiel ein Servo ansteuern wollt, solltet Ihr diesen Pin mit 5-6V versorgen.
Konfiguration des PCA9685 in ESPEasy
Die Konfiguration des PCA9685 ist dank des passenden Plugins schnell erledigt.
Öffnet zunächst die Webkonfigurations-Ansicht Eurer ESPeasy Installation.
Infos dazu wie Ihr diese Ansicht öffnen könnt findet Ihr auch in dem Artikel ESPEasy – Befehle und Aktionen per HTTP, MQTT, UDP und direkt ausführen
Klickt von dort aus auf den Tab “Devices”.
Im “Devices”-Tab müsst Ihr nun auf den “Add”-Button in einer der noch leeren Zeilen klicken.
Ihr werdet dann automatisch zu der dargestellten Ansicht weitergeleitet und könnt hier nun auswählen, welches Device Ihr erstellen wollt.
Wählt hier den Eintrag “Extra IO – PCA9685” aus.
Daraufhin werdet Ihr zur Konfigurationsseite des Plugins weitergeleitet.
Hier solltet Ihr einen beliebigen Namen (hier “PWM”) vergeben, den Haken bei “Enabled” setzen und die korrekte I2C Adresse einstellen.
Die I2C Adresse entspricht oft der abgebildeten Standard-adresse. Falls nicht findet Ihr Infos dazu im Datenblatt des PCA9685.
Mit der Einstellung “MODE2” könnt Ihr das Mode 2 Register des PCA9685 konfigurieren. Dadurch lässt sich das Verhalten der PWM Pins konfigurieren. Infos dazu findet Ihr auch im Datenblatt des PCA9685.
Falls ihr den PCA9685 dazu nutzen wollt Servos anzusteuern, solltet Ihr die Option “MODE2” auf den Wert “0x6 6” einstellen. Weitere Infos dazu findet Ihr auch in dem Artikel ESPEasy – Einen PCA9685 zur Ansteuerung von Servos nutzen.
Sobald Ihr alle Optionen des Plugins korrekt eingestellt habt, müsst Ihr nun nur noch auf “Submit” klicken um die Einstellungen zu speichern.
PWM Wert an PCA9685 senden
Nachdem Ihr den PCA9685 fertig konfiguriert habt, könnt Ihr Ihn auch schon testen.
Wechselt dazu in den Tab “Tools”.
Dort könnt Ihr in der “Command”-Sektion den Befehl
PCAPWM,0,300,
eingeben. Durch diesen Befehl wird der erste (Zählung beginnt bei 0) Pin des PCA9685 auf den PWM Wert 300 eingestellt. Der einstellbare Wert reicht hier von 0 bis 4095.
Wolltet Ihr zum Beispiel den dritten Pin des PCA9685 auf 1337 einstellen würde der Befehl folgendermaßen aussehen:
PCAPWM,2,1337,
Weitere Sensoren
Weitere Artikel zur Konfiguration von Sensoren und Aktoren mithilfe von ESPEasy findet Ihr auch in der Kategorie
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. 🙂
Hallo, sehr interessante Anleitung … mich würde der “zusätzliche Schaltungsaufwand” für eine Motoransteuerung (Schrittmotor 28BYJ-48 o.ä.), z.B. um ein Rollo o.ä. zu betätigen, interessieren.
Hey Kruse,
der ist eigentlich gar nicht so groß. Zur Ansteuerung eines 28BYJ-48 reicht schon ein ULN2003 der an die Ausgänge des PCA angeschlossen wird. Ich kann bei Gelegenheit mal einen Artikel dazu anfertigen. 🙂
Beste Grüße
Fabian
Danke für die Antwort … freue mich auf den Artikel.
Ich “bastele” gerade an diesem Antrieb: https://www.instructables.com/Motorized-WiFi-IKEA-Roller-Blind/ aber der ist etwas “unübersichtlich”.
Ich bin auch nicht DER Fachmann und hoffe immer auf “Kochrezepte” bei denen das Ergebnis auch relativ einfach paßt. Und man lernt ja immer was dazu ….
Gruß
Ja sowas ist auch noch auf meiner (langen) Liste. 😀 Ich werde den Artikel dazu mal auf meine ToDo Liste schreiben. 🙂
Beste Grüße
Fabian
Servus,
super Anleitung! Danke, würde gerne die Servos per mqtt die Datenpunkte über iobroker ansteuern. In iobroker wird nur der Status angezeigt!
Liebe Grüße
Benno
Hi Benno,
danke. 🙂
Du kannst den gezeigten Befehl auch per MQTT an ESPEasy senden. Ein einfaches Beispiel habe ich zum Beispiel hier beschrieben: https://nerdiy.de/howto-espeasy-befehle-ausfuehren/#Befehle_ueber_MQTT_ausfuehren
Beste Grüße
Fabian
Guten Morgen Fab,
vielen Dank für deine Antwort.
sorry , dass ich mich erst jetzt melde. habe es jetzt mit Http verarbeiten können, klappt super!
Noch mal vielen Dank
Liebe Grüße
Benno