Skocz do zawartości

Diody wsk2812 szaleja


Mrpatryk

Pomocna odpowiedź

#include <Adafruit_NeoPixel.h>
 
#define PIN D0
#define LICZBADIOD 86
 
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(LICZBADIOD, PIN, NEO_GRB + NEO_KHZ800);
 
void setup()
{
  Serial.begin(9600);
  pixels.begin(); // Inicjalizacja biblioteki
}
 
void loop()
{
  for(int i=0; i<LICZBADIOD; i++)
  {
    pixels.setPixelColor(i, 0, 255, 0); // Dioda "i" oraz skladowe R=255 G=0 B=0
    pixels.show(); // Wysylamy dane do lancucha
    delay(500); // Opoznienie 500ms przed zaswieceniem kolejnej diody
    Serial.println(i);
  }
}

Prosty kod zapalający kolejno diody ... niestety u mnie szajbuja nie dość ze kolory to jeszcze idzie gdzieś do polowy a potem świeca już losowo  jak  sobie chcą.

Zasilanie 5V , kondensator na zasilaniu 100uF, rezystor przed 1 dioda 300 ohm, do tego drugie zasilanie w polowie diodek.

NodemCu v3 ... zapala diody losowo w róznych kolorach i migocza wszystkie . Juz mi ręce opadaja co jest nie tak ;/

ile takich diodek pod jeden pin można podłączyć ? 

Link do komentarza
Share on other sites

Może masz problem z biblioteką? Tutaj GreatScott miał taki problem (co prawda z esp32 i z inną biblioteką ale podał rozwiązanie) i zmienił ją na inną, wskazaną z filmie i wszystko działało bez problemu. Może to jest problem?

 

 

Link do komentarza
Share on other sites

Do esp8266 jest inna lepsza biblioteka - NeoPixelBus (steruje diody sprzętowo poprzez DMA lub UART).

Ile diod można podłączyć... tyle na ile wystarczy pamięci. Pamiętaj tylko, że to szeregowa transmisja i przy 1000 diod może okazać się za wolna 🙂

Może być tak, że pierwsza dioda nie jest prawidłowo wysterowana (napięcie z pinu ESP jest poza dopuszczalnym minimalnym napięciem sterującym i diody mogą świrować). Ja stosuję prosty trick - zasilam pierwszą diodę przez zwykłą diodę prostowniczą. Napięcie 4.3V jest wystarczające do jej działania, napięcie na pinie względem napięcia zasilania już jest wystarczające a następna dioda dostaje na wejściu już prawidłowe napięcie (powyżej 4V). Może to ten przypadek?

  • Lubię! 1
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

Wszystko już ogarnięte śmiga ładnie , okazało się zasilanie zasilanie 🙂 Zegarek sigma 🙂 robię teraz dodatkowe klawisze z kolorem itp i niestety w

#include <DHT.h>
#include <EepromAT24C32.h>
#include <RtcDateTime.h>
#include <RtcDS1307.h>
#include <RtcTemperature.h>
#include <RtcUtility.h>
#include <Adafruit_NeoPixel.h> 
 #include <Wire.h>
#include "DHT.h"          // biblioteka DHT
#define DHTPIN 2          // numer pinu sygnałowego
#define DHTTYPE DHT11 

RtcDS1307<TwoWire> Rtc(Wire);
Adafruit_NeoPixel linijka = Adafruit_NeoPixel(86, 3, NEO_GRB + NEO_KHZ800);
int czujnik = A0; 
int a;
int b;
int c;
int i;
int h;
int g;
int e;
int f;
     int A;
     int B;
     int C;
     int klawisz1= D5;
int klawisz2 = D6;
int klawisz3 = D7;
     DHT dht(DHTPIN, DHTTYPE);
void setup() {}

wyrzuca mi błąd przy kompilacji jak mam przypisane int klawisz 1= D5;. nie wiem co w tym może być złego ;/

Link do komentarza
Share on other sites

41 minut temu, Mrpatryk napisał:

int klawisz 1= D5;. nie wiem co w tym może być złego

A co to niby ma znaczyć? Że klawisz jest int to rozumiem,  ale że jeszcze że do liczby 1 podstawiasz D5? To po tej operacji 1 to ma być w końcu 1 czy D5?

Poza tym nie "wyrzuca mi błąd kompilacji" a włącz sobie wyświetlanie wszystkich błędów w ustawieniach IDE, to masz duże szanse że kompilator sam Ci wypisze co chce. Wtedy albo nie będziesz w ogóle musiał pytać na forum, albo zapytasz konkretnie "co oznacza taki to a taki błąd kompilatora".

 

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

Co znaczy "przypisać klawisz do pinu"?

Możesz do zmiennej (którą jakoś tam fajnie nazwiesz) przypisać wartość (np. D5 odpowiadającą piątemu pinowi NodeMCU). Kompilator nie wie nic o klawiszach, pinach, diodach i innych wynalazkach - dla niego istnieją zmienne i wartości.

I przecież to robisz pisząc:

int klawisz1 = D5;

prawda? Do zmiennej typu int o nazwie klawisz1 przypisujesz wartość początkową D5 (zdefiniowaną gdzieś wcześniej w plikach nagłówkowych NodeMCU).

Co Ci nie odpowiada w tym zapisie i dlaczego uważasz, że zapis

int klawisz 1 = D5;

miałby być prawidłowy? Jak miałaby się nazywać zmienna do której przypisujesz D5?

 

 

 

  • Lubię! 1
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.