Hex-Color-Code zu Variabel

Hallo,
für meine LED-Steuerung über einen Server würde ich gerne einen Farbcode im HEX-Format über eine URL an den Server senden, welcher dann den Wert ausliest und an die LEDs übergibt.
Den großteil des Codes habe ich auch soweit fertig, allerdings funktioniert das mit dem Speichern des Farb-Codes als Variabel leider noch nicht. Ich hoffe jemand kann mir sagen wo der Fehler ist und mir den richtigen Weg zeigen.
Hier der dazugehörige Code:

int n = 12; //Anzahl der LEDs pro "Box"
int c; //Auswahl der Box
unsigned long F;
unsigned long Farbwert = 0xeb4034;

void Farbe()
{
  /***********************Farbwert auslesen**************************/
  String message = "";
  if (server.arg("F") == "")
  { //Parameter not found
    message = "Farbwert nicht gefunden";
  }

  else
  { //Parameter found
    message = "Farbwert = ";
    message += server.arg("F");  //Gets the value of the query parameter

    Farbwert = server.arg("F"); //Farbwert in Speicher

    message += " (";
    message += Farbwert;  //Show if Parameter was read and stored in Var
    message += ")";
  }

  /***********************Box (c-Wert) auslesen**********************/
  if (server.arg("Box") == "")
  { //Parameter not found
    message += " und Box nicht gefunden";
  }

  else
  { //Parameter found
    message += " und Box = ";
    message += server.arg("Box");     //Gets the value of the query parameter
    c = server.arg("Box").toInt();
  }

  server.send(200, "text/plain", message);   //Returns the HTTP response
  for (int i = ((c - 1) * n); i < (c * n); i++)
  {
    leds[i] = Farbwert;
    FastLED.show();
    delay(1);
  }
}

void setup()
{
 server.on("/Farbe", Farbe);
}

Danke und Gruß

Hi

‘Funktioniert nicht’ ist keine sonderlich hilfreiche Fehlerbeschreibung.
Kommt der Hex-Wert an?
String ist - zumindest auf den Kleinen - nicht sonderlich toll - da hier ein Server mit mischt, wird’s wohl ‘was Größeres’ sein.

Wenn ich Deinen Sketch richtig verstehe, sendest Du was in der Richtung:
http://mysteriöserArduino.http/?Box=12&F=3C4F11

Wobei Box eine der LED darstellt?? Also eine Pick-Here-LED?
Nein - werden jedes Mal die 12 LED befehligt - also ein laaanger Stripe, wo die Boxen ‘der Reihe nach nebeneinander stehen’.

Ganz nebenbei: Das .show() reicht völlig, wenn Du ALLE LEDs die neue Farbe zugewiesen hast.
Für eine Animation ist das delay(1) arg kurz (und unnötig).
Also spare Dir das dutzend Mal Farben verschicken, wenn’s doch 1x völlig reicht.

Nun denn - weiter sind wir immer noch nicht - da ‘sollte halt klappen’ Dir genau so hilf, wie und ‘klappt nicht’.

MfG

Du benötigst einen Zahlenwert, das macht sscanf ganz gut:

char arg[] = {"eb4034"};
unsigned long Farbwert;

void setup() {
  Serial.begin(115200);
  Serial.println("Wandlung");
  sscanf (arg, "%lx", &Farbwert);
  Serial.println(Farbwert);
  Farbwert += 10;
  Serial.println(Farbwert);
}

void loop() {}

postmaster-ino:
Hi

'Funktioniert nicht' ist keine sonderlich hilfreiche Fehlerbeschreibung.
Kommt der Hex-Wert an?
String ist - zumindest auf den Kleinen - nicht sonderlich toll - da hier ein Server mit mischt, wird's wohl 'was Größeres' sein.

Wenn ich Deinen Sketch richtig verstehe, sendest Du was in der Richtung:
http://mysteriöserArduino.http/?Box=12&F=3C4F11

Wobei Box eine der LED darstellt?? Also eine Pick-Here-LED?
Nein - werden jedes Mal die 12 LED befehligt - also ein laaanger Stripe, wo die Boxen 'der Reihe nach nebeneinander stehen'.

Ganz nebenbei: Das .show() reicht völlig, wenn Du ALLE LEDs die neue Farbe zugewiesen hast.
Für eine Animation ist das delay(1) arg kurz (und unnötig).
Also spare Dir das dutzend Mal Farben verschicken, wenn's doch 1x völlig reicht.

Nun denn - weiter sind wir immer noch nicht - da 'sollte halt klappen' Dir genau so hilf, wie und 'klappt nicht'.

MfG

Sorry, da habe ich mich wohl etwas schwammig ausgedrückt.
Das Problem ist, dass wenn ich den URL-Befehl an den Server sende, der Farbcode nicht in meiner Variablen Farbwert gespeichert wird, sondern einfach der Wert 0.
Ich suche also nach einer Lösung den von mir gesendeten Farbwert (in meinem Beispiel 0xeb4034) als Variable Farbwert zu speichern und anschließend über die for-Schleife an die LEDs weiter zu geben.

agmue:
Du benötigst einen Zahlenwert, das macht sscanf ganz gut:

Das ist eigentlich übertrieben. strtoul() kann auch HEX konvertieren:

http://www.cplusplus.com/reference/cstdlib/strtoul/

Einfach als Basis 16 übergeben

Serenifly:
Das ist eigentlich übertrieben.

Ja schon, aber dann wirkt es doch viel zu simpel :wink:

Danke für den Hinweis!