Kannst du mir den Code für den Fast LED Sketch zeigen?
Denke mal meiner ist so falsch?
[MEDIA=pastebin]gMNzrb9F[/MEDIA]
Kannst du mir den Code für den Fast LED Sketch zeigen?
Denke mal meiner ist so falsch?
[MEDIA=pastebin]gMNzrb9F[/MEDIA]
#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();
}
Alles anzeigen
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.
Danke für deine Hilfe, leider ohne Erfolg
Werde die nächsten Tage mal die Dupont Kabel wechseln und einen anderen Arduino testen, danke!
sketches immer aus diesem ordner nehmen...
https://github.com/hyperion-pr…r/assets/firmware/arduino
die sind getestet und funktionieren...
und immer drauf achten das in der sketch und in hyperion die selbe baudrate ist, sonst reden die aneinander vorbei
kennt man ja ausm echten leben, die freundin redet schneller als der mann zu hören kann
Das duerfte der Scetch aus
https://github.com/hyperion-pr…ino/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
#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.
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 )
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.
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 ....
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!