PCA9685PW das PWM Signal von 0V bis 5V auf 0V bis 10V verstärken

Aber immer noch ignorierst du unsere Antworten.
5 Volt auf den Datenpins killt den ESP irgend wann.
Aber gut, da wirst du mehr davon kaufen dürfen.

Z.B. dass Du den Sketch als Textdatei anhängst und nicht in Codetags in den Beitrag setzt.
Die Meisten wollen sich nicht laufend etwas herunter laden und lokal öffnen, um Dir oder Anderen zu helfen, sondern lassen es dann gleich komplett.

Gruß Tommy

Hallo Tommy,

so besser?

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

const char* ssid = "AbCdEfGh"; // WLAN SSID
const char* password = "123456789"; // WLAN Passwort

Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
ESP8266WebServer server(80); // Webserver auf Port 80

// Anzahl der Kanäle
const int numChannels = 10;

// HTML-Seite für die Steuerung
const char* htmlPage = R"rawliteral(

MAquaS - Lichtsteuerung body { font-family: Arial, sans-serif; } .slider { width: 100%; }

MAquaS - Lichtsteuerung

)rawliteral";

void setup() {
Serial.begin(115200);
Wire.begin();

// Verbinde mit WLAN
WiFi.begin(ssid, password);
Serial.print("Verbinde mit WLAN");

while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print(".");
}

Serial.println(" verbunden!");
Serial.print("IP-Adresse: ");
Serial.println(WiFi.localIP()); // Gebe die IP-Adresse aus

// Initialisiere PCA9685 und setze Frequenz
pwm.begin();
pwm.setPWMFreq(60); // Setze PWM Frequenz auf 60 Hz

// Routen für den Webserver definieren
server.on("/", HTTP_GET, handleRoot);
server.on("/set", HTTP_GET, handleSet);

server.begin(); // Starte den Webserver

}

void loop() {
server.handleClient(); // Verarbeite eingehende Anfragen
}

void handleRoot() {
String html = htmlPage;

for (int i = 0; i < numChannels; i++) {
    html += "<label>Channel " + String(i) + ": </label>";
    html += "<input type='range' min='0' max='100' value='50' class='slider' id='channel" + String(i) + "' name='channel" + String(i) + "' oninput='updateValue(" + String(i) + ")' onchange='updateIntensity(" + String(i) + ")'><br>";
    html += "<span id='value" + String(i) + "'>50</span>%<br>";
}

html += R"rawliteral(
    <script>
        function updateValue(channel) {
            var slider = document.getElementById('channel' + channel);
            document.getElementById('value' + channel).innerHTML = slider.value;
        }

        function updateIntensity(channel) {
            var slider = document.getElementById('channel' + channel);
            var xhr = new XMLHttpRequest();
            xhr.open("GET", "/set?channel" + channel + "=" + slider.value, true);
            xhr.send();
        }
    </script>
)rawliteral";
server.send(200, "text/html", html); // Sende HTML-Seite an den Client

}

void handleSet() {
for (int i = 0; i < numChannels; i++) {
if (server.hasArg("channel" + String(i))) {
int intensity = server.arg("channel" + String(i)).toInt();
int dutyCycle = map(intensity, 0, 100, 0, 4095);
pwm.setPWM(i, 0, dutyCycle); // Setze Intensität für den Kanal
Serial.print("Kanal ");
Serial.print(i);
Serial.print(": ");
Serial.println(intensity);
}
}

// Optional: Senden Sie eine einfache Bestätigung zurück
server.send(200, "text/plain", "Intensität gesetzt");

}

Habe den Fehler Gefunden, defektes PCA . Lichtsteuerung geht. Kann die Pegel über das Handy steuern.

Gruß

Mathias

nö.
Verstehend lesen ist nicht Deine Stärke.
Nochmal: Das lesen und verstehen und anwenden.

Gruß Tommy

Auch das einfache Lesen klappt beim TO absolut nicht.

Viel kleiner anfangen.
https://docs.arduino.cc/built-in-examples/basics/Fade/
Dann die LED durch den Transistor ersetzen.

Wichtig: GANZ GANZ kleine Schritte gehen.

Toll. Dann bist du ja am Ziel.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.