Skocz do zawartości

Arduino i pasek LED z diodami WS2812B


Pomocna odpowiedź

Witam

 

Mam problem z paskiem led z diodami WS2812B i arduino uno. Pasek wyświetla błędne kolory, da przykładu kiedy chcę aby trzy diody zapaliły się na kolor czerwony to uzyskuję kolor czerwony niebieski oraz zielony. Dałem już rezystor na sygnał sterowania, ale nic to nie pomogło. Diody zasilałem zewnętrznym zasilaczem 5V i oczywiście GND spięte z GND arduino. Próbowałem też zmian w kodzie i dwóch różnych bibliotek ale cały czas mam ten sam problem.

Link to post
Share on other sites

Opornik (jaka wartość?) to nie panaceum na wszystko, jeśli podłączysz go w złym miejscu to w niczym nie pomoże. Może być wiele powodów takich problemów:

  • Zbyt długie kable - pokaż zdjęcie tego wszystkiego albo zrób schemat z zaznaczonymi odległościami i rzeczywistymi miejscami podłączenia zasilaczy, diodek, procesora, opornika itp.
  • Słaby zasilacz - mierzyłeś chociaż napięcie podczas pracy czy tylko czytasz napis na obudowie?
  • Brak pojemności blokujących zasilanie diodek - one wymagają kondensatorów 100nF podłączonych blisko paska.
  • I oczywiście zły kod, bibliotek albo Twój.

 

Link to post
Share on other sites

@marek1707 Testowałem różne oporniki od 220Ohm do 470Ohm

Kable długości 50 cm, ale na pasku podłączonym w odległości 10 cm mam to samo. Robiłem też testy na pasku z 30 ledami mam ten sam objaw, zasilanymi i z zasilacza i z ładowarki podpiętej pod USB. To samo.

Nie mam tych kondensatorów, zaraz je zorganizuję.

Kod jest poprawny, testuję go na ringu LED z 24 ledami o wszystko działa.

 

Link to post
Share on other sites

Jeżeli mówimy o oporniku szeregowym dopasowującym impedancję nadajnika (pinu procesora) do impedancji linii przesyłowej (kabelka) to wartości powyżej 200Ω to jakiś absurd. Eksperymenty zacznij od 33R i nie wychodź powyżej 200Ω. Wszystko co dalej już tylko pogarsza sprawę, bo tworzy filtr dolnoprzepustowy a przecież potrzebujesz impulsów o szerokościach pojedynczych mikrosekund. Typowe kable typu skrętka (której powinieneś tu użyć) mają impedancje w okolicach 120Ω. Oczywiście opornik taki musi być podłączony bezpośrednio do pinu procesora, ew. do złącza Arduino tam gdzie normalnie podpinasz kabelek. Każde inne miejsce jest bez sensu. Drugą możliwością (alternatywną do szeregowego przy procku - nigdy razem) jest terminacja równoległa, czyli opornik od linii sygnałowej do masy (np. 100-150Ω) ale wtedy po stronie odbiornika czyli tuż przy wejściu pierwszej diodki.

EDIT Choć szczerze mówiąc po tym co piszesz to skłaniał bym się do podejrzeń @ethanak czyli jakieś dziwne/inne diodki. Albo inna organizacja albo inny protokół albo kondensatory.

Edytowano przez marek1707
Link to post
Share on other sites
(edytowany)

@ethanak @marek1707 

Używam przykładowego kodu z biblioteki NEOPIXEL

#include <Adafruit_NeoPixel.h>

#define PIN      6
#define N_LEDS 30

Adafruit_NeoPixel strip = Adafruit_NeoPixel(N_LEDS, PIN, NEO_RGB + NEO_KHZ800);

void setup() {
	strip.begin();
}

void loop() {
	chase(strip.Color(255, 0, 0)); // Red
	chase(strip.Color(0, 255, 0)); // Green
	chase(strip.Color(0, 0, 255)); // Blue
}

static void chase(uint32_t c) {
	for (uint16_t i = 0; i < strip.numPixels() + 4; i++) {
		strip.setPixelColor(i, c); // Draw new pixel
		strip.setPixelColor(i - 4, 0); // Erase pixel a few steps back
		strip.show();
		delay(25);
	}
}

Tutaj mam taki efekt że zamiast tylko np. czerwonych kolorów mam kolory czerwony, niebieski oraz zielony. Wydaje mi się że to problem z kodowaniem kolorów, bo np przejścia działają ok.

Edytowano przez MrRadian
Link to post
Share on other sites

Przede wszystkim dla WS2812B powinno być NEO_GRB a nie NEO_RGB (ja tak mam przynajmniej wszędzie w swoich programach), zmień i napisz jaki jest efekt.

Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.