Hallo zusammen, für LiveProduktionen möchte ich gerne auf jeder Kamera einen Ring mit Neopixel setzen, um so zu zeigen welche Kamera gerade 'OnAir' ist.
Dafür habe ich 4 Taster mit LED-Ring, (für jede Kamera einen Taster)
Wird z.B. Taster 1 gedrückt, leuchtet es am Taster 1, an Taster2, 3 & 4 geht es aus.
Das funktioniert soweit alles.
Ich möchte jetzt aber gerne noch die NeoPixel integrieren und für jede 'Kamera' einen seperaten Pin nutzen.
Es sollen also 4 Streifen mit NeoPixel angeschlossen werden, jeder davon sollte gedimmt sein (die sind sonst echt hell.. )
Jetzt zu meiner Frage;
ist das überhaupt möglich? Wenn ja, kann mich dazu bitte jemand unterstützen?
Anbei schonmal der Sketch, der funktioniert soweit, bei Kamera 1 gehen die NeoPixel auch an, dann aber nicht mehr aus...
Freue mich auf eure Tipps
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 8 // NEOPIXEL KAMERA1
#define NUMPIXELS 16
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
const int TasterLED1 = 9;
const int TasterLED2 = 10;
const int TasterLED3 = 11;
const int TasterLED4 = 12;
const int Taster1 = A0;
const int Taster2 = A1;
const int Taster3 = A2;
const int Taster4 = A3;
void setup() {
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
clock_prescale_set(clock_div_1);
#endif
pixels.begin();
pinMode(TasterLED1,OUTPUT);
pinMode(TasterLED2,OUTPUT);
pinMode(TasterLED3,OUTPUT);
pinMode(TasterLED4,OUTPUT);
pinMode(Taster1,INPUT_PULLUP);
pinMode(Taster2,INPUT_PULLUP);
pinMode(Taster3,INPUT_PULLUP);
pinMode(Taster4,INPUT_PULLUP);
digitalWrite(TasterLED1,LOW);
digitalWrite(TasterLED2,LOW);
digitalWrite(TasterLED3,LOW);
digitalWrite(TasterLED4,LOW);
}
void loop() {
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, 150, 0));
}
if (digitalRead(Taster1) == LOW) {
digitalWrite(TasterLED1,HIGH);
digitalWrite(TasterLED2,LOW);
digitalWrite(TasterLED3,LOW);
digitalWrite(TasterLED4,LOW);
pixels.show();
// NEOPIXEL Kamera 1 GRÜN
// NEOPIXEL Kamera 2,3,4 ROT
}
if (digitalRead(Taster2) == LOW) {
digitalWrite(TasterLED1,LOW);
digitalWrite(TasterLED2,HIGH);
digitalWrite(TasterLED3,LOW);
digitalWrite(TasterLED4,LOW);
pixels.clear(); // Testweise zum Ausschalten von Kamera 1 - funktioniert aber nicht
// NEOPIXEL Kamera 2 GRÜN
// NEOPIXEL Kamera 1,3,4 ROT
}
if (digitalRead(Taster3) == LOW) {
digitalWrite(TasterLED1,LOW);
digitalWrite(TasterLED2,LOW);
digitalWrite(TasterLED3,HIGH);
digitalWrite(TasterLED4,LOW);
// NEOPIXEL Kamera 3 GRÜN
// NEOPIXEL Kamera 1,2,4 ROT
}
if (digitalRead(Taster4) == LOW) {
digitalWrite(TasterLED1,LOW);
digitalWrite(TasterLED2,LOW);
digitalWrite(TasterLED3,LOW);
digitalWrite(TasterLED4,HIGH);
// NEOPIXEL Kamera 4 GRÜN
// NEOPIXEL Kamera 1,2,3 ROT
}
}