Die Frage ist was fehlt wenn man einen - nur einen - ESP32 nimmt und die anderen Sachen einfach weglässt?
Was fehlt einem ESP32 um drei Analogports auszulesen, einen Neopixel anzusteuern und ein wenig Wifi zu machen?
Nirgends muss WIFININA laufen ... (ich wüsste noch nicht wozu)... also kann es auch nicht die fastlib stören.
Mit ESP32 meine ich halt ein Board mit einem ESP32 und ein wenig Hühnerfutter, keine Kombination ausATmega und ESP. so etwas z.B.
Ja, das war der andere Vorschlag von zuvor - einen uC mit ESP32 (oder zwei uC via I2C).
Es wäre schön gewesen, wenn es sogar mit den vorhandenen Bauteilen geklappt hätte, oder notfalls mit einem zweiten uC via I2C. Schade, daß sich FastLED, WIFININA und auch I2C auf unterschiedliche Weise in die Quere kommen.
Ich habe, wie gesagt, auch einen NodeMCU mit ESP32 zur Hand (das AZDelivery ESP32 NodeMCU Module müßte ich erst bestellen), mit dem das auch ginge, richtig? Er hat genügend ADC-Pins und eine gute Anleitung habe ich gerade gefunden.
Ist das nicht noch einfacher zu lösen? fastled liefert doch eine Funktion .delay(wartezeit in ms) schon mit, die genau das macht. Eben nicht mit delay() sondern da ist was rumgebaut.
Ab Zeile 123
lässt sich das nicht verwenden?
Zusätzlich würde ich trotzdem wieder die Prüfung letzter Wert != aktueller Wert einfügen.
Jede gesparte Übertragung ist gesparte Zeit.
Das ginge ggfls. auch mit einem "Sicherheitsventil" das nach 5 Umläufen -> also 5 Sekunden, eine Übertragung erzwingt.
Noch habe ich nichts gesehen, was dem entgegenstände.
picnic = problem in chair not in computer (war mal bei Jauch eine Frage)
These: Drei analoge Eingänge abfragen, 24 LED-Pixel ansteuern und noch Wifi, das macht Deine Kombi nebenher.
Was machst Du denn mit WIFININA? Datenaustausch mit den anderen Stellen oder Verbindung mit dem Internet? Als STA (Station Mode) oder AP (Access Point)?
Adafruit Airlift ist doch ein UNO (ATmega328P) mittels SPI mit einem ESP32 verbunden, da hast Du doch schon zwei Prozessoren, oder?
Die von AZ, wie ich sie verwende, haben eine etwas andere Pinanordnung, dürften sonst aber gleich sein.
Eine Charge möchte zum Upload der IDE zwischen EN und GND einen Kondensator (ich verwende 10 µF), eine zweite Charge benötigt den Kondensator nicht. Wie es bei Dir ist, mußt Du probieren.
schaut gut aus. Probier das mal aus.
Aufpassen bei den Analog-Eingängen dass du die richtigen nimmst - aber ich vermute agmue hilft dir da sicher auch gut weiter.
Das ist ein Erweiterungsboard für uCs wie Metro Minis oder Trinket Pros, die kein eigenes WLAN-Modul haben. Ich habe das schon in über 40 Projekten benutzt. Der Adafruit AirLift FeatherWing benötigt Adafruits fork der WIFININA library. Nur kam bei allen anderen Projekten nie zur gleiche Zeit FastLED oder I2C zum Einsatz.
Dann mögen Dir meine Behauptungen respektlos erscheinen, aber ich möchte Dich aus der Schleife "Ich habe Erfahrung, aber FastLED ist blöd!" herausholen. Wenn ich übertreibe, dann um es deutlich zu machen! Ich verweise auf meine These weiter oben.
Ich hatte Dir noch ein paar Fragen gestellt, deren Beantwortungen hilfreich wären.
FastLED ist nicht per se inkompatibel. Während der Übertragung der Daten sind die Interrupts gesperrt. Aber man muss ja vielleicht nicht ständig die LED Daten aktualisieren.
Nein, das Problem sind nicht die Libs, sondern die WS2812. Mit APA102 (getrennte Daten- und Taktleitungen) haben beide Libs kein Problem zumindest mit I2C.
So wie es jetzt ist, also ohne merklichen Verzug, sieht es plausibel und gut aus (Ansagen, keifende Fahrgäste, Zugeinfahrt, Türenschließwarnung, usw.). Ein sichtbarer Verzug wäre wohl nicht so gut.