Skocz do zawartości

Sterowanie diodami WS2812B za pomocą przycisków


rafsko88

Pomocna odpowiedź

20 minut temu, Treker napisał:

@rafsko88 diody WS2812B zostały opisane podczas II poziomu kursu Arduino. Dokładnie w tym miejscu: Kurs Arduino II – #2 – diody RGB (tradycyjne oraz WS2812)

Bazowałem na nim lecz mnie interesuje coś takiego, że -> mam https://botland.com.pl/lancuchy-i-matryce-led/16152-listwa-led-rgb-ws2812-5050-x-8-diod-53mm-wlutowane-zlacza.html

za pomocą switch chce tę listwę włączyć, drugie naciśnięcie switch zapala diody na czerwono a trzecie wciśnięcie by migały na pomarańczowo. Da się to zrobić? Bo napisałem sobie program z małą pomocą (czyt. uczę się programować) i jeden program mam do stałego świecenia listwy a drugi do migania, nie wiem jak to połączyć.. 😞

Link do komentarza
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

@rafsko88 oczywiście, że się da 🙂 Nie znajdziesz jednak "kursów", które omawiają dokładnie takie przykłady jakie chcesz zrealizować. Musisz podziałać samodzielnie - na tym polega zabawa w elektronikę. Daj znać na czym dokładnie utknąłeś? Czego konkretnie nie rozumiesz? Pokaż kawałek swojego programu - inaczej ciężko będzie pomóc. Problem, który opisałeś ma mało wspólnego z tymi diodami RGB. Odłóż je na bok i najpierw zrób ten problem rozwiązać w jakimś prostszym scenariuszu. Nawet niech zwykła dioda świeci na stałe lub miga (zależnie od tego co wciśniesz).

  • Lubię! 1
Link do komentarza
Share on other sites

2 minuty temu, Treker napisał:

@rafsko88 oczywiście, że się da 🙂 Nie znajdziesz jednak "kursów", które omawiają dokładnie takie przykłady jakie chcesz zrealizować. Musisz podziałać samodzielnie - na tym polega zabawa w elektronikę. Daj znać na czym dokładnie utknąłeś? Czego konkretnie nie rozumiesz? Pokaż kawałek swojego programu - inaczej ciężko będzie pomóc. Problem, który opisałeś ma mało wspólnego z tymi diodami RGB. Odłóż je na bok i najpierw zrób ten problem rozwiązać w jakimś prostszym scenariuszu. Nawet niech zwykła dioda świeci na stałe lub miga (zależnie od tego co wciśniesz).

Zaraz dodam kod, Zależy mi na tej listwie ponieważ potrzebuję ją do projektu.

Link do komentarza
Share on other sites

9 minut temu, Treker napisał:

@rafsko88 oczywiście, że się da 🙂 Nie znajdziesz jednak "kursów", które omawiają dokładnie takie przykłady jakie chcesz zrealizować. Musisz podziałać samodzielnie - na tym polega zabawa w elektronikę. Daj znać na czym dokładnie utknąłeś? Czego konkretnie nie rozumiesz? Pokaż kawałek swojego programu - inaczej ciężko będzie pomóc. Problem, który opisałeś ma mało wspólnego z tymi diodami RGB. Odłóż je na bok i najpierw zrób ten problem rozwiązać w jakimś prostszym scenariuszu. Nawet niech zwykła dioda świeci na stałe lub miga (zależnie od tego co wciśniesz).

#include <Adafruit_NeoPixel.h> //biblioteka

