#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);
// }
// }