INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
vorbereitung für spectrum analyzer speziell ws2812b
15.02.2015, 18:35
Beitrag #1
vorbereitung für spectrum analyzer speziell ws2812b
Ich plane mir einen Spectrum Analyzer zu fertigen der aus 7 Spalten des oben genannten WS2812b basierten Led-streifens besteht. Sprich 7 Spalten a 15 LED`s.

der passende Chip (MSGEQ7) ist leider noch unterwegs aber ansonsten habe ich sämtliche Hardware...bis auf 2 Meter des oben genannten LED Strips..der ist ebenfalls noch unterwegs.

Nun experimentiere ich mit einen Teilstück von diesem Streifen. er leuchtet führt beispielprogramme aus..aber leider verstehe ich die Programmierung nicht, da in sämtlichen Beispielen in die Library verzweigt wird in die ich ja keine Einsicht habe.

Das heisst z.b. wo bitte ist hier die Farbe angegeben mit welchem Wert???
und wie ändere ich den Code um damit ich die FastLed. Library benutzen kann ?


#define PIN 12 // gewählter Pin auf arduino
#define LED 15 //anzahl der Leds im strip
Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED, PIN, NEO_GRB + NEO_KHZ800);
int wc = 0;

void setup() {
strip.begin();
strip.show(); // Initialize all pixels to 'off'
FastLED.setBrightness(5);
}

void loop() {
// knight rider LEDs
int t;
for (int i = 0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, Wheel(wc));
t = i - 1;
if (t < 0) t = strip.numPixels() - 1;
strip.setPixelColor(t, strip.Color( 0 ,0, 0));
strip.show();
delay(50); //schnell hoch
}
for (int i = strip.numPixels()-1; i >= 0; i--) {
strip.setPixelColor(i, Wheel(wc));
t = i + 1;
if (t >= strip.numPixels()) t = 0;
strip.setPixelColor(t, strip.Color( 0,0, 0));
strip.show();
delay(200); //langsam runter
}
wc++;
if (wc>255) wc=0;
}

uint32_t Wheel(byte WheelPos) {
if (WheelPos < 85) {
return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
} else if (WheelPos < 170) {
WheelPos -= 85;
return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
} else {
WheelPos -= 170;
return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
}

In der Library von Adafruit ist mein Strip leider nicht ganz unterstützt.

Kann mir jemand helfen es zu verstehen?
Ich wäre sehr dankbar...
Videos gibts ja genug aber keine Erlärungen dazu..leider
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.02.2015, 19:31 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2015 19:36 von Wampo.)
Beitrag #2
RE: vorbereitung für spectrum analyzer speziell ws2812b
Hy,

die WS2812b werden schon von der Adafruit_NeoPixel.h Lib unterstützt. Dazu musst du aber auch die Lib in den Code Laden.
Am Anfang sollten das dann so aussehen: #include <Adafruit_NeoPixel.h>

Deine farbe von dem Strip wird über dein ColorWheel angegeben.
Code:
uint32_t Wheel(byte WheelPos) {
if (WheelPos < 85) {
return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
} else if (WheelPos < 170) {
WheelPos -= 85;
return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
} else {
WheelPos -= 170;
return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
Dieses Color Wheel ist wie bei Paint in die Grundtöne Rot, Blau, Grün geteilt. Durch die verteilung deiner Werte 0-255 für jede Farbe wird dann jeweils eine andere farbe gemischt.

Deine Farbwerte werden mit dem Satz bestimmt: strip.setPixelColor(i, Wheel(wc));
Dein wc wert wird mit jedem durchgang einmal erhöht somit rutscht der Farbton einen Zähler weiter auf deim Farbkreis.
Und so sieht ein farbkreis aus: http://www.bilder-plus.de/bilder/farbkre...bkreis.jpg

Soweit ich weiß nutzt die FAST LED lib ein anderes datenprotokoll was von den WS nicht unterstützt wird ( bitte berichtigt mich wenns nicht stimmt, hab mich mit fast led nicht beschäftigt, nur flüchtig).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.02.2015, 08:42
Beitrag #3
RE: vorbereitung für spectrum analyzer speziell ws2812b
Hallo nighty2006,

Einblick in die Adafruit Bibliothek kannst Du Dir sehr wohl verschaffen. Dazu einfach die entsprechende *.cpp und *.h mit einem Editor öffnen. Ich empfehle dazu "Notepad++", bei dem auch schön die Programmstruktur dargestellt wird. Damit kannst Du dann nachvollziehen, wie die einzelnen Funktionen angesprochen werden und welche Werte übergeben werden können.
Farben werden in Form eines RGB-Codes übergeben, wobei es sinnvoll ist, diese Farben vorher als Variablen zu definieren, falls Du ganz bestimmte Farben möchtest. Außerdem kann auch die Helligkeit als Wert zwischen 0 und 255 übergeben.

Zum allgemeinen Aufbau des RGB-Stripes:
Du musst zum einen angeben, auf welchem PIN die Steuerleitung angeschlossen wird und wieviele LEDs Du ansteuern möchtest. Außerdem ist es wichtig zu wissen, dass die Nummerierung der LEDs bei 0 anfängt und nicht bei 1. Hast Du also 15 LEDs startet die Nummerierung bei 0 und endet bei 14.

Auf dem Streifen sind Pfeile aufgedruckt, die die "Richtung" der Nummerierung angeben. Verbindest Du also mehrere Streifen, musst Du darauf achten, dass die Laufrichtung gleich bleibt. Spannung, Erde und Steuerleitung werden dann am "Anfang" des Streifens angeschlossen, sprich, die Pfeile laufen von den Anschlüssen weg :-)

Man kann sogar mehrere Streifen getrennt ansteuern, sprich man kann mehrere Objekte vom Typ "Adafruit_NeoPixel" initialisieren.

Ein Beispiel dazu kannst Du hier Fahrradbeleuchtung nachlesen.

Viel Erfolg und Spaß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.02.2015, 19:47
Beitrag #4
RE: vorbereitung für spectrum analyzer speziell ws2812b
Hi!

Ich möchte mich erstmal für die schnellen Antworten bedanken..erlebt man selten.

Leider bin ich absoluter Newbie, und habe den Drang mich in alles reinzufuchsen..was als Anfänger nicht einfach ist wie ich feststelle... Früher zu C64 zeiten hatte ich mal mit Basic programmiert da meine Eltern mir einen C16 schenkten..da war nicht viel mit spielen. Im Gegensatz zu c++ war das sehr einfach und logisch..nunja ist auch schon ein paar Jahrzente her Big Grin

Wie gesagt, man sieht sich als Anfänger Beispielsketche an und experimentiert damit herum... jetzt habe ich das Problem das der obige sketch zwar bei mir funktioniert aber eben mit farbwechseln..dies habe ich heute probiert zu ändern..erfolglos.
Mein Strip bleibt dunkel. der sketch enthält keine Fehler laut IDE aber irgendwas ist faul...

jetzt habe ich wohl zuviel rausgelöscht:

#include <Adafruit_NeoPixel.h> //Neopixel Bibliothek laden

#define Anschluss_PIN 12 // gewählter Pin auf arduino
#define Leuchtmenge_LED 15 //anzahl der Leds im strip

// definition der objekte
Adafruit_NeoPixel color_1 = Adafruit_NeoPixel(Anschluss_PIN, Leuchtmenge_LED, NEO_GRB + NEO_KHZ800);



//Farbvariable
uint32_t FarbeRot = color_1.Color(241,16,160);

// Setup begin
void setup()
{
color_1.begin();
color_1.show();

}

// Ende Setup


void loop(){

// knight rider LEDs
int t;
for (int i = 0; i < color_1.numPixels(); i++) {
color_1.setPixelColor(i, FarbeRot);

t = i - 1;
if (t < 0) t = color_1.numPixels() - 1;
color_1.setPixelColor(t, color_1.Color( 0 ,0, 0));
color_1.show();
delay(50); //schnell hoch
}
for (int i = color_1.numPixels()-1; i >= 0; i--) {
t = i + 1;
if (t >= color_1.numPixels()) t = 0;
color_1.setPixelColor(t, color_1.Color( 0 ,0, 0));
color_1.show();
delay(200); //langsam runter
}
}

wahrscheinlich wird der Strip gar nicht erst initialisiert..naja morgen ist auch ein Tag!Dodgy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.02.2015, 21:46
Beitrag #5
RE: vorbereitung für spectrum analyzer speziell ws2812b
(16.02.2015 19:47)nighty2006 schrieb:  Hi!

Ich möchte mich erstmal für die schnellen Antworten bedanken..erlebt man selten.

Leider bin ich absoluter Newbie, und habe den Drang mich in alles reinzufuchsen..was als Anfänger nicht einfach ist wie ich feststelle... Früher zu C64 zeiten hatte ich mal mit Basic programmiert da meine Eltern mir einen C16 schenkten..da war nicht viel mit spielen. Im Gegensatz zu c++ war das sehr einfach und logisch..nunja ist auch schon ein paar Jahrzente her Big Grin

Wie gesagt, man sieht sich als Anfänger Beispielsketche an und experimentiert damit herum... jetzt habe ich das Problem das der obige sketch zwar bei mir funktioniert aber eben mit farbwechseln..dies habe ich heute probiert zu ändern..erfolglos.
Mein Strip bleibt dunkel. der sketch enthält keine Fehler laut IDE aber irgendwas ist faul...

jetzt habe ich wohl zuviel rausgelöscht:

#include <Adafruit_NeoPixel.h> //Neopixel Bibliothek laden

#define Anschluss_PIN 12 // gewählter Pin auf arduino
#define Leuchtmenge_LED 15 //anzahl der Leds im strip

// definition der objekte
Adafruit_NeoPixel color_1 = Adafruit_NeoPixel(Anschluss_PIN, Leuchtmenge_LED, NEO_GRB + NEO_KHZ800);



//Farbvariable
uint32_t FarbeRot = color_1.Color(241,16,160);

// Setup begin
void setup()
{
color_1.begin();
color_1.show();

}

// Ende Setup


void loop(){

// knight rider LEDs
int t;
for (int i = 0; i < color_1.numPixels(); i++) {
color_1.setPixelColor(i, FarbeRot);

t = i - 1;
if (t < 0) t = color_1.numPixels() - 1;
color_1.setPixelColor(t, color_1.Color( 0 ,0, 0));
color_1.show();
delay(50); //schnell hoch
}
for (int i = color_1.numPixels()-1; i >= 0; i--) {
t = i + 1;
if (t >= color_1.numPixels()) t = 0;
color_1.setPixelColor(t, color_1.Color( 0 ,0, 0));
color_1.show();
delay(200); //langsam runter
}
}

wahrscheinlich wird der Strip gar nicht erst initialisiert..naja morgen ist auch ein Tag!Dodgy

Aufn ersten blick hast du da n ganz schönes Kuddel Muddel drin...der Code kann nicht funktionieren! ;-)
Und nun die Auflösung warum:
Code:
Adafruit_NeoPixel color_1 = Adafruit_NeoPixel(Anschluss_PIN, Leuchtmenge_LED, NEO_GRB + NEO_KHZ800);
Exclamation Als erstes wird die LED MENGE angegeben und dann der ANSCHLUSSPIN, nicht andersrum! Exclamation ;-)

hab den Code jetzt nicht probiert, aber suche doch mal Nach Adafruit Neopixel KnightRider.

Greez
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.02.2015, 13:12
Beitrag #6
RE: vorbereitung für spectrum analyzer speziell ws2812b
Hey Wampo!

Danke für deine Antwort.. was den Kuddelmuddel angeht hast du wahrscheinlich recht..ich steh ganz am Anfang!*g

Habe die Daten so geändert wie du sagtest und siehe da? Es geht wieder!..woher auch immer du diese info hast... Ich hätte jetzt etwas komplizierter gedacht und ebenso gesucht...
Ursprünglich war es der Adafruit Code aber eben mit Farbwechseln...das wollte ich ja nicht Big Grin

Ich sehe schon, mein Vorhaben wird noch seehr seehr lange dauern..schließlich sollen die Audio-Frequenzen getrennt werden durch einen msgeq7 und dementsprechend die Balken (Leds) je nach " Spannung " unterschiedlich hoch ausschlagen.

Wahrscheinlich einfacher mit herkömmlichen Leds aber das wäre langweilig Angel

Auf jeden Fall danke ich Dir!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.02.2015, 14:41 (Dieser Beitrag wurde zuletzt bearbeitet: 17.02.2015 14:45 von Wampo.)
Beitrag #7
RE: vorbereitung für spectrum analyzer speziell ws2812b
(17.02.2015 13:12)nighty2006 schrieb:  Hey Wampo!

Danke für deine Antwort.. was den Kuddelmuddel angeht hast du wahrscheinlich recht..ich steh ganz am Anfang!*g

Habe die Daten so geändert wie du sagtest und siehe da? Es geht wieder!..woher auch immer du diese info hast... Ich hätte jetzt etwas komplizierter gedacht und ebenso gesucht...
Ursprünglich war es der Adafruit Code aber eben mit Farbwechseln...das wollte ich ja nicht Big Grin

Ich sehe schon, mein Vorhaben wird noch seehr seehr lange dauern..schließlich sollen die Audio-Frequenzen getrennt werden durch einen msgeq7 und dementsprechend die Balken (Leds) je nach " Spannung " unterschiedlich hoch ausschlagen.

Wahrscheinlich einfacher mit herkömmlichen Leds aber das wäre langweilig Angel

Auf jeden Fall danke ich Dir!

Als absoluter Newbie in dem Sektor Arduino muss ich sagen hast du dir schon dickes Codegeschreibe vorgenommen. Aber ich denke wenn du das Verwirklichen kannst mit den WS LED´s dann hast schon sehr viel dabei gelernt.

Suche mal im Netz nach VU METER, so schimpfen sich die Equalizeranzeigen. hab schon einige Videos davon gesehen, schreibe auch die leute einfach mal an ob sie dir evtl den Code aushändigen. Manche sind so nett.

Ich Programmier fast jeden Tag an meiner NeoPixel Clock, jeden tag ein stück mehr, doch leider lange nicht zuende.

Hier ein Video davon:





Greez
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.02.2015, 16:31
Beitrag #8
RE: vorbereitung für spectrum analyzer speziell ws2812b
Schauen se her Kollege, ein wenig suche und Stöbern im Netz und schon findet man genau das was du suchst.

http://iot4kids.com/tag/ws2812b/

Greez
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  WS2812b Matrix CrazyHawk 9 1.310 31.08.2016 12:58
Letzter Beitrag: Binatone
Big Grin Bluetooth CoronaClock mit WS2812b LED mit App für Android Wampo 7 2.656 27.03.2015 21:55
Letzter Beitrag: Wampo
Lightbulb LED Thermometer über WS2812b LED und Dallas DS18B20 Wampo 2 1.724 15.03.2015 17:45
Letzter Beitrag: Wampo
Lightbulb HC-SR4 Ultraschall Abstands Ampel mit WS2812b Pixel LED´s Wampo 0 1.711 14.03.2015 18:40
Letzter Beitrag: Wampo
Lightbulb Hexacopter LED mit RC Empfänger und WS2812B LED Wampo 9 3.373 02.01.2015 14:17
Letzter Beitrag: Wampo

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste