ESP32/ arduino nano LED Tower

Hallo alle zusammen,

vorab der Link zum Video:

ich habe mir letztes Jahr einen sehr schönen LED Tower gebaut, nur leider musste ich feststellen das dieser nicht auf die Musik reagiert sondern einfach wahllos die LED Muster abspielt…

Jetzt habe ich mal Zeit gefunden mich damit wieder zu befassen. Ich habe nun ein Video wiedergefunden welches die selben Bauteile wie ich verwendet, abgesehen vom Arduino…

Verwendet wurden:

  • 1m 60 LEDs/m WS2812b
  • Arduino nano v3.3
  • Mikrofon Verstärker MAX4466
  • Taster
  • externes 5v 3A Netzteil

Ich wollte nun den Code hernehmen und bin dabei auf ein paar Probleme gestoßen…

  1. In dem Video wird gesagt das ein Arduino nano nicht funktioniert, ich konnte und kann mir aber nicht denken wieso, vielleicht kann mir hier jemand weiter helfen.

  2. Ich wollte das ganze jetzt auf einen ESP32 portieren, da ich hier die Möglichkeit habe direkt eine Weboberfläche mit zu verwenden und bin beim compilieren auf folgenden Fehler gestoßen:

Arduino: 1.8.12 (Windows 10), Board: “ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 115200, None”

In file included from D:\Windows\Bibliotheken\Downloads\VU METERS\Uno_vu\Uno_vu.ino:2:0:

C:\Users\marck\OneDrive\Dokumente\Arduino\libraries\FastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.003

pragma message “FastLED version 3.003.003”

^

In file included from C:\Users\marck\OneDrive\Dokumente\Arduino\libraries\FastLED/FastLED.h:65:0,

from D:\Windows\Bibliotheken\Downloads\VU METERS\Uno_vu\Uno_vu.ino:2:

C:\Users\marck\OneDrive\Dokumente\Arduino\libraries\FastLED/fastspi.h:130:23: note: #pragma message: No hardware SPI pins defined. All SPI access will default to bitbanged output

pragma message “No hardware SPI pins defined. All SPI access will default to bitbanged output”

^

D:\Windows\Bibliotheken\Downloads\VU METERS\Uno_vu\Uno_vu.ino: In function ‘void setup()’:

Uno_vu:109:27: error: ‘analogReference’ was not declared in this scope

analogReference(EXTERNAL);

^

In file included from C:\Users\marck\OneDrive\Dokumente\Arduino\libraries\FastLED/FastLED.h:48:0,

from D:\Windows\Bibliotheken\Downloads\VU METERS\Uno_vu\Uno_vu.ino:2:

C:\Users\marck\OneDrive\Dokumente\Arduino\libraries\FastLED/fastpin.h: In instantiation of ‘class FastPin<6u>’:

C:\Users\marck\OneDrive\Dokumente\Arduino\libraries\FastLED/platforms/esp/32/clockless_rmt_esp32.h:186:23: required from ‘class ClocklessController<6, 60, 150, 90, (EOrder)66u, 0, false, 5>’

C:\Users\marck\OneDrive\Dokumente\Arduino\libraries\FastLED/chipsets.h:582:7: required from ‘class WS2812Controller800Khz<6u, (EOrder)66u>’

C:\Users\marck\OneDrive\Dokumente\Arduino\libraries\FastLED/FastLED.h:105:52: required from ‘class WS2812B<6u, (EOrder)66u>’

C:\Users\marck\OneDrive\Dokumente\Arduino\libraries\FastLED/FastLED.h:302:39: required from ‘static CLEDController& CFastLED::addLeds(CRGB*, int, int) [with CHIPSET = WS2812B; unsigned char DATA_PIN = 6u; EOrder RGB_ORDER = (EOrder)66u]’

D:\Windows\Bibliotheken\Downloads\VU METERS\Uno_vu\Uno_vu.ino:107:60: required from here

C:\Users\marck\OneDrive\Dokumente\Arduino\libraries\FastLED/fastpin.h:207:2: error: static assertion failed: Invalid pin specified

static_assert(validpin(), “Invalid pin specified”);

^

exit status 1
‘analogReference’ was not declared in this scope

Dieser Bericht wäre detaillierter, wenn die Option
“Ausführliche Ausgabe während der Kompilierung”
in Datei → Voreinstellungen aktiviert wäre.

Ich habe bereits im Internet recherchiert, konnte aber keine Lösung für mich finden.

Ich freue mich auf die nette Hilfe die einem hier im Forum immer zu teil wird.

mit freundlichen Grüßen

Marc

Irritierend finde ich die gleichzeitige Verwendung von Adafruit_NeoPixel und FastLED.

Ein paar Anmerkungen:

pragma message "FastLED version 3.003.003"

pragma message "No hardware SPI pins defined. All SPI access will default to bitbanged output"

Das sind nur Hinweise, keine Fehler.

Uno_vu:109:27: error: 'analogReference' was not declared in this scope

Kennt der ESP32 nicht, raus damit. Der ADC vom ESP32 verwendet 12 Bits anstelle 10, da ist sicherlich eine Anpassung notwendig. Der Verstärker sollte auch nur mit 3,3 V betrieben werden.

static_assert(validpin(), "Invalid pin specified");

Pin 6 wird für Flash verwendet, besser beispielsweise #define PIN 12

Okay danke schon mal für die schnelle Antwort :slight_smile:

Das mit den Hinweisen wusste ich bereits, aber danke für den Hinweis :wink:

Ich Code eigentlich gerne in Visual Studio Code mit PlatformIO da das etwas leichter in der Anwendung ist, gerade für den ESP, weil ich die Dateien dann trennen kann der Übersichtshalber. Da wird mir das dann auch in gelb als Hinweis markiert.

Der Code ist ja nicht von mir, habe nur einen Ansatz gesucht mit dem ich arbeiten kann...

Kennt der ESP32 nicht, raus damit. Der ADC vom ESP32 verwendet 12 Bits anstelle 10, da ist sicherlich eine Anpassung notwendig.

OKay, das mit dem ADC habe ich gelesen gehabt, falls ich das richtig verstanden habe, wird analogReference ja dafür verwendet das man die Aufteilung neu anpasst, das wenn nur 2.9 Volt anliegen, die werte am eingang nicht auf 1023 bei 3.3V sondern bei 2.9 ausgegeben werden. Stimmt das soweit?

Ich lese mich mal in das ADC Thema ein...

Pin 6 wird für Flash verwendet, besser beispielsweise #define PIN 12

Ja der Pin wurde schon geändert, den Code konnte ich nicht einfügen, da er 9000 Zeichen überschreitet.

Liebe Grüße

Marc