Новая лампа.

#define VB_DEB 0        // отключаем антидребезг (он есть у фильтра)
#define VB_CLICK 900    // таймаут клика
#include <VirtualButton.h>
VButton gest;
#define R_PIN 11
#define G_PIN 9
#define B_PIN 10
#include <Adafruit_VL53L0X.h> // Библиотека для работы с VL53L0X
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
#include <EEPROM.h>
#include <GRGB.h>
GRGB led(COMMON_CATHODE, R_PIN, G_PIN, B_PIN);
// struct Data {
//   int data_yr = 50;
//   int data_cv = 50;
//   bool state = 1;     // 0 выкл, 1 вкл
//   byte mode = 0;      // 0 цвет, 1 теплота, 2 огонь
//   byte bright[3] = {30, 30, 30};  // яркость
//   byte value[3] = {0, 0, 0};      // параметр эффекта (цвет...)
// };

//Data data;
void setup() {
    Serial.begin(9600); // Инициализация последовательного монитора
  if (!lox.begin()) { // Проверка подключения VL53L0X
    Serial.println("Не удалось обнаружить VL53L0X. Проверьте подключение!");
    while (1);
  }
   
    //EEPROM.begin(100);   // для esp8266/esp32
int a,b,c;
int dist;
    // объявляем переменные, которые будем писать
    float dataF = 50;
    int16_t dataI = -634;
    byte dataArray[] = {100, 100, 30,50};

    EEPROM.put(0, dataF);
   // EEPROM.put(4, dataI);
    EEPROM.put(6, dataArray);
    //EEPROM.commit();     // для esp8266/esp32

    // объявляем переменные, куда будем читать
    int dataF_read = 0;
    int16_t dataI_read = 0;
    byte dataArray_read[4];

    // читаем точно так же, как писали
    EEPROM.get(0, dataF_read);
    //EEPROM.get(4, dataI_read);
    EEPROM.get(6, dataArray_read);
     int16_t  data_yr = 50;
     float data_cv = 50;
//EEPROM.get(10, data_yr);
EEPROM.get(12, data_cv);
//int8_t  data_yr = 50;
    // проверяем
    Serial.println(dataF_read);
    //Serial.println(dataI_read);
   // EEPROM.put(10, data_yr);
    EEPROM.get(10, data_yr);
  //   Serial.println(dataArray_read[0]);
  //   Serial.println(dataArray_read[1]);
  //   Serial.println(dataArray_read[2]);
  // Serial.println(EEPROM.get(10, data_yr));
  // b=data_yr;
}

void loop() {
   VL53L0X_RangingMeasurementData_t measure;
  lox.rangingTest(&measure, false); // Получение данных о расстоянии
 
  int dist = measure.RangeMilliMeter; // получаем расстояние
//   byte dataArray_read[4];
//   float dataF_read;
//    EEPROM.get(6, dataArray_read);
//    uint8_t br = 255;
//    uint8_t a=dataArray_read[0];
//    uint8_t b=dataArray_read[1];
//    uint8_t c=dataArray_read[2];
// led.setRGB(a, b, c, br) ;

 // led.setWheel8(dist,b);
 applyMode();
  //if (dist>0)
 // Serial.println(a);
 static uint32_t tout;
if (dist>20 && dist<255) {
  int16_t  data_yr;
 data_yr = dist;
 EEPROM.put(10, data_yr);
delay (100);
 //         data.state = !data.state;  // вкл/выкл
  //pulse();
}
// if (gest.hasClicks() && millis() - tout > 2000) {
//       switch (gest.clicks) {
//         case 1:
//           data.state = !data.state;  // вкл/выкл
//           break;
//         case 2:
//           // если включена И меняем режим (0.. 2)
//           if (data.state && ++data.mode >= 3) data.mode = 0;
//           break;
//       }
// }
     // applyMode();
     int data_yr;
     Serial.println(data_yr);
}


     // applyMode();
 

void applyMode(){
      int8_t  data_yr = 50;
     int8_t data_cv = 50;
  //int dist,b;
EEPROM.get(10, data_yr);
EEPROM.get(12, data_cv);
 
   led.setWheel8(data_yr,data_cv);
}
// подмигнуть яркостью
// void pulse(){
//   int a,b,c;
//   for (int i =a; i < a + 45; i += 3) {
//     led.setBrightness(i);
//     delay(10);
//   }
//   for (int i = a + 45; i > a; i -= 3) {
//     led.setBrightness( i);
//     delay(10);
//   }
// }