Hallo Leute,
ich habe ein Problem womit ich nicht weiterkomme. Vielleicht könnt ihr mir ja dabei helfen.
Ich habe eine 10x10 große Matrix aus WS2812 RGB LED's in einem Raster unter einer Plexiglasplatte. In jedem Kästchen befindet sich eine Platine (also insgesamt 100 Stk.) mit einer RGB LED, einer IR LED und einem IR Detektor. Ich möchte ein "Malprogramm" schreiben. Man wählt also eine Farbe aus indem man ein Kästchen in der untersten Reihe mit der gewünschten Farbe berührt. Jetzt soll diese Farbe gespeichert werden und nun alle Kästchen welche ich berühre in der Farbe färben die ich ausgewählt hatte.
Die Frage ist bei mir wie ich die Farbe in einer Variable speichern kann und so den andere LED's diese Farbe auch zuweisen kann.
Der Code sieht bis jetzt so aus:
#include <Wire.h>
#include <Centipede.h>
#include <Adafruit_NeoPixel.h>
#include <avr/power.h>
Centipede CS;
// Grundeinstellung
#define PIN 7
#define NUMPIXELS 100
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int delayval1 = 1;
const byte touchSensor1 = 1; //CS.portRead(1);
const byte touchSensor2 = 2;
const byte touchSensor3 = 3;
...
const byte touchSensor100 = 100;
// ----------------------------------------------------------------------------------------------------
void setup() {
// Bibliothekstart
Wire.begin();
CS.initialize();
pixels.begin();
// Pinbelegung
CS.pinMode(touchSensor1, INPUT);
CS.pinMode(touchSensor2, INPUT);
CS.pinMode(touchSensor3, INPUT);
...
CS.pinMode(touchSensor100, INPUT);
pinMode(7, OUTPUT);
// Grundform
pixels.setPixelColor(29, pixels.Color(255,0,0));
delay(delayval1);
pixels.setPixelColor(30, pixels.Color(255,255,0));
delay(delayval1);
pixels.setPixelColor(49, pixels.Color(0,255,0));
delay(delayval1);
pixels.setPixelColor(50, pixels.Color(0,255,255));
delay(delayval1);
pixels.setPixelColor(69, pixels.Color(0,0,255));
delay(delayval1);
pixels.setPixelColor(70, pixels.Color(255,0,255));
delay(delayval1);
pixels.setPixelColor(89, pixels.Color(255,255,255));
delay(delayval1);
pixels.setPixelColor(90, pixels.Color(0,0,0));
delay(delayval1);
pixels.show();
}
// ----------------------------------------------------------------------------------------------------
void loop() {
const byte buttonState1 = CS.digitalRead(touchSensor1);
const byte buttonState2 = CS.digitalRead(touchSensor2);
const byte buttonState3 = CS.digitalRead(touchSensor3);
...
const byte buttonState100 = CS.digitalRead(touchSensor100);
.
.
.
Mit dieser Zeile wird der LED 29 die Farbe ROT zugewiesen,
pixels.setPixelColor(29, pixels.Color(255,0,0));
pixels.show();
also muss ich eigentlich ja "255,0,0" als Farbe ROT speichern können. Bei der Umsetzung scheitert es jedoch bei mir.
Würde mich sehr über eine kleine Hilfe freuen!
Vielen Dank schon mal im Voraus
leon2212