Hallo alle zusammen
Ich bin Anfänger im Bereich Arduino. Habe mich an ein kleines projekt mit LED Neopixelstreifen gewagt.
Bin mit dem Ergebniss ganz zufrieden . Led lauflicht funktioniert.Die Geschwindigkeit des Lauflichts läßt sich auch mit IR-FB erhöhen und wieder senke. Leider kann ich die Grund geschwindigkeit des Lauflichts nicht weiter erhöhen dar die Abfrage der IR-FB schlechter wird bis ganz versagt.
Meine Frage ist mein Code so schlecht oder ist es Hardware bedingt.
Würde mich über Antworten freuen
#include <IRremote.h>
#include <Adafruit_NeoPixel.h>
#define LEDStreifen 9
#define Anzahl 9
int IR_PIN = 10;
int p=0;
int pause=0;
int wc = 0;
int i=0;
int a=9;
int b=0;
int gn=0;
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(Anzahl, LEDStreifen, NEO_GRB + NEO_KHZ800);
IRrecv irrecv(IR_PIN);
decode_results IRDaten;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
pixels.begin();
}
void loop()
{
{
delay (70);
if (irrecv.decode(&IRDaten)) {
Serial.println(IRDaten.value, DEC);{
if (IRDaten.value == 16724175){
p=p+150;};
if (IRDaten.value == 16718055){
p=p-150;};
if (IRDaten.value == 16743045){
gn=120;};
if (IRDaten.value ==16738455 ){
for (int b=0; b<9; b++){
pixels.setPixelColor(b,0,0,0);
pixels.show();
gn=0;}};
irrecv.resume();
}
}
}
if (gn==120){
for (int b=0; b<9; b++){
pixels.setPixelColor(b,0,gn,0);
gn=121;};
pixels.show();
}
if (i<=8){
pixels.setPixelColor(i, Wheel(wc));
pixels.setPixelColor(i-1, pixels.Color(0,gn,0));
i=(i+1);}
if (i==9){
a=a-1;
pixels.setPixelColor(a, Wheel(wc));
pixels.setPixelColor(a+1, pixels.Color(0,gn,0));}
if (a==0){
i=0;
a=9;}
pixels.show();
if (p<0){
p=0;}
delay (p);
wc++;
if (wc>255){
wc=0;}
}
uint32_t Wheel(byte WheelPos) {
if (WheelPos < 85) {
return pixels.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
} else if (WheelPos < 170) {
WheelPos -= 85;
return pixels.Color(255 - WheelPos * 3, 0, WheelPos * 3);
} else {
WheelPos -= 170;
return pixels.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
}