Hallo Leute,
Ich baue gerade eine BusyBox (Holzkiste mit vielen Knöpfen und Lichtern für Kinder) und habe vorerst 8 pushbuttons und 8 ws28 LED‘s in einem Streifen.
Die pushbuttons benutze ich mit dem verbautem Pull-up Widerstand des Arduino.
Ich habe alle Komponenten einzeln getestet und einzelne funktioniert auch alles einwandfrei. Nun habe ich alles zusammengeschaltet (s. Schaltplan) und eine Programm dafür geschrieben. Auf dem Arduino Uno funktionierten die Knöpfe sowie LEDs und nach dem Umstieg auf den Nano funktionierte nichts mehr.
Ich vermute ich habe etwas einfaches übersehen, aber sehe jetzt den Wald vor lauter Bäumen nicht mehr.
Ich hoffe einer von euch kann mir helfen.
Gruß.
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
Adafruit_NeoPixel pixels(8, 2, NEO_GRB + NEO_KHZ800);
const int t = 1000;
const int buttons = 8;
unsigned long onTime[8] = {0,0,0,0,0,0,0,0};
int buttonPin[8] = {3,4,5,6,7,8,9,10};
int bState[8] = {0,0,0,0,0,0,0,0};
int b = 150;
int buttonValue[8] = {0,0,0,0,0,0,0,0};
void setup() {
pixels.begin();
for (int i = 0; i < buttons; i++){
pinMode(buttonPin[i], INPUT_PULLUP);
}
}
void loop() {
for (int j = 0; j < sizeof(buttonValue); j++){
buttonValue[j] = digitalRead(buttonPin[j]);
}
for (int k = 0; k < sizeof(buttonPin); k++){
if (buttonValue[k] == LOW){
switch(bState[k]){
case 0:
pixels.setPixelColor(k, pixels.Color(b, 0, 0));
break;
case 1:
pixels.setPixelColor(k, pixels.Color(0, b, 0));
break;
case 2:
pixels.setPixelColor(k, pixels.Color(0, 0, b));
break;
case 3:
pixels.setPixelColor(k, pixels.Color(b, b, b));
break;
}
onTime[k] = millis();
pixels.show();
}
if((onTime[k] > 0) && (millis() - onTime[k] > t)){
pixels.clear();
pixels.show();
if (bState[k] < 3){
bState[k] = bState[k] +1;
} else {bState[k] = 0; }
onTime[k] = 0;
}
}
}
EDIT: in der Schaltung sollte die Stromquelle 9v haben. Ich betreibe das Ding mit einer 9v Batterie.
