Strona 1 z 1

Sterowanie paskiem led ws2812b

: 20 lip 2018, 17:22
autor: kwiatufpv
Cześć:)
Właśnie przebudowuje moja drukarkę i chciałbym zamontować pasek LED który by sygnalizował stan drukarki.

Od kilku dni kopie po różnych forach i stronach i dalej do końca nie wiem jak to zrobić.

Ponieważ narazie budżet (na dniach rodzi mi się synek :) ) nie pozwala na jakiekolwiek wydatki związane z hobby chciałbym do tego wykorzystać to co posiadam, a więc:

Drukarka pracuje pod kontrolą arduino mega + ramps 1.4 Soft marlin

Pasek led który mam to ws2812b

Posiadam też arduino nano

Z tego co do tej pory wyczytałem wychodzi na to, że najlepiej zastosować osobny układ do samego sterowania ledami,który by otrzymywał informacje od ardu mega o stanie drukarki. Do tego właśnie chciałbym wykorzystać arduino nano.

Problem w tym że nie do końca łapie jak to podłączyć (arduino mega + arduino nano + ws2812b) i co gdzie w kodzie po zmieniać ( na programowaniu niezbyt się znam a mój angielski niestety też nie zachwyca:/)

Czy któryś z kolegów mogły podpowiedzieć czy to da się zrobić i jeśli tak to w miarę przystępnie wytłumaczyć co z czym i gdzie ? :)

Z góry dziękuję za pomoc

Re: Sterowanie paskiem led ws2812b

: 20 lip 2018, 18:24
autor: Pajacyk0v
https://www.instructables.com/id/3D-Pri ... -Feedback/

A po co te nano? Gość robi to na zwykłych tranzystorach NPN.

Re: Sterowanie paskiem led ws2812b

: 20 lip 2018, 18:27
autor: kwiatufpv
Jasne, w przypadku zwykłych diod RGB tak sie robi i nie ma problemu... ja mam pasek led WS2812b on działa inaczej...

Re: Sterowanie paskiem led ws2812b

: 20 lip 2018, 19:05
autor: Pajacyk0v
Skoro się uparłeś... metr zwykłych RGB kosztuje zawrtone 10-15pln :]

Re: Sterowanie paskiem led ws2812b

: 20 lip 2018, 19:09
autor: kwiatufpv
Hehe no niby tak, ale po co kupować skoro mam ;) ale wygląda na to, że nic nie zdziałam w tym temacie...no trudno

Re: Sterowanie paskiem led ws2812b

: 20 lip 2018, 22:49
autor: Kopytko
Na fabrykator.pl jest temat z takim rozwiązaniem. Krzysztof w swojej drukarce dokladal taki sposób powiadomień . Biblioteki tez tam sa udostępnione. Tylko musisz znalezc temat.

Re: Sterowanie paskiem led ws2812b

: 20 lip 2018, 22:51
autor: dziobu
Korzystasz z opisu dostarczonego przez @Pajacyk0v. Dostajesz w ten sposób informację o trybie oświetlenia na 3 liniach. Tymi liniami wchodzisz do nano. Tym smaym na jakiś pinach masz 3 bity z informacją jak świecić. Do nano wrzucasz bibliotekę obsługującą te nieszczęsne LEDy; zapętlasz wysyłanie (pewnie program przykładowy już to ma) a zawartość rejestrów z kolorami uzalezniasz właśnie od tych 3 linii.

Ogólnie jest to proste, ale konkretnie pomóc musi Ci ktoś kto nie czuje obrzydzenia do Arduina i choć trochę je zna.

Re: Sterowanie paskiem led ws2812b

: 21 lip 2018, 18:59
autor: ethanak
Zakładam, że w podanym linku jest wszystko co trzeba zrobić od strony Megi, pozostaje zaprogramowanie Nano.
Pytanie - jaki dokładnie efekt chcesz uzyskać? Tylko zmiana kolorów całego paska? Jakieś płynne przejścia?
Ja akurat do Arduino ani obrzydzenia nie czuję (swoje rzeczy robię na Pro Mini, to w sumie taka ATmega z kwarcem i jakimiś kondensatorami wlutowana w płytkę - wychodzi taniej i szybciej niż zabawa z gołym mikrokontrolerem), te diody akurat dość dobrze przećwiczyłem więc nie widzę problemu; tylko chcę wiedzieć co dokładnie chcesz (przy okazji: idea, szkic kodu czy kompletny sketch do Nano)...

Re: Sterowanie paskiem led ws2812b

: 21 lip 2018, 19:06
autor: kwiatufpv
Wymagania małe;) zmiana koloru paska w zależności od trybu w którym aktualnie jest drukarka (grzanie , druk , koniec druku ) ... na fabrykator dostałem odpowiedź, że przy tym nie powinno być problemów, pojawiają się dopiero gdy drukowanie i sterowanie paskiem ma być wykonywane jednocześnie, więc jutro sprawdzę jak to działa i w razie czego sie odezwę:)

Re: Sterowanie paskiem led ws2812b

: 21 lip 2018, 19:50
autor: ethanak
Jeśli sterujesz paskiem przez Nano to nie ma prawa być żadnych problemów.
Jeśli chciałbyś bezpośrednio - to będą na 100%.
Program na Nano mniej więcej taki:

Kod: Zaznacz cały

#include <Adafruit_NeoPixel.h>
// pin podłączony do paska
#define PIN            9

// piny podłączone do Megi
#define PIN_R 10
#define PIN_G 11
#define PIN_B 12


// ile LED w pasku?
#define NUMPIXELS      16

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  pixels.begin();
  pinMode(PIN_R, INPUT);
  pinMode(PIN_G, INPUT);
  pinMode(PIN_B, INPUT);
}

void loop() {

  int r=digitalRead(PIN_R ? 255:0);
  int g=digitalRead(PIN_G ? 255:0);
  int b=digitalRead(PIN_B ? 255:0);
  for(int i=0;i<NUMPIXELS;i++){
    pixels.setPixelColor(i, pixels.Color(r,g,b));
  }
  pixels.show();
  delay(100); // na przykład - możesz to w ogóle wywalić
}
Nie sprawdzałem czy działa bo nie mam paska a nie chce mi się pojedynczych led lutować - ale dziwiłbym się gdyby nie chciało.