HowTo: ESPEasy – PCA9685 PWM Port Erweiterung an den ESP8266 anschließen und ansteuern

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.

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.

Schaltplan PCA9685 verbunden mit einem ESP8266 über I2C.

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. 🙂

Buy Me a Coffee at ko-fi.com       

7 Kommentare

  1. 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.

    1. 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

  2. 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

  3. 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

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.