Hi leute, ich brauche für ein projekt mal eure Hilfe. Also es geht um ws2811/ws2812 LEDs. es hängen 250 Stück hintereinander. Ich dachte somit an ein Array z.b. namens LED Wie muss ich dieses Array nun bauen? Also ich dachte mir das so, LED[1] beinhaltet die werte R,G,B also müsste das Array ja aussehen LED[1] = ( 255,255,255 ) Wie erstelle ich so ein Array? wie komme ich an die Werte usw usw? Dann möchte ich einzelne Werte ändern können also beim Initialisieren sollen alle LEDs aus sein, somit muss das array LED 1 - 150 jeweils die werte 0,0,0 haben. Wie komme ich jetzt an die einzelnen LED Werte? und wie kann ich einen Wert im Array verändern ohne die anderen zu berühen? Also z.b. nur LED 117 auf 255,255,255 setzen? Dann würde ich das ganze noch gerne per "Random" füllen lassen können, also wirkürlich werden werte gesetzt. Kann mir da jemand weiter helfen? Danke euch schonmal.
Gast
#3672751
Du könntest eine geeignete Programmiersprache lernen und Dein Vorhaben mit deren Mitteln realisieren.
Gast
#3672775
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
Mit der Idee mal spielen...
ich hatte da mal so angefangen, nur bin ich noch nicht soweit das ich weiss ob das so klappt oder nicht. Hier mal der Code: ws2811.h
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
ws2811.c
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | |
102 | |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 | |
114 | |
115 | |
116 | |
117 | |
118 | |
119 | |
120 | |
121 | |
122 | |
123 | |
124 | |
125 | |
Es sind drei unterschiedliche Probleme.
1. Wie werden die Werte im Rechner abgespeichert.
2. Wie werden die Werte berechnet.
3. Wie werden die berechneten Werte ausgegeben.
1. Man kann mehrdimensionale Arrays mutzen,ich würde
vorschlagen drei Eindimensionale Arrays zu Nutzen,
z.B.:
int Rot[256];
int Grün[256];
int Gelb[256};
Setzen:
Rot[117]=1;
Grün[117]=1;
Gelb[117}=1;
Zufallszahlen werden mit der RND , Random oder ähnlichen berechnet.
Die zufällige Folge wäre dann:
For (int i=0;i<256;i++){
Rnd; // hier einem Zufallswert zwischen 0 und 1 berechnen undin Rnd
abspeichen
(if Rnd>0.5) Rot[i]=1;
(if Rnd<=0.5) Rot[i]=0;
Rnd
(if Rnd>0.5) Grün[i]=1;
(if Rnd<=0.5) Grün[i]=0;
Rnd
(if Rnd>0.5) Gelb[i]=1;
(if Rnd<=0.5) Gelb[i]=0;
ws2811_rgbsetone(i, Rot[i], Grün[i], Gelb[i])
}
Die Ausgabe je nach Prozessor.
void ws2811_rgbsetone(int led, int r, int g, int b);
void ws2811_send(void);
ok, und die helligkeit würde mich noch interessieren, also wenn ich nur z.b. 0,0,0 - 255,0,0 ändere dann wird Rot von 0 - 255 heller, aber wenn ich farben "mische" und da die werte immer nur -1 oder +1 änder dann ändert sich nicht die helligkeit sondern auch die farbe weil andere werte. zum einsatz kommt ein atmega128 mit 16Mhz Quarz
Gast
#3672870
Schau dir mal den HSV-Farbraum an. Der setzt sich - im gegensatz zu RGB - aus der Farbe (H = Hue), der Sättigung (S = Saturation) und Dunkelheit (V= Value) zusammen. H wird im allgemeinen als Grad in Farbenkreis angegeben. 0 ist zum Beispiel Rot. Wenn du jetzt den V-Wert veränderst, wird die Helligkeit vom Rot geändert
Gast
#3674093
Du könntest auch ein sogenanntes jagged Array benutzen. Das ist ein Array in dem du Arrays des gleichen Typs(String, Int32, Double, usw.) speichern kannst. Ich würde dann drei Arrays, für je eine Farbe, in einem Jagged-Array speichern:
1 | |
2 | |
3 | |
4 | |
Hier noch ein Link zum besseren Verständnis: http://msdn.microsoft.com/de-de/library/2s05feca.aspx
Oder man könnte auch ein Array auf 24bit Variablen machen und in jeder Variable alle 3 RGB-Werte speichern.
1 | |
Gast
#3675158
Native 24-Bit Variable auf einem AVR ist wohl optimistisch.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.