Adafruit_NeoPixel testled = Adafruit_NeoPixel(8, 7, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel testled1 = Adafruit_NeoPixel(8, 4, NEO_GRB + NEO_KHZ800);

void setup() {
  testled.begin(); //inicjacja
  testled1.begin();
  testled.show();  //wysylanie danych do testled
  testled1.show();
  testled.setBrightness(20); //regulacja jasnosci swiecenia
  testled1.setBrightness(20);

  testled.setPixelColor(0, testled.Color(255, 0, 0)); // pixel 1
  testled.setPixelColor(1, testled.Color(255, 0, 0)); // pixel 2
  testled.setPixelColor(2, testled.Color(255, 0, 0)); // pixel 3
  testled.setPixelColor(3, testled.Color(255, 0, 0)); // pixel 4
  testled.setPixelColor(4, testled.Color(255, 0, 0)); // pixel 5
  testled.setPixelColor(5, testled.Color(255, 0, 0)); // pixel 6
  testled.setPixelColor(6, testled.Color(255, 0, 0)); // pixel 7
  testled.setPixelColor(7, testled.Color(255, 0, 0)); // pixel 8

  testled.show();
}

void loop() {

}

Taki mam kod. Chcę do niego dopisać switch, i za jego pomocą wprawić te ledy w miganie na pomarańczowo. Nie ogarniam tego.

Link do komentarza
Share on other sites

19 minut temu, Treker napisał:

@rafsko88 oczywiście, że się da 🙂 Nie znajdziesz jednak "kursów", które omawiają dokładnie takie przykłady jakie chcesz zrealizować. Musisz podziałać samodzielnie - na tym polega zabawa w elektronikę. Daj znać na czym dokładnie utknąłeś? Czego konkretnie nie rozumiesz? Pokaż kawałek swojego programu - inaczej ciężko będzie pomóc. Problem, który opisałeś ma mało wspólnego z tymi diodami RGB. Odłóż je na bok i najpierw zrób ten problem rozwiązać w jakimś prostszym scenariuszu. Nawet niech zwykła dioda świeci na stałe lub miga (zależnie od tego co wciśniesz).

#include <Adafruit_NeoPixel.h>

Adafruit_NeoPixel testled = Adafruit_NeoPixel(8, 7, NEO_GRB + NEO_KHZ800);

void setup() {
  testled.begin();
  testled.show();
  testled.setBrightness(20);
}

void loop() {
  int i = 0;
  for (i = 0; i < 8; i++) {
    testled.setPixelColor(i, testled.Color(0, 0, 0));
  }

  testled.show();
  delay(300);

  for (i = 0; i < 8; i++) {
    testled.setPixelColor(i, testled.Color(255, 60, 0));
  }

  testled.show();
  delay(300);
}

Po naciśnięciu switch chcę uzyskać takie miganie do czasu ponownego wciśnięcia.

Link do komentarza
Share on other sites

8 minut temu, Treker napisał:

A jak próbowałeś to łączyć w jeden kod? Potrafisz normalnie w programie obsługiwać przycisk? 

Ten migający kod wpisałem do tego pierwszego i nic, źle coś wyszło. Posługiwałem się kodem pobranym znalezionym gdzieś w internecie ale też nic.

 

8 minut temu, Treker napisał:

A jak próbowałeś to łączyć w jeden kod? Potrafisz normalnie w programie obsługiwać przycisk? 

Z tym przyciskiem mam najwięcej problemu. Resztę ogarniam.

Link do komentarza
Share on other sites

@rafsko88 niestety to tak nie działa. Nie da się programować na zasadzie "kopuł i wklej w losowe miejsce". Jeśli masz problem z obsługą przycisku to zerknij najpierw do I poziomu kursu Arduino. Tam jest opisane dokładnie jak z nich korzystać 🙂 Później spróbuj napisać prostszą wersję programu, tak jak pisałem wyżej.

Małymi kroczkami do celu. To, że zrobimy to za Ciebie nic nie da, bo za chwilę będziesz chciał dodać kolejny efekt migania i znów utkniesz na edycji programu. 

  • Lubię! 1
Link do komentarza
Share on other sites

Przed chwilą, Treker napisał:

@rafsko88 niestety to tak nie działa. Nie da się programować na zasadzie "kopuł i wklej w losowe miejsce". Jeśli masz problem z obsługą przycisku to zerknij najpierw do I poziomu kursu Arduino. Tam jest opisane dokładnie jak z nich korzystać 🙂 Później spróbuj napisać prostszą wersję programu, tak jak pisałem wyżej.

Małymi kroczkami do celu. To, że zrobimy to za Ciebie nic nie da, bo za chwilę będziesz chciał dodać kolejny efekt migania i znów utkniesz na edycji programu. 

Ja nie chcę by ktoś coś za mnie robił bo jestem samoukiem. Zwykłe ledy i switche sobie poradzę lecz mam problem z tymi adresowalnymi ledami. Gdzie wpisać daną funkcję i jak by to działało. Oczywiście sam sobie jakoś do tego dojdę ale liczyłem na jakiś poradnik czy coś by choć trochę naprowadzić, bo kurs z tą listwą jest, ale nie ma w nim switch i tu jest pies pogrzebany.

Link do komentarza
Share on other sites

1 minutę temu, rafsko88 napisał:

Zwykłe ledy i switche sobie poradzę lecz mam problem z tymi adresowalnymi ledami.

To pokaż taką wersję programu, dalej Cie poprowadzimy. Jeśli program będzie działał dla zwykłych diod to dla RGB nie będzie żadnego problemu.

Link do komentarza
Share on other sites

Przed chwilą, Treker napisał:

To pokaż taką wersję programu, dalej Cie poprowadzimy. Jeśli program będzie działał dla zwykłych diod to dla RGB nie będzie żadnego problemu.

Tylko jest pewna różnica, zwykłe ledy chcą tylko zasilania a programowalne coś więcej, co z tego, że napiszę program dla zwykłych ledów jak i tak nie będzie działał z adresowalnymi bo kod będzie znacznie rozbudowany prawda?

Link do komentarza
Share on other sites

Zwykle diody wymagają sygnału 1/0, a te diody RGB wymagają wysłania cyfrowego sygnału. Żadna różnica - jeśli napiszesz taki program dla zwykłej diody to już bez problemu będzie wiadomo gdzie "wkleić" kod od diod RGB.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.