• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Sterowanie paskiem LED RGB 144 diody WS2812B
#1
Witam

Mam pasek LED RGB o dlugości 1m na którym znajdują się 144 diody ze sterownikami WS2812B. 
Interesuje mnie sterowanie każdą diodą LED z osobna. Zarówno Włącznie/Wyłączenie, dobór koloru, oraz intensywność świecenia. Wykorzystując biblioteki AdaFruit_NeoPixel za pomocą funkcji  pixels.setPixelColor, mogę włączać odpowiednią diodę i ustawiać jej kolor. W jaki sposób mogę rozwiązać problem intensywności światła. 


Z góry dziękuje za odpowiedz 
Pozdrawiam
 
Odpowiedź
#2
colorWipe(strip.Color(255, 0, 0), 50); tam jak masz 255 to max a w dół słabiej świeci jak w pwm.
[Obrazek: banerelektronika.jpg]



Jeśli pomogłem podziękuj punktem reputacji Wink
 
Odpowiedź
#3
Niestety nie do końca mi działa funkcja colorWipe.
Udało mi się zrobić tak że steruje intensywnością dla całej taśmy. Chciałbym móc ustawiać intensywność dla każdej diody osobno. Ponoć odpowiada za to ostatni parametr w moim kodzie(w tym przypadku wartości 64), lecz nie chce to działać.

Tutaj kod:
Kod:
void setup() {
strip.begin();
strip.show(); // Initialize all pixels to 'off'
}
void loop() {
strip.setPixelColor(9, 255, 255, 255, 64);
strip.setPixelColor(11, 255, 255, 255, 64);
strip.setBrightness(127);
strip.show();


Czy jest jakas taka opcja żebym mógł sobie sterować z komputera jaki kolor chce wybrać i jaki poziom intensywności światła tak jak można to robić za pomocą Androida?

Z góry dzięki za pomoc
 
Odpowiedź
#4
http://technovade.pl/poradniki/zeszytpro...a-017.html
 
Odpowiedź
#5
Nie bardzo chodzi mi o sterowanie za pomocą pilota. Bardziej potrzebuje aplikację, dzięki której za pomocą portu szeregowego, będę mógł sterować paskiem led. Chodzi mi o aplikację gdzie, wpiszę nr konkretnej diody, oraz podam trzy wartości dotyczącej barwy RGB. Wszystko chce żeby było sterowane za pomocą konsoli. Zrealizowałem układ dwóch prostych diod, lecz nie wiem jak wykonać to przy użyciu paska LED.
Tutaj kod :
Kod:
#define zielona 8
#define czerwona 9

String odebraneDane = ""; //Pusty ciąg odebranych danych

void setup() {
 Serial.begin(9600); //Uruchomienie komunikacji
 Serial.println("Podaj kolor diody");
 pinMode(zielona, OUTPUT); //Konfiguracja wyjść
 pinMode(czerwona, OUTPUT);
 
 digitalWrite(zielona, LOW); //Wyłączamy diody
 digitalWrite(czerwona, LOW);
}

void loop() {
 if(Serial.available() > 0) { //Czy Arduino odebrano dane
   //Jeśli tak, to odczytujemy je do znaku końca linii i zapisz w zmiennej odebraneDane
   odebraneDane = Serial.readStringUntil('\n');
   
   if (odebraneDane == "zielona") { //Jeśli odebrano słowo "zielona"
     digitalWrite(zielona, HIGH); //To włączamy diodę zieloną
     Serial.println("zielona is ON");
     delay(2000);
     digitalWrite(zielona, LOW);
   }
   
   if (odebraneDane == "czerwona") { //Jeśli odebrano słowo "czerwona"
     digitalWrite(czerwona, HIGH); //To włączamy diodę czerwoną
     delay(1000);
     digitalWrite(czerwona, LOW);
   }
Z góry dziękuje za pomoc.
Pozdrawiam
 
Odpowiedź
#6
Zielona wartosc r wartosc g wartosc b tak mozesz to zrobic ale musisz rozbic potem na dioda i r g b.
[Obrazek: banerelektronika.jpg]



Jeśli pomogłem podziękuj punktem reputacji Wink
 
Odpowiedź
#7
Tak ale na samym początku chodzi mi o uruchomienie taśmy LED.
Tak jak po wpisaniu komendy digitalWrite(zielona, HIGH); włącza mi się zielona dioda.
to chce tak samo tylko żeby włączała mi się cała taśma, lub pojedyncza dioda jakakolwiek.
 
Odpowiedź
#8
https://majsterkowo.pl/jak-sterowac-dowo...i-arduino/
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości