1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Ambilight Probleme

Discussion in 'German Talk' started by Gho0sTx, 25 March 2019.

  1. Gho0sTx

    Gho0sTx New Member

    Messages:
    13
    Hardware:
    RPi3, +Arduino
    Kannst du mir den Code für den Fast LED Sketch zeigen?
    Denke mal meiner ist so falsch?

     
  2. Arakon

    Arakon Member

    Messages:
    135
    Hardware:
    RPi1/Zero, RPi3, +Arduino
    Code:
     
    
    #include "FastLED.h"
    // How many leds in your strip?
    #define NUM_LEDS 95
    // For led chips like Neopixels, which have a data line, ground, and power, you just
    // need to define DATA_PIN.  For led chipsets that are SPI based (four wires - data, clock,
    // ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN
    #define DATA_PIN 6
    #define CLOCK_PIN 13
    #define COLOR_ORDER GBR
    // Adalight sends a "Magic Word" (defined in /etc/boblight.conf) before sending the pixel data
    uint8_t prefix[] = {'A', 'd', 'a'}, hi, lo, chk, i;
    // Baudrate, higher rate allows faster refresh rate and more LEDs (defined in /etc/boblight.conf)
    #define serialRate 500000
    //#define serialRate 460800
    // Define the array of leds
    CRGB leds[NUM_LEDS];
    void setup() {
          // Uncomment/edit one of the following lines for your leds arrangement.
          // FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);
             FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
          // FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<UCS1903B, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<GW6205, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<GW6205_400, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<SM16716, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<LPD8806, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
             // initial RGB flash
            LEDS.showColor(CRGB(255, 0, 0));
            delay(500);
            LEDS.showColor(CRGB(0, 255, 0));
            delay(500);
            LEDS.showColor(CRGB(0, 0, 255));
            delay(500);
            LEDS.showColor(CRGB(0, 0, 0));
           
            Serial.begin(serialRate);
            Serial.print("Ada\n"); // Send "Magic Word" string to host
    }
    void loop() {
      // wait for first byte of Magic Word
      for(i = 0; i < sizeof prefix; ++i) {
        waitLoop: while (!Serial.available()) ;;
        // Check next byte in Magic Word
        if(prefix[i] == Serial.read()) continue;
        // otherwise, start over
        i = 0;
        goto waitLoop;
      }
       // Hi, Lo, Checksum
      while (!Serial.available()) ;;
      hi=Serial.read();
      while (!Serial.available()) ;;
      lo=Serial.read();
      while (!Serial.available()) ;;
      chk=Serial.read();
      // if checksum does not match go back to wait
      if (chk != (hi ^ lo ^ 0x55))
      {
        i=0;
        goto waitLoop;
      }
      memset(leds, 0, NUM_LEDS * sizeof(struct CRGB));
      // read the transmission data and set LED values
      for (uint8_t i = 0; i < NUM_LEDS; i++) {
        byte r, g, b;   
        while(!Serial.available());
        r = Serial.read();
        while(!Serial.available());
        g = Serial.read();
        while(!Serial.available());
        b = Serial.read();
        leds[i].r = r;
        leds[i].g = g;
        leds[i].b = b;
      }
      // shows new values
    FastLED.show();
        }
    Musst natürlich Data Pin und die LED Zahl anpassen. Den benutz ich so und der klappt für mich. Wenn der Arduino korrekt klappt, sollten die drei Grundfarben am Anfang je einmal aufleuchten.
     
  3. Gho0sTx

    Gho0sTx New Member

    Messages:
    13
    Hardware:
    RPi3, +Arduino
    Danke für deine Hilfe, leider ohne Erfolg
    Werde die nächsten Tage mal die Dupont Kabel wechseln und einen anderen Arduino testen, danke!
     
  4. TPmodding

    TPmodding Administrator Staff Member Administrator

    Messages:
    1,257
    Hardware:
    RPi1/Zero, RPi2, RPi3, +Arduino, +nodeMCU/ESP8266
    • Like Like x 1
  5. DeWe

    DeWe Member

    Messages:
    33
    Hardware:
    RPi3
    Das duerfte der Scetch aus
    https://github.com/hyperion-project...assets/firmware/arduino/adalight/adalight.ino
    sein.

    Welche LED's hast dann eingestellt und wie ist die Verdrahtung?

    Die 2812 sind klar;

    ich gehe einmal davon aus, dass

    Code:
    #define ANALOG_OUTPUT_ENABLED false
    #define ANALOG_MODE           ANALOG_MODE_LAST_LED  // use ANALOG_MODE_AVERAGE or ANALOG_MODE_LAST_LED
    #define ANALOG_GROUND_PIN     8                     // additional ground pin to make wiring a bit easier
    #define ANALOG_RED_PIN        9
    #define ANALOG_GREEN_PIN      10
    #define ANALOG_BLUE_PIN       11
    die Eingaenge (Arduino) vom PI (die LED-Ausgaenge) sind. Nur welche Pin's ?

    Was ich nicht so durchblicke: Was hat es mit "/ use ANALOG_MODE_AVERAGE or ANALOG_MODE_LAST_LED" auf sich?
    Es wird der Datensatz einmal rueckwaerts und einmal vorwaerts aufgebaut, wenn ich das richtig sehe.
     
  6. DeWe

    DeWe Member

    Messages:
    33
    Hardware:
    RPi3
    Korrektur:
    * die Analog Mode Pins sind fuer Analog LED-Stripes und werden erst einmal nicht benoetigt.

    Als Eingang kommt dann wohl der RX Pin 0 (Arduino Nano) vom Arduino zum tragen? Hier duerfte ja wohl eine 2 Draht Verbindung reichen (GND und TX vom Pi zum Arduino GND und RX )
     
  7. Arakon

    Arakon Member

    Messages:
    135
    Hardware:
    RPi1/Zero, RPi3, +Arduino
    Du hängst den Arduino einfach per USB Kabel direkt an den Pi. Das einzige, was ich am Sketch angepasst habe, war der LED Typ und die Rate (500000 baud). Der Arduino kommt dann nur mit dem Signalkabel an die LEDs und am anderen Ende per USB an den Pi.
     
  8. DeWe

    DeWe Member

    Messages:
    33
    Hardware:
    RPi3
    Manchmal hilft es einfach zu machen :)
    Den Arduino mit USB einfach via USB/Kabel am Pi angesclossen ( de Pi versorgt den Arduino mit Spannung).
    Derzeit sind 115,2K eingestellt. Via dmesg den USB Port kontrolliert und bei LED Auswahl ADA Light sowie den richtigen Ausgangsport eingestellt.
    Daten kommen schon einmal beim Arduino an ( RX leuchtet) Nach dem Loeten kann ich mehr sagen ( Widerstand und Diode zw der LED Kette und Arduino am Datenpin) sowie die Stromversorgung anpassen ....
     
    Last edited: 13 April 2019