Bei mienem aktuellen Projekt möchte ich einen einfachen Zahlenwert von 0-255 über eine Bluetooth Terminal App an meinen ESP senden. Das klappt auch schon ganz gut mit folgendem Code:
Wenn ich nun allerdings den pixels.show() Befehl aus der Adafruit Bibliothek nutzen möchte, lässt sich keine BT Verbindung mehr zum Controller herstellen (Connection failed due to Timeout)
Ich habe auch schon versucht den .show() Befehl und die BT Anwendung auf unterschiedliche Cores zu verteilen. Erfolglos.
Die WS2812b-LED haben ein sehr enges Timing bei der Übertragung der Daten mittles show(), weil sie kein getrenntes Taktsignal nutzen. Dafür werden die Interrupt abgeschaltet, was zur Störung anderer Funktionalitäten, wie auch z.B. IR-Fernbedienungen führt.
Abhilfe kann hier die Verwendung von RGB-LED mit zusätzlicher Taktleitung (wie z.B. APA102) schaffen.
Ich hätte genauso geantwortet wie Tommy, allerdings habe ich Dein Programm mit einem anderen Programm verbunden und zu meiner Überraschung funktioniert das ohne "Connection failed". Jetzt bin ich erstmal etwas ratlos, auch weil sich BLE in der Bibliothek verbirgt.
Nun ist BLE nicht BT, aber müßte eigentlich durch die Neopixel genauso gestört werden. In meinen Augen siehst Du derzeit Fragezeichen
Hast Du schon mal FastLED probiert? Beim ESP32 soll da DMA mit eigener Hardware verwendet werden, was das Timingproblem entschärfen könnte.
Danke für die Antworten.
Ich bin um die Bluetooth Anwendung herum gekommen, aber greife gerne auf die Fastled Lösung zurück, wenn ich wieder auf das Problem stoße
Bitte beachte die vielen Konjunktive in meiner Aussage.
Ich nutze die Tabs von Fips, zur Datenkommunikation JSON und HTML-Dateien im LittleFS.
Dies ist ein öffentliches Forum, das vom Nehmen und Geben lebt. Wenn Du also was zu geben hast, dann scheue Dich nicht, anderen mit Deinem Wissensstand zu helfen
Wenn ich bei einer Antwort jedes dritte Wort in ChatGPT eingeben muss, um den Zusammenhang zu verstehen, habe ich den Eindruck, als wäre dieses Projekt ein wenig zu viel für meine eingeschränkten Kenntnisse. Da ist es einfacher, sich eine Alternative zurecht zu pfuschen.
Anstelle einer manuellen Eingabe von Zahlenwerten, habe ich mir eine mathematische Funktion überlegt, die mir die Arbeit abnimmt.
Ist zwar nicht das Selbe, aber die Funktion erfüllt es trotzdem.
Mir ging es darum, bei einem Feuer-Effekt die Intensität der Flamme zu regulieren und sie damit realistischer zu machen. Mit einer manuellen Eingabe wäre das weniger natürlich, Eine modifizierte Sinusfunktion ist da auch naheliegender.
Danke dennoch für den Einblick in den Fortgeschrittenen Kurs