RaptorTP
Fleet Admiral
- Registriert
- Jan. 2006
- Beiträge
- 18.748
Hallo zusammen,
ich habe endlich mal einen Code der mir es ermöglichst alle LEDs im Rechner so anzupassen wie ich es will.
Einfach so. Ohne irgend eine blöde SW.
Arduino einmal konfigurieren - alles LEDs so ansteuern wie man das möchte.
Kompilieren, hochladen, fertig.
Auch farbliche Anpassungen zwischen den Stripes sind somit kein Problem.
Soweit, so gut.
Ich habe bereits man Test-Stripes aus alten Phanteks HALO rausgeschraubt und angeschlossen.
Jetzt aber nochmal eine Frage seitens der Verdrahtung:
Ich hatte erst alles direkt verdrahtet. Also wirklich einfach vom Arduino Nano via USB gezogen.
Auch direkt die PINs am Arduino verbunden. Alles lief immer ohne Probleme.
So - dann dachte ich mir - Nimm ein Breadboard, machen andere genauso. Ist doch viel einfacher.
Ging auch auch ein paar mal ohne Probleme.
ZACK - Erste LED rot ... und auch nur noch ROT.
Ist wohl so nicht mehr ansteuerbar. Der Rest geht einwandfrei.
Jetzt möchte ich natürlich vorsorgen und nicht überall dann die erst LED schrotten.
Ich würde die 5V direkt vom Netzteil im Rechner abgreifen.
Was gibt es da zu beachten ? Gehört ein Widerstand zwischen Arduino und dem DATA PIN der LEDs ?
Wenn ja - welcher ?
Was muss ich noch beachten.
Dieses StarterKIT hab ich mir mal bestellt:
https://www.amazon.de/gp/product/B01M7N4WB6/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1
Erst mal vielen Dank für alle Hinweise.
Was etwas seltsam ist: Ich habe ein Arduino Nano auch am Ambilight am Monitor mit einem 5V Netzteil verbunden.
Da habe ich keine Widerstände irgendwo hin und das hält schon Jahre ! :/
Euch nen schönen Sonntag Abend !
ich habe endlich mal einen Code der mir es ermöglichst alle LEDs im Rechner so anzupassen wie ich es will.
Einfach so. Ohne irgend eine blöde SW.
Code:
#include <FastLED.h>
#define LED_PIN1 3 //strip1
#define NUM_LEDS1 30
#define LED_PIN2 4 //strip2
#define NUM_LEDS2 30
#define LED_PIN3 5 //strip3
#define NUM_LEDS3 30
#define LED_PIN4 6 //strip4
#define NUM_LEDS4 30
#define LED_PIN5 7 //strip5
#define NUM_LEDS5 30
#define LED_PIN6 8 //strip6
#define NUM_LEDS6 30
#define LED_PIN7 9 //strip7
#define NUM_LEDS7 30
#define LED_PIN8 10 //strip8
#define NUM_LEDS8 30
#define BRIGHTNESS 30
#define LED_TYPE WS2812B
#define COLOR_ORDER RGB
CRGB ledsA[NUM_LEDS1];
CRGB ledsB[NUM_LEDS2];
CRGB ledsC[NUM_LEDS3];
CRGB ledsD[NUM_LEDS4];
CRGB ledsE[NUM_LEDS5];
CRGB ledsF[NUM_LEDS6];
CRGB ledsG[NUM_LEDS7];
CRGB ledsH[NUM_LEDS8];
#define UPDATES_PER_SECOND 500
CRGBPalette16 currentPalette;
TBlendType currentBlending;
extern CRGBPalette16 myRedWhiteBluePalette;
extern const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM;
void setup() {
delay( 3000 ); // power-up safety delay
FastLED.addLeds<LED_TYPE, LED_PIN1, COLOR_ORDER>(ledsA, NUM_LEDS1).setCorrection( TypicalLEDStrip );
FastLED.addLeds<LED_TYPE, LED_PIN2, COLOR_ORDER>(ledsB, NUM_LEDS2).setCorrection( TypicalLEDStrip );
FastLED.addLeds<LED_TYPE, LED_PIN3, COLOR_ORDER>(ledsC, NUM_LEDS3).setCorrection( TypicalLEDStrip );
FastLED.addLeds<LED_TYPE, LED_PIN4, COLOR_ORDER>(ledsD, NUM_LEDS4).setCorrection( TypicalLEDStrip );
FastLED.addLeds<LED_TYPE, LED_PIN5, COLOR_ORDER>(ledsE, NUM_LEDS5).setCorrection( TypicalLEDStrip );
FastLED.addLeds<LED_TYPE, LED_PIN6, COLOR_ORDER>(ledsF, NUM_LEDS6).setCorrection( TypicalLEDStrip );
FastLED.addLeds<LED_TYPE, LED_PIN7, COLOR_ORDER>(ledsG, NUM_LEDS7).setCorrection( TypicalLEDStrip );
FastLED.addLeds<LED_TYPE, LED_PIN8, COLOR_ORDER>(ledsH, NUM_LEDS8).setCorrection( TypicalLEDStrip );
FastLED.setBrightness( BRIGHTNESS );
currentPalette = RainbowColors_p;
currentBlending = LINEARBLEND;
}
void loop()
{
//ChangePalettePeriodically();
//static uint8_t startIndex = 0;
//startIndex = startIndex + 1; /* motion speed */
//FillLEDsFromPaletteColors( startIndex);
//strip1
ledsA[0] = CRGB(0,255,255);
ledsA[1] = CRGB(0,255,255);
ledsA[2] = CRGB(0,255,255);
ledsA[3] = CRGB(0,255,255);
ledsA[4] = CRGB(0,255,255);
ledsA[5] = CRGB(0,0,255);
ledsA[6] = CRGB(255,0,0);
ledsA[7] = CRGB(0,255,0);
ledsA[8] = CRGB(0,0,255);
ledsA[9] = CRGB(255,0,0);
ledsA[10] = CRGB(0,255,0);
ledsA[11] = CRGB(0,0,255);
ledsA[12] = CRGB(255,0,0);
ledsA[13] = CRGB(0,255,0);
ledsA[14] = CRGB(0,0,255);
ledsA[15] = CRGB(255,0,0);
ledsA[16] = CRGB(0,255,0);
ledsA[17] = CRGB(0,0,255);
ledsA[18] = CRGB(255,0,0);
ledsA[19] = CRGB(0,255,0);
ledsA[20] = CRGB(0,0,255);
ledsA[21] = CRGB(0,255,0);
ledsA[22] = CRGB(0,0,255);
ledsA[23] = CRGB(255,0,0);
ledsA[24] = CRGB(0,255,0);
ledsA[25] = CRGB(0,0,255);
ledsA[26] = CRGB(255,0,0);
ledsA[27] = CRGB(0,255,0);
ledsA[28] = CRGB(0,0,255);
ledsA[29] = CRGB(255,0,0);
ledsA[30] = CRGB(0,255,0);
//strip2
ledsB[0] = CRGB(0,255,255);
ledsB[1] = CRGB(0,255,255);
ledsB[2] = CRGB(0,255,255);
ledsB[3] = CRGB(0,255,255);
ledsB[4] = CRGB(0,255,255);
ledsB[5] = CRGB(0,255,255);
ledsB[6] = CRGB(0,255,255);
ledsB[7] = CRGB(0,255,0);
ledsB[8] = CRGB(0,0,255);
ledsB[9] = CRGB(255,0,0);
ledsB[10] = CRGB(0,255,0);
ledsB[11] = CRGB(0,0,255);
ledsB[12] = CRGB(255,0,0);
ledsB[13] = CRGB(0,255,0);
ledsB[14] = CRGB(0,255,255);
ledsB[15] = CRGB(255,0,0);
ledsB[16] = CRGB(0,255,255);
ledsB[17] = CRGB(0,0,255);
ledsB[18] = CRGB(255,0,0);
ledsB[19] = CRGB(0,255,255);
ledsB[20] = CRGB(0,0,255);
ledsB[21] = CRGB(0,255,0);
ledsB[22] = CRGB(0,255,255);
ledsB[23] = CRGB(255,0,0);
ledsB[24] = CRGB(0,255,0);
ledsB[25] = CRGB(0,0,255);
ledsB[26] = CRGB(255,0,0);
ledsB[27] = CRGB(0,255,0);
ledsB[28] = CRGB(0,0,255);
ledsB[29] = CRGB(255,0,0);
ledsB[30] = CRGB(0,255,0);
//strip3
ledsC[0] = CRGB(255,255,255);
ledsC[1] = CRGB(255,255,255);
ledsC[2] = CRGB(0,255,255);
ledsC[3] = CRGB(0,255,255);
ledsC[4] = CRGB(0,255,255);
ledsC[5] = CRGB(0,255,255);
ledsC[6] = CRGB(0,255,255);
ledsC[7] = CRGB(0,255,0);
ledsC[8] = CRGB(0,0,255);
ledsC[9] = CRGB(255,0,0);
ledsC[10] = CRGB(0,255,0);
ledsC[11] = CRGB(0,0,255);
ledsC[12] = CRGB(255,0,0);
ledsC[13] = CRGB(0,255,0);
ledsC[14] = CRGB(0,255,255);
ledsC[15] = CRGB(255,0,0);
ledsC[16] = CRGB(0,255,255);
ledsC[17] = CRGB(0,0,255);
ledsC[18] = CRGB(255,0,0);
ledsC[19] = CRGB(0,255,255);
ledsC[20] = CRGB(0,0,255);
ledsC[21] = CRGB(0,255,0);
ledsC[22] = CRGB(0,255,255);
ledsC[23] = CRGB(255,0,0);
ledsC[24] = CRGB(0,255,0);
ledsC[25] = CRGB(0,0,255);
ledsC[26] = CRGB(255,0,0);
ledsC[27] = CRGB(0,255,0);
ledsC[28] = CRGB(0,0,255);
ledsC[29] = CRGB(255,0,0);
ledsC[30] = CRGB(0,255,0);
//strip4
ledsD[0] = CRGB(0,255,255);
ledsD[1] = CRGB(0,255,255);
ledsD[2] = CRGB(0,255,255);
ledsD[3] = CRGB(0,255,255);
ledsD[4] = CRGB(0,255,255);
ledsD[5] = CRGB(0,255,255);
ledsD[6] = CRGB(0,255,255);
ledsD[7] = CRGB(0,255,0);
ledsD[8] = CRGB(0,0,255);
ledsD[9] = CRGB(255,0,0);
ledsD[10] = CRGB(0,255,0);
ledsD[11] = CRGB(0,0,255);
ledsD[12] = CRGB(255,0,0);
ledsD[13] = CRGB(0,255,0);
ledsD[14] = CRGB(0,255,255);
ledsD[15] = CRGB(255,0,0);
ledsD[16] = CRGB(0,255,255);
ledsD[17] = CRGB(0,0,255);
ledsD[18] = CRGB(255,0,0);
ledsD[19] = CRGB(0,255,255);
ledsD[20] = CRGB(0,0,255);
ledsD[21] = CRGB(0,255,0);
ledsD[22] = CRGB(0,255,255);
ledsD[23] = CRGB(255,0,0);
ledsD[24] = CRGB(0,255,0);
ledsD[25] = CRGB(0,0,255);
ledsD[26] = CRGB(255,0,0);
ledsD[27] = CRGB(0,255,0);
ledsD[28] = CRGB(0,0,255);
ledsD[29] = CRGB(255,0,0);
ledsD[30] = CRGB(0,255,0);
//strip5
ledsE[0] = CRGB(255,255,255);
ledsE[1] = CRGB(255,255,255);
ledsE[2] = CRGB(0,255,255);
ledsE[3] = CRGB(0,255,255);
ledsE[4] = CRGB(0,255,255);
ledsE[5] = CRGB(0,255,255);
ledsE[6] = CRGB(0,255,255);
ledsE[7] = CRGB(0,255,0);
ledsE[8] = CRGB(0,0,255);
ledsE[9] = CRGB(255,0,0);
ledsE[10] = CRGB(0,255,0);
ledsE[11] = CRGB(0,0,255);
ledsE[12] = CRGB(255,0,0);
ledsE[13] = CRGB(0,255,0);
ledsE[14] = CRGB(0,255,255);
ledsE[15] = CRGB(255,0,0);
ledsE[16] = CRGB(0,255,255);
ledsE[17] = CRGB(0,0,255);
ledsE[18] = CRGB(255,0,0);
ledsE[19] = CRGB(0,255,255);
ledsE[20] = CRGB(0,0,255);
ledsE[21] = CRGB(0,255,0);
ledsE[22] = CRGB(0,255,255);
ledsE[23] = CRGB(255,0,0);
ledsE[24] = CRGB(0,255,0);
ledsE[25] = CRGB(0,0,255);
ledsE[26] = CRGB(255,0,0);
ledsE[27] = CRGB(0,255,0);
ledsE[28] = CRGB(0,0,255);
ledsE[29] = CRGB(255,0,0);
ledsE[30] = CRGB(0,255,0);
//strip6
ledsF[0] = CRGB(255,255,255);
ledsF[1] = CRGB(255,255,255);
ledsF[2] = CRGB(0,255,255);
ledsF[3] = CRGB(0,255,255);
ledsF[4] = CRGB(0,255,255);
ledsF[5] = CRGB(0,255,255);
ledsF[6] = CRGB(0,255,255);
ledsF[7] = CRGB(0,255,0);
ledsF[8] = CRGB(0,0,255);
ledsF[9] = CRGB(255,0,0);
ledsF[10] = CRGB(0,255,0);
ledsF[11] = CRGB(0,0,255);
ledsF[12] = CRGB(255,0,0);
ledsF[13] = CRGB(0,255,0);
ledsF[14] = CRGB(0,255,255);
ledsF[15] = CRGB(255,0,0);
ledsF[16] = CRGB(0,255,255);
ledsF[17] = CRGB(0,0,255);
ledsF[18] = CRGB(255,0,0);
ledsF[19] = CRGB(0,255,255);
ledsF[20] = CRGB(0,0,255);
ledsF[21] = CRGB(0,255,0);
ledsF[22] = CRGB(0,255,255);
ledsF[23] = CRGB(255,0,0);
ledsF[24] = CRGB(0,255,0);
ledsF[25] = CRGB(0,0,255);
ledsF[26] = CRGB(255,0,0);
ledsF[27] = CRGB(0,255,0);
ledsF[28] = CRGB(0,0,255);
ledsF[29] = CRGB(255,0,0);
ledsF[30] = CRGB(0,255,0);
//strip7
ledsG[0] = CRGB(255,255,255);
ledsG[1] = CRGB(255,255,255);
ledsG[2] = CRGB(0,255,255);
ledsG[3] = CRGB(0,255,255);
ledsG[4] = CRGB(0,255,255);
ledsG[5] = CRGB(0,255,255);
ledsG[6] = CRGB(0,255,255);
ledsG[7] = CRGB(0,255,0);
ledsG[8] = CRGB(0,0,255);
ledsG[9] = CRGB(255,0,0);
ledsG[10] = CRGB(0,255,0);
ledsG[11] = CRGB(0,0,255);
ledsG[12] = CRGB(255,0,0);
ledsG[13] = CRGB(0,255,0);
ledsG[14] = CRGB(0,255,255);
ledsG[15] = CRGB(255,0,0);
ledsG[16] = CRGB(0,255,255);
ledsG[17] = CRGB(0,0,255);
ledsG[18] = CRGB(255,0,0);
ledsG[19] = CRGB(0,255,255);
ledsG[20] = CRGB(0,0,255);
ledsG[21] = CRGB(0,255,0);
ledsG[22] = CRGB(0,255,255);
ledsG[23] = CRGB(255,0,0);
ledsG[24] = CRGB(0,255,0);
ledsG[25] = CRGB(0,0,255);
ledsG[26] = CRGB(255,0,0);
ledsG[27] = CRGB(0,255,0);
ledsG[28] = CRGB(0,0,255);
ledsG[29] = CRGB(255,0,0);
ledsG[30] = CRGB(0,255,0);
//strip8
ledsH[0] = CRGB(255,255,255);
ledsH[1] = CRGB(255,255,255);
ledsH[2] = CRGB(0,255,255);
ledsH[3] = CRGB(0,255,255);
ledsH[4] = CRGB(0,255,255);
ledsH[5] = CRGB(0,255,255);
ledsH[6] = CRGB(0,255,255);
ledsH[7] = CRGB(0,255,0);
ledsH[8] = CRGB(0,0,255);
ledsH[9] = CRGB(255,0,0);
ledsH[10] = CRGB(0,255,0);
ledsH[11] = CRGB(0,0,255);
ledsH[12] = CRGB(255,0,0);
ledsH[13] = CRGB(0,255,0);
ledsH[14] = CRGB(0,255,255);
ledsH[15] = CRGB(255,0,0);
ledsH[16] = CRGB(0,255,255);
ledsH[17] = CRGB(0,0,255);
ledsH[18] = CRGB(255,0,0);
ledsH[19] = CRGB(0,255,255);
ledsH[20] = CRGB(0,0,255);
ledsH[21] = CRGB(0,255,0);
ledsH[22] = CRGB(0,255,255);
ledsH[23] = CRGB(255,0,0);
ledsH[24] = CRGB(0,255,0);
ledsH[25] = CRGB(0,0,255);
ledsH[26] = CRGB(255,0,0);
ledsH[27] = CRGB(0,255,0);
ledsH[28] = CRGB(0,0,255);
ledsH[29] = CRGB(255,0,0);
ledsH[30] = CRGB(0,255,0);
FastLED.show();
FastLED.delay(500 / UPDATES_PER_SECOND);
}
void FillLEDsFromPaletteColors( uint8_t colorIndex)
{
uint8_t brightness = 255;
for( int i = 0; i < NUM_LEDS1; i++) {
ledsA[i] = ColorFromPalette( currentPalette, colorIndex, brightness, currentBlending);
colorIndex += 0;
}
}
void ChangePalettePeriodically()
{
uint8_t secondHand = (millis() / 1000) % 60;
static uint8_t lastSecond = 99;
if( lastSecond != secondHand) {
lastSecond = secondHand;
if( secondHand == 0) { currentPalette = RainbowColors_p; currentBlending = LINEARBLEND; }
if( secondHand == 10) { currentPalette = RainbowStripeColors_p; currentBlending = NOBLEND; }
if( secondHand == 15) { currentPalette = RainbowStripeColors_p; currentBlending = LINEARBLEND; }
if( secondHand == 20) { SetupPurpleAndGreenPalette(); currentBlending = LINEARBLEND; }
if( secondHand == 25) { SetupTotallyRandomPalette(); currentBlending = LINEARBLEND; }
if( secondHand == 30) { SetupBlackAndWhiteStripedPalette(); currentBlending = NOBLEND; }
if( secondHand == 35) { SetupBlackAndWhiteStripedPalette(); currentBlending = LINEARBLEND; }
if( secondHand == 40) { currentPalette = CloudColors_p; currentBlending = LINEARBLEND; }
if( secondHand == 45) { currentPalette = PartyColors_p; currentBlending = LINEARBLEND; }
if( secondHand == 50) { currentPalette = myRedWhiteBluePalette_p; currentBlending = NOBLEND; }
if( secondHand == 55) { currentPalette = myRedWhiteBluePalette_p; currentBlending = LINEARBLEND; }
}
}
// This function fills the palette with totally random colors.
void SetupTotallyRandomPalette()
{
for( int i = 0; i < 16; i++) {
currentPalette[i] = CHSV( 255, 0, 0);
}
}
void SetupBlackAndWhiteStripedPalette()
{
// 'black out' all 16 palette entries...
fill_solid( currentPalette, 16, CRGB::Black);
// and set every fourth one to white.
currentPalette[0] = CRGB::White;
currentPalette[4] = CRGB::White;
currentPalette[8] = CRGB::White;
currentPalette[12] = CRGB::White;
}
// This function sets up a palette of purple and green stripes.
void SetupPurpleAndGreenPalette()
{
CRGB purple = CHSV( HUE_PURPLE, 255, 255);
CRGB green = CHSV( HUE_GREEN, 255, 255);
CRGB black = CRGB::Black;
currentPalette = CRGBPalette16(
green, green, black, black,
purple, purple, black, black,
green, green, black, black,
purple, purple, black, black );
}
const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM =
{
CRGB::Red,
CRGB::Gray, // 'white' is too bright compared to red and blue
CRGB::Blue,
CRGB::Black,
CRGB::Red,
CRGB::Gray,
CRGB::Blue,
CRGB::Black,
CRGB::Red,
CRGB::Red,
CRGB::Gray,
CRGB::Gray,
CRGB::Blue,
CRGB::Blue,
CRGB::Black,
CRGB::Black
};
Arduino einmal konfigurieren - alles LEDs so ansteuern wie man das möchte.
Kompilieren, hochladen, fertig.
Auch farbliche Anpassungen zwischen den Stripes sind somit kein Problem.
Soweit, so gut.
Ich habe bereits man Test-Stripes aus alten Phanteks HALO rausgeschraubt und angeschlossen.
Jetzt aber nochmal eine Frage seitens der Verdrahtung:
Ich hatte erst alles direkt verdrahtet. Also wirklich einfach vom Arduino Nano via USB gezogen.
Auch direkt die PINs am Arduino verbunden. Alles lief immer ohne Probleme.
So - dann dachte ich mir - Nimm ein Breadboard, machen andere genauso. Ist doch viel einfacher.
Ging auch auch ein paar mal ohne Probleme.
ZACK - Erste LED rot ... und auch nur noch ROT.
Ist wohl so nicht mehr ansteuerbar. Der Rest geht einwandfrei.
Jetzt möchte ich natürlich vorsorgen und nicht überall dann die erst LED schrotten.
Ich würde die 5V direkt vom Netzteil im Rechner abgreifen.
Was gibt es da zu beachten ? Gehört ein Widerstand zwischen Arduino und dem DATA PIN der LEDs ?
Wenn ja - welcher ?
Was muss ich noch beachten.
Dieses StarterKIT hab ich mir mal bestellt:
https://www.amazon.de/gp/product/B01M7N4WB6/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1
Erst mal vielen Dank für alle Hinweise.
Was etwas seltsam ist: Ich habe ein Arduino Nano auch am Ambilight am Monitor mit einem 5V Netzteil verbunden.
Da habe ich keine Widerstände irgendwo hin und das hält schon Jahre ! :/
Euch nen schönen Sonntag Abend !