Выцветание от красного к белому и синему непрерывный цикл на светодиодной ленте ws2812

Я большой новичок, когда дело доходит до написания скетча, и поставил перед собой задачу для предстоящего проекта 4 июля, который остановился.

Я пытаюсь настроить полосу из 30 светодиодов, чтобы она меняла цвет с красного на белый и синий через FastLED на Wemos D1 mini. Я также хотел, чтобы он мигал каждым цветом после того, как 3 цвета поблекнут, и непрерывно повторял их.

Я искал много разных форумов и сумел добиться того, чтобы выцветание сменилось с красного на синий, но ни за любовь, ни за деньги не могу добавить белое между ними.

Может ли кто-нибудь указать мне правильное направление?

void setup(void) {
  ESP.wdtDisable();
  ESP.wdtEnable(WDTO_8S);
  Serial.begin(9600);
  int n = WiFi.scanNetworks();
  Serial.println("");
  if (n == 0)
    Serial.println("no networks found");
  else {
    for(int i=0;i<n;i++) {
      if(WiFi.SSID(i)==ssid1) {
        WiFi.begin(ssid1,password1);
        ssid=ssid1;
      } else if(WiFi.SSID(i)==ssid2) {
        WiFi.begin(ssid2,password2);
        ssid=ssid2;
      } else if(WiFi.SSID(i)==ssid3) {
        WiFi.begin(ssid3,password3);
        ssid=ssid3;
      }
    }
  }
  display.init();
  display.flipScreenVertically();
  display.setFont(ArialMT_Plain_16);
  display.setTextAlignment(TEXT_ALIGN_LEFT);
  display.drawStringMaxWidth(15,15, 128,"Display started");
  display.display();
  // Wait for connection
  display.clear();  
  int j=0;
  while(j<10) {
    display.drawStringMaxWidth(15,15, 128,"connected to");
    display.drawStringMaxWidth(15,32, 128,ssid);
    display.display();
    display.clear();
    delay(1000);
    j++;
  }
  display.drawStringMaxWidth(15,32, 128,"");
  display.display();
  Serial.print("Connected to ");
  display.clear();
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
  if (mdns.begin("esp8266WebForm", WiFi.localIP())) {
    Serial.println("MDNS responder started");
  }
  server.onNotFound(handleNotFound);
  server.begin();
  Serial.print("Connect to http://esp8266WebForm.local or http://");
  Serial.println(WiFi.localIP());
  server.on("/", getvalues);
  pinMode(buzzPin,OUTPUT);
  pinMode(but,INPUT);
}

void loop(void) {
  ESP.wdtFeed();
  if((WiFi.status()== WL_DISCONNECTED)||(WiFi.status()==WL_CONNECTION_LOST)) { 
    display.drawStringMaxWidth(15,15, 128,"disconnected");
    display.display();
    int n = WiFi.scanNetworks();
    Serial.println("");
    if (n == 0)
      Serial.println("no networks found");
    else {
      for(int i=0;i<n;i++) {
        if(WiFi.SSID(i)==ssid1) {
          WiFi.begin(ssid1,password1);
          ssid=ssid1;
        } else if(WiFi.SSID(i)==ssid2) {
          WiFi.begin(ssid2,password2);
          ssid=ssid2;
        } else if(WiFi.SSID(i)==ssid3) {
          WiFi.begin(ssid3,password3);
          ssid=ssid3;
        }
      }
      int j=0;
      display.clear();
      while(j<10) {
        display.drawStringMaxWidth(15,15, 128,"connected to");
        display.drawStringMaxWidth(15,32, 128,ssid);
        display.display();
        display.clear();
        delay(1000);
        j++;
      }
      display.clear();
      display.drawStringMaxWidth(15,32, 128,"");
      display.display();
    }
  }
  getvalues();
  delay(20000);
}

, 👍0

Обсуждение

Если вы исправите орфографию и добавите некоторые знаки препинания, чтобы облегчить чтение, вы можете получить ответ., @Greenonline

Кроме того, опубликуйте, какой у вас код., @Johnny Mopp

Вам удалось сделать так, чтобы он стал белым сам по себе, без выцветания?, @Code Gorilla

Вот скетч, который я получил, и я не уверен, как добавить белый цвет, хотя я могу сделать его белым сам по себе, используя скетч, который я нашел с помощью кода rgb., @Benjini

не знаю, как импортировать скетч в это как новый, но я отредактировал свой вопрос, извините, за изменение шрифта, @Benjini

https://arduino.stackexchange.com/editing-help, @gre_gor

Также проверьте [быстрый пример](https://github.com/FastLED/FastLED/blob/master/examples/ColorPalette/ColorPalette.ino)., @gre_gor

Спасибо за вашу помощь, я должен быть в состоянии разобраться с этим сейчас, gre_gor очень признателен, @Benjini


1 ответ


-1

Думайте о цвете как о точке в 3d определяемой его атрибутами r g b

Подумайте здесь о двух моментах: один-ваш начальный цвет в этом 3d-пространстве, а другой-ваш конечный цвет.

Определите путь, который вы хотите пройти от начального цвета до конечного cokor.

Разрежьте его за несколько шагов и используйте свой код, чтобы пройти по этому пути.

Выполнено

,