ESP32 DEVKIT V1 a adresovatelný led pásek

Odpovědět
Fido
Příspěvky: 2
Registrován: 20 dub 2022, 08:19
Reputation: 0

ESP32 DEVKIT V1 a adresovatelný led pásek

Příspěvek od Fido » 20 dub 2022, 08:32

Zdravím všechny,
zkouším si hrát s adresovatelným LED páskem RGBW. Tento pásek jsem původně řídil pomocí Arduino MEGA, ale nyní jsem chtěl přejít na ESP32 DEVKIT V1. U Arduina se mi pásek chová dobře, ale jak přejdu na ESP32 dochází k chybě při změně. Náhodně se rosvěcují náhodně barevné diody. Je zajímavé, že se jedná o naprosto stejný projekt. Když projekt nahraju na Arduino a otestuji vše se opět chová dobře. Máte někdo s tímto nějakou zkušenost? Můžete mi prosím někdo poradit jestli je potřeba něco nastavit v projektu aby vše fungovalo dobře i v případě, že je pásek řázený přes ESP?

Testoval jsem i jiné ESP abych vyloučil chybu v zařízení. Používám stejný zdroj i stejný LED pásek. Jediné co má vliv je tak použití Arduina nebo ESP.

Předem všem děkuji za nápady. Já jsem se svými nápady v koncích.

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: ESP32 DEVKIT V1 a adresovatelný led pásek

Příspěvek od kiRRow » 20 dub 2022, 09:17

Tak evidentně dochází k chybě v momentě kdy se to ESP snaží nakrmit daty. Takže na tohle bych se zaměřil. Jelikož neznáme ani program ani typ pásku, zbytek budu muset uzřít v křišťálové kouli :
Co třeba tohle : Arduino pracuje s 5V logikou, ESP32 s 3.3V logikou. Převodník úrovní by měl pomoct.

Fido
Příspěvky: 2
Registrován: 20 dub 2022, 08:19
Reputation: 0

Re: ESP32 DEVKIT V1 a adresovatelný led pásek

Příspěvek od Fido » 20 dub 2022, 13:07

Díky za nápad

To můžu potvrdit. V okamžiku kdy zapisuju dochází k chybě. I když jsem zpomalil rychlost změny, tak náhodná rozsvícení se ukazují přesně v okamžiku změny.
Co se týče typu pásku tak ten je RGBW 30led/m a délka je 5m (WS2812b). Napětí mě taky napadlo, ale našel jsem projekty co měli přímo ESP připojené na pásek. Nicméně vyzkouším to. Jen doufám, že ten převodník zvládne frekvenci pásku.

Přidal jsem i část z kódu kde definuji proměnnou pro pásek a také funkce jaké používám pro plnění.

Kód: Vybrat vše

#include <Adafruit_NeoPixel.h>
#define MaxBRIGHTNESS 255
#define LeftStripLED_PIN 25
#define LeftStripLED_COUNT 264

Adafruit_NeoPixel Leftstrip = Adafruit_NeoPixel(LeftStripLED_COUNT, LeftStripLED_PIN, NEO_GRBW + NEO_KHZ800);
static byte LEDStripOffset = 0;
static byte LEDStripStep = 3;

void setup()
{
  Leftstrip.begin();                          // INITIALIZE NeoPixel strip object (REQUIRED)
  Leftstrip.setBrightness(MaxBRIGHTNESS);     // Set BRIGHTNESS to about 1/5 (max = 255)
}
void loop()
{
    Leftstrip.clear();
    for (uint16_t i = LEDStripOffset; i < Leftstrip.numPixels(); i += LEDStripStep)
    { 
      Leftstrip.setPixelColor(i, Leftstrip.Color(0, 0, 0, 255));
    }
    Leftstrip.show();
    sleep(2000);
}

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: ESP32 DEVKIT V1 a adresovatelný led pásek

Příspěvek od kiRRow » 20 dub 2022, 15:20

https://www.allaboutcircuits.com/textbo ... ge-levels/ Celá stránka

...
když se podíváš na tento obrázek, tak vidíš, že 3.3V je pro 5V CMOS obvody těsně nedostačující. Dostáváš se tak do zakázaného stavu ve kterém si to ten čip, který řídí ty LED diody může vysvětlil jak zrovna chce.

Obrázek

ondraN
Příspěvky: 932
Registrován: 08 srp 2019, 20:01
Reputation: 0

Re: ESP32 DEVKIT V1 a adresovatelný led pásek

Příspěvek od ondraN » 21 dub 2022, 07:11

S těm úrovněmi má kiRRow naprostou pravdu. Pro WS2812D je pro úroveň H definováno napětí 0,7*Vdd, tedy 0,7V*5V=3,5V Asi by mohlo pomoct snížit napětí pásku na minimum, což je 4,5V. Pak by bylo prahové napětí pro H=3,15V. Na druhou stranu, používám MCU STM32 na 3,3V a nikdy jsem neměl s buzením těchto LED problém i bez převodníku. Ale mám vždy přívod k první diodě co nejkratší s minimální kapacitou a výstup x MCU nastavený na maximální rychlost.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 6 hostů