часы ws2812 и ds18b20

помогите доработать часы с отрицательной температурой , выводит показание - 0 , 8 * и на этом стоит .

Использование различных блоков часов
Ответить
Denis777
Рядовой
Сообщения: 7
Зарегистрирован: 08.03.2023{, 16:58}
Репутация: 0
Имя: Денис

часы ws2812 и ds18b20

#1

Сообщение Denis777 » 08.03.2023{, 17:07}

СпойлерПоказать

Код: Выделить всё

   #include <Wire.h>                     // Базовая библиотека шины I2C (используется для связи модуля часов реального времени)
#include <iarduino_RTC.h>             // Библиотека часов реального времени 
#include <Adafruit_NeoPixel.h>        // Библиотека для управления адресными светодиодами 
#include <OneWire.h>                  // Бибиотека шины 1-Wire для работы температурных датчиков
#include <DallasTemperature.h>        // Библиотека температурного сенсора DS18B20
#include <EEPROMex.h>                 // Библиотека доступа к энергонезависимой памяти

#define PIN 6                         // управление адресными светодиодами по этому пину
#define ONE_WIRE_BUS 10               // датчик температуры DS18B20 подключен к этому пину
#define TEMPERATURE_PRECISION 12      // точность измерений 9-бит низкая, 12-бит высокая

iarduino_RTC time(RTC_DS3231);        // подключаем RTC модуль на базе чипа DS3231, используется аппаратная шина I2C
Adafruit_NeoPixel strip = Adafruit_NeoPixel(86, PIN, NEO_GRB + NEO_KHZ800); //Подключаем ленту на адресных светодиодах
OneWire oneWire(ONE_WIRE_BUS);        // подключаем шину 1-Wire, для передачи данных с сенсоров температуры
DallasTemperature sensors(&oneWire);  // подключаем температурные сенсоры

byte Mode = 0;                         //режимы:  по умолчанию 0 - отображение времени с заданными настройкамиbyte NumColor = 0;
//----------- переменные настроек, которые так же хранятся в ПЗУ контроллера и считываются при включении устройсва-------------
byte NowBrigtness = 180;              // текущая яркость элементов (начальное значение должно быть кратным 15)
byte ColorMode = 13;                  // текущий цветовой режим (13 режим - цвет меняется каждый час, полный цикл за 12 частов)
byte TempTime = 8;                    // длительность отображения температуры
//------------------------------------------------------
int temp10;                           // перомежуточная переменная температуры (используем множитель 10, что бы использовать тип integer
long int KeyPressed;                  // время в милисекундах, для сравнения с текущими милисекундами (используется для возврата в основной режим)
unsigned long eeprom_timer;           // таймер зашивки в энергонезависимую память параметров настройки часов
byte degree = 25 ;                    // процент яркости разделительных точек (исходя из геометрии яркость разделительных точек нужно уменьшать
boolean eeprom_flag;

void setup() {
 // Serial.begin(9600);                     // подключаем сериал порт для вывода отладочной информации (отключено в целях экономии памяти)
  pinMode(2, INPUT_PULLUP);                 // подключаем кнопку 1 к пину и подтягиваем её к питанию
  pinMode(3, INPUT_PULLUP);                 // подключаем кнопку 2 к пину и подтягиваем её к питанию
  pinMode(4, INPUT_PULLUP);                 // подключаем кнопку 3 к пину и подтягиваем её к питанию
  time.begin();                             // запускаем часы реального времени
  sensors.begin();                          // запускаем сенсоры температуры
  strip.begin();                            // запускаем адресные светодиоды
  strip.setBrightness(NowBrigtness);        // устанавливаем яркость светодиодной ленты
  strip.show();
  //KeyPressed = millis();
  // освещаем ленту (по умолчанию нули-ничего не светится)
  // Отладочный способ установки времени через скетч
  //time.settime(0,02,18,31,10,19,4);        // _ сек, _ мин, _ час, _ день месяца, _ месяц, _ год, день недели 0-вск 6-суб
 // updateEEPROM;                           // при первой прошивке раскоментировать для записи настроек в ПЗУ контроллера
  readEEPROM();                             // чтениt настроек из ПЗУ контроллера
}



void loop() {
BrightnessCheck(); //фоторезистор функция настройки яркости в соответствии с освещенностью


    //if(millis()%1000==0){ // если прошла 1 секунда
    //Serial.println(time.gettime("d-m-Y, H:i:s, D")); // выводим время
    //delay(1); // приостанавливаем на 1 мс, чтоб не выводить время несколько раз за 1мс
  //   }
  if ((millis() - KeyPressed) > 10000) Mode = 0;  //если спустя 10 секунды кнопок не нажималось часы переходят в нормальный режим
  int key = get_key();                            // опрашиваем нажатие кнопки
  if (key)  {
    delay(330);                                   // после нажатия на любую кнопку делаем небольшую паузу, что бы успеть отпустить кнопку
    KeyPressed = millis();   // сбрасываем таймер последнего нажатия кнопки (для того что бы спустя 3 сек часы перешли в режим 0)
    eeprom_flag = true;
  }
  if (key == 2)   {                               // если нажата кнопка 2, то гоняем меню по кругу (выбора режима цвета, яркость, установка времени и даты
    if (Mode == 9) Mode = 0; else Mode++;
  }
  switch ( Mode ) {
    case 0: {                                     //---------------------- Нормальный режим "0": отображение времени и температуры ----------------------
        setcolor (ColorMode);                     // задаём цвет всех элементов в зависимости от цветового режима
        time.gettime();                           // запрашиваем у модуля реального времени теущее время
        if (( time.seconds) == ( 30 - TempTime)) {                          // раз в минуту проверяем наличие датчика
            sensors.requestTemperatures();                  // Отправляем запрос на значение температуры
          temp10 = 10 * sensors.getTempCByIndex(0);
        }
        if ((( time.seconds) <= 60 - TempTime) or (temp10<-500))   { // отображаем время в том числе если датчик не подключен
          digitout (0, time.Hours / 10 );         // отрисовываем цифры (выставляем черные точки)
          digitout (21, time.Hours % 10 );         // отрисовываем цифры (выставляем черные точки)
          digitout (44, time.minutes / 10 );      // отрисовываем цифры (выставляем черные точки)
          digitout (65, time.minutes % 10 );      // отрисовываем цифры (выставляем черные точки)
          if (( time.seconds) % 2 == 0)  {        // по четным секундам разделительные точки не светятся (можно сделать затухание)
            strip.setPixelColor(42, 0, 0, 0); strip.setPixelColor(43, 0, 0, 0);
          }
        }
 //ТЕМПЕРАТУРА 


       
        if ((key == 1) || (key == 3) || ((( time.seconds) > 60 - TempTime) and (temp10>-500)))   {                           // если нажали кнопку "1" или пришло время отображать температуру и датчик подключен
          sensors.requestTemperatures();                  // Отправляем запрос на значение температуры
          temp10 = 10 * sensors.getTempCByIndex(0);      //подстройка температуры 10
          for (int i = 0; i < 86; i++) {
          strip.setPixelColor(i, WheelRGB((40 - temp10 / 10) * 255 / 60 & 255));                      // цвет  зависит от температуры датчика
        // if (i == 42 or i == 43)  strip.setPixelColor(i, WheelRBG((40 - temp10 / 10) * 255 / 60 & 255)); // для разделительных точек применяем модифицированное цветовое колесо
          }
          if (temp10 < -500) {            // если датчик отключен, то выводим "---с"
            digitout (0, 13 );            // отрисовываем "-" (выставляем черные точки)
            digitout (21, 13 );            // отрисовываем "-" (выставляем черные точки)
            digitout (44, 13 );           // отрисовываем "-" (выставляем черные точки)
             strip.setPixelColor(18, (0, 0, 0));   // знак "_" не рисуем  
             strip.setPixelColor(19, (0, 0, 0));
             strip.setPixelColor(20, (0, 0, 0));
          }
          else
          {
            digitout (21, temp10 / 100 );            // отрисовываем цифры (выставляем черные точки) десятки градуса
            digitout (44, ((temp10) % 100) / 10 );   // отрисовываем цифры (выставляем черные точки) единицы градуса
          //  digitout (44, (temp10) % 10 );          // отрисовываем цифры (выставляем черные точки) десятые доли градуса
          }
          strip.setPixelColor(42, 0, 0, 0);       // затеняем верхнюю точку
         strip.setPixelColor(43, 0, 0, 0);       // затеняем нижнюю точку
          digitout (65, 11 );                     //симвод градуса Цельсия
         digitout (0, 13 );                     //симвод "-" в первом семисегментном индикаторе               --------------------
            if (temp10 >= 0) {            // если температура выше нуля, то знак "-" не отображаем
            strip.setPixelColor(18, (0, 0, 0));
            strip.setPixelColor(19, (0, 0, 0));   // знак "-" в первом семисегментном индикаторе убираем при плюсовой температуре 
            strip.setPixelColor(20, (0, 0, 0));
          
          }
        

        // if (key == 3)   {
        // - зарезервированно либо для вывода даты, либо для вывода температуры с второго датчика
         // }
        }
        strip.show(); //освещаем режим 0
        break;
      }                                           //---------------------- конец отработки условия нормального режима "0" ------------------
    case 1: {                                     //  Если режим "1" - установка цветовой схемы
        if (key == 1)   {                                                                   //Установка цвета
          if (ColorMode == 0) ColorMode = 26; else ColorMode--;
        }
        if (key == 3)   { //Гоняем цвет по кругу
          if (ColorMode == 26) ColorMode = 0; else ColorMode++;
        }
        setcolor (ColorMode);                     // задаём цвет всех элементов в зависимости от цветового режима
        // - отображаем на экране номер цветового режима
        digitout (0, 12 );                        // отрисовываем цифры (выставляем черные точки)
        digitout (21, 13);                         // отрисовываем цифры (выставляем черные точки)
        digitout (44, ColorMode / 10 );           // отрисовываем цифры (выставляем черные точки)
        digitout (65, ColorMode % 10);            // отрисовываем цифры (выставляем черные точки)
        strip.setPixelColor(42, 0, 0, 0); strip.setPixelColor(43, 0, 0, 0);
        strip.show(); //освещаем режим
        break;
      }
    case 2: {                               //  Если режим "2" - установка яркости
        if (key == 1)   {
          NowBrigtness = NowBrigtness - 15;  //меняем яркость от 0 до 255 с шагом 5
        }
        if (key == 3)   {
          NowBrigtness = NowBrigtness + 15;
        }
        setcolor (ColorMode);                     // задаём цвет всех элементов в зависимости от цветового режима
        if (NowBrigtness == 0)strip.setBrightness(1); 
        else strip.setBrightness(NowBrigtness); ;      // устанавливаем яркость светодиодной ленты
        // - отображаем на экране величину яркости
        digitout (0, 14 );                        // отрисовываем цифры (выставляем черные точки)
        digitout (21, 13);                         // отрисовываем цифры (выставляем черные точки)
        digitout (44, (NowBrigtness / 15) / 10 );         // отрисовываем цифры (выставляем черные точки)
        digitout (65, (NowBrigtness / 15) % 10);          // отрисовываем цифры (выставляем черные точки)
        strip.setPixelColor(42, 0, 0, 0); strip.setPixelColor(43, 0, 0, 0);
        strip.show(); //освещаем режим
        break;
      }
    case 3: {                               // Если режим "3"   - Установка времени отображения температуры

        if (key == 1)   { // Устанавливаем время показа температуры на -1 сек
          if (TempTime == 0) TempTime = 60; else TempTime = TempTime - 1 ;
        }
        if (key == 3)   { //Устанавливаем время показа температуры на +1 сек
          if (TempTime == 60) TempTime = 0; else TempTime = TempTime + 1;
        }
        setcolor (ColorMode);                     // задаём цвет всех элементов в зависимости от цветового режима
        digitout (0, 17);                      // отрисовываем цифры (выставляем черные точки)
        digitout (21, 17);                       // отрисовываем цифры (выставляем черные точки)
        digitout (44, TempTime / 10);       // отрисовываем цифры (выставляем черные точки)
        digitout (65, TempTime % 10);        // отрисовываем цифры (выставляем черные точки)
        strip.setPixelColor(42, 0, 0, 0); strip.setPixelColor(43, 0, 0, 0);
        strip.show(); //освещаем режим
        break;
      }
    case 4: {                               // Если режим "4" - установка времени (час)
        if (key == 1)   { //уменьшаем часы
          if ((time.Hours) == 0) time.settime(-1, -1, 23); else time.settime(-1, -1, (time.Hours) - 1); //установит времени (час)
        }
        if (key == 3)   { //увеличиваем часы
          if ((time.Hours) == 23) time.settime(-1, -1, 0); else time.settime(-1, -1, (time.Hours) + 1); //установит времени (час)
        }
        // задаём цвет всех элементов в зависимости от цветового режима
        time.gettime();                           // запрашиваем у модуля реального времени теущее время
        setcolor (ColorMode);                       // задаём цвет всех элементов в зависимости от цветового режима
        //       for (int i = 0; i < 14; i++) {               // задаём цвет часов серым
        //     strip.setPixelColor(i, 127, 127, 127);
        //     }
        if (( millis() % 1000 > 500))  {
          digitout (0, 15 );         // отрисовываем цифры (выставляем черные точки)
          digitout (21, 15 );         // отрисовываем цифры (выставляем черные точки)
        } else
        {
          digitout (0, time.Hours / 10 );      // отрисовываем цифры (выставляем черные точки)
          digitout (21, time.Hours % 10 );      // отрисовываем цифры (выставляем черные точки)
        }
        digitout (44, time.minutes / 10 );      // отрисовываем цифры (выставляем черные точки)
        digitout (65, time.minutes % 10 );      // отрисовываем цифры (выставляем черные точки)
        //  if (( time.seconds) % 2 == 0)  {        // по четным секундам разделительные точки не светятся (можно сделать затухание)
        //  strip.setPixelColor(14, 0, 0, 0); strip.setPixelColor(15, 0, 0, 0);
        // }
        strip.show(); //освещаем режим
        break;
      }
    case 5: {                               // Если режим "5" - установка времени (мин). При изменении минут секунды обнуляются
        if (key == 1)   { //уменьшаем минуты
          if ((time.minutes) == 0) time.settime(0, 59); else time.settime(0, (time.minutes) - 1); //установит времени (мин)
        }
        if (key == 3)   { //увеличиваем минуты
          if ((time.minutes) == 59) time.settime(0, 0); else time.settime(0, (time.minutes) + 1); //установит времени (мин)
        }
        // задаём цвет всех элементов в зависимости от цветового режима
        time.gettime();                           // запрашиваем у модуля реального времени теущее время

        setcolor (ColorMode);                     // задаём цвет всех элементов в зависимости от цветового режима
        //     for (int i = 16; i < 30; i++) {               // задаём цвет минут серым
        //      strip.setPixelColor(i, 127, 127, 127);
        //   }

        if (( millis() % 1000 > 500))  {
          digitout (44, 15 );         // отрисовываем цифры (выставляем черные точки)
          digitout (65, 15 );         // отрисовываем цифры (выставляем черные точки)
        } else
        {
          digitout (44, time.minutes / 10 );      // отрисовываем цифры (выставляем черные точки)
          digitout (65, time.minutes % 10 );      // отрисовываем цифры (выставляем черные точки)
        }
        digitout (0, time.Hours / 10 );      // отрисовываем цифры (выставляем черные точки)
        digitout (21, time.Hours % 10 );      // отрисовываем цифры (выставляем черные точки)

        //  if (( time.seconds) % 2 == 0)  {        // по четным секундам разделительные точки не светятся (можно сделать затухание)
        //  strip.setPixelColor(14, 0, 0, 0); strip.setPixelColor(15, 0, 0, 0);
        // }
        strip.show(); //освещаем режим
        break;
      }
    case 6: {                               // Если режим "6" - Установка дня
        if (key == 1)   { //уменьшаем времени (мин)
          if ((time.day) == 1) time.settime(-1, -1, -1, 31); else time.settime(-1, -1, -1, (time.day) - 1); //установит дата)
        }
        if (key == 3)   { //увеличиваем часы

          if ((time.day) == 31) time.settime(-1, -1, -1, 1); else time.settime(-1, -1, -1, (time.day) + 1); //установит дата
        }
        // задаём цвет всех элементов в зависимости от цветового режима
        time.gettime();                           // запрашиваем у модуля реального времени теущее время
        setcolor (ColorMode);                       // задаём цвет всех элементов в зависимости от цветового режима
        //     for (int i = 0; i < 14; i++) {               // задаём цвет часов серым
        //       strip.setPixelColor(i, 127, 127, 127);
        //     }
        if (( millis() % 1000 > 500))  {
          digitout (0, 15 );         // отрисовываем цифры (выставляем черные точки)
          digitout (21, 15 );         // отрисовываем цифры (выставляем черные точки)
        } else
        {
          digitout (0, time.day / 10 );      // отрисовываем цифры (выставляем черные точки)
          digitout (21, time.day % 10 );      // отрисовываем цифры (выставляем черные точки)
        }
        digitout (44, time.month / 10 );      // отрисовываем цифры (выставляем черные точки)
        digitout (65, time.month % 10 );      // отрисовываем цифры (выставляем черные точки)
        strip.setPixelColor(42, 0, 0, 0);     // Оставляем светиться нижнюю точку - разделитель дня и месяца
        strip.show(); //освещаем режим


        break;
      }
    case 7: {                               // Если режим "7" - Установка месяца
        if (key == 1)   { //уменьшаем времени (мин)
          if ((time.month) == 1) time.settime(-1, -1, -1, -1, 12); else time.settime(-1, -1, -1, -1, (time.month) - 1); //установит дата)
        }
        if (key == 3)   { //увеличиваем часы

          if ((time.month) == 12) time.settime(-1, -1, -1, -1, 1); else time.settime(-1, -1, -1, -1, (time.month) + 1); //установит дата)
        }
        // задаём цвет всех элементов в зависимости от цветового режима
        time.gettime();                           // запрашиваем у модуля реального времени теущее время

        setcolor (ColorMode);                     // задаём цвет всех элементов в зависимости от цветового режима
        //       for (int i = 16; i < 30; i++) {               // задаём цвет минут серым
        //       strip.setPixelColor(i, 127, 127, 127);
        //     }

        if (( millis() % 1000 > 500))  {
          digitout (44, 15 );         // отрисовываем цифры (выставляем черные точки)
          digitout (65, 15 );         // отрисовываем цифры (выставляем черные точки)
        } else
        {
          digitout (44, time.month / 10 );      // отрисовываем цифры (выставляем черные точки)
          digitout (65, time.month % 10 );      // отрисовываем цифры (выставляем черные точки)
        }
        digitout (0, time.day / 10 );      // отрисовываем цифры (выставляем черные точки)
        digitout (21, time.day % 10 );      // отрисовываем цифры (выставляем черные точки)
        strip.setPixelColor(42, 0, 0, 0);     // Оставляем светиться нижнюю точку - разделитель дня и месяца
        strip.show(); //освещаем режим
        break;
      }
    case 8: {                               // Если режим "8"-установка года
        if (key == 1)   { //уменьшаем год
          time.settime(-1, -1, -1, -1, -1, (time.year) - 1); //установит дата)
        }
        if (key == 3)   { //увеличиваем год
          time.settime(-1, -1, -1, -1, -1, (time.year) + 1); //установит дата)
        }
        setcolor (ColorMode);                     // задаём цвет всех элементов в зависимости от цветового режима

        //      for (int i = 0; i < 30; i++) {               // задаём цвет минут серым
        //        strip.setPixelColor(i, 127, 127, 127);
        //     }
        if (( millis() % 1000 > 500))
        {
          digitout (0, 15 );         // отрисовываем цифры (выставляем черные точки)
          digitout (21, 15 );
          digitout (44, 15 );         // отрисовываем цифры (выставляем черные точки)
          digitout (65, 15 );         // отрисовываем цифры (выставляем черные точки)
        } else
        {
          digitout (0, 2);                      // отрисовываем цифры (выставляем черные точки)
          digitout (21, 0);                       // отрисовываем цифры (выставляем черные точки)
          digitout (44, (time.year) / 10 );           // отрисовываем цифры (выставляем черные точки)
          digitout (65, (time.year) % 10);           // отрисовываем цифры (выставляем черные точки)
        }
        strip.setPixelColor(42, 0, 0, 0); strip.setPixelColor(43, 0, 0, 0);
        strip.show(); //освещаем режим
        break;
      }
    case 9: {                               // Если режим "9"   - Установка дня недели

        if (key == 1)   { //уменьшаем времени (мин)
          if ((time.weekday) == 0) time.settime(-1, -1, -1, -1, -1, 1 - 1, 6); else time.settime(-1, -1, -1, -1, -1, -1, (time.weekday) - 1); //установит дата)
        }
        if (key == 3)   { //увеличиваем часы

          if ((time.weekday) == 6) time.settime(-1, -1, -1, -1, -1, 1 - 1, 0); else time.settime(-1, -1, -1, -1, -1, -1, (time.weekday) + 1); //установит дата)
        }

        setcolor (ColorMode);                     // задаём цвет всех элементов в зависимости от цветового режима

        //      for (int i = 0; i < 86; i++) {               // задаём цвет минут серым
        //        strip.setPixelColor(i, 127, 127, 127);
        //     }
        if (( millis() % 1000 > 500))
        {
          digitout (65, 15 );         // отрисовываем цифры (выставляем черные точки)
        } else
        {
          digitout (65, (time.weekday));           // отрисовываем цифры (выставляем черные точки)
        }
        digitout (0, 16 );         // отрисовываем цифры (выставляем черные точки)
        digitout (21, 15 );
        digitout (44, 15);          // отрисовываем цифры (выставляем черные точки)
        strip.setPixelColor(42, 0, 0, 0); strip.setPixelColor(43, 0, 0, 0);
        strip.show(); //освещаем режим

        break;
      }
  }                                         // Конец обработки всех режимов
  eepromTick();                             // проверка не пора ли сохранить настройки
}                                           // Конец основного цикла



  /* Проверьте датчик освещенности (фоторезистр)и установите яркость соответственно */
void BrightnessCheck(){ // функция настройки яркости в соответствии с освещенностью
  const byte sensorPin = A0; // пин датчика освещенности
  const byte brightnessLow = 5; // низкий уровень яркости
  const byte brightnessHigh = 250; // высокий уровень яркости
  int sensorValue = digitalRead(sensorPin); // запрос с датчика
  if (sensorValue == 0) {strip.setBrightness(brightnessLow);}
  else {strip.setBrightness(brightnessHigh);}  
  };
  
void setcolor (byte ColorMode) {            // процедура, которая задаёт цвет всех элементов в зависимости от указанного цветового режима
  uint16_t i;
  if (ColorMode < 24) {                     //12 цветов по цветовому колесу
    for (i = 0; i < 86; i++) {
      strip.setPixelColor(i, WheelRGB((ColorMode * 255 / 24) & 255));
      if (i == 42 or i == 43)  strip.setPixelColor(i, WheelRBG((ColorMode * 256 / 24) & 255)); // для разделительных точек применяем модифицированное цветовое колесо
    }
  }
  if (ColorMode == 24) {                    // цвет -белый
    for (i = 0; i < 86; i++) {
      strip.setPixelColor(i, 255, 255, 255);
    }
  }

  if (ColorMode == 25) {                    // цветовой режим -радуга с периодом 12 часов
    time.gettime();
    for (i = 0; i < 86; i++) {
      strip.setPixelColor(i, WheelRGB((time.hours) * 255 / 12 & 255));                        // в этом режиме часы меняются от 1-12
      if (i == 42 or i == 43)  strip.setPixelColor(i, WheelRBG((time.hours) * 255 / 12 & 255)); // для разделительных точек применяем модифицированное цветовое колесо
    }
  }
    if (ColorMode == 26) {                    // цветовой режим -радуга с периодом 24 часа
    time.gettime();
    for (i = 0; i < 86; i++) {
      strip.setPixelColor(i, WheelRGB((time.hours) * 255 / 24 & 255));                        // в этом режиме часы меняются от 1-12
      if (i == 42 or i == 43)  strip.setPixelColor(i, WheelRBG((time.hours) * 255 / 24 & 255)); // для разделительных точек применяем модифицированное цветовое колесо
    }
  }

}           //- конец процедуры установки цвета



int get_key()   //Вывод нажатой клавиши
{
  if (digitalRead(2) == 0) return 1;
  if (digitalRead(3) == 0) return 2;
  if (digitalRead(4) == 0) return 3;
  return 0;
}

void tempout() {  //процедура отображения температуры

}

// Отображение цифр
void digitout(int digitposition, int digit) {
  switch ( digit) {
    case 1: {
        strip.setPixelColor(digitposition + 0, (0, 0, 0));
        strip.setPixelColor(digitposition+1, (0, 0, 0));
        strip.setPixelColor(digitposition+2, (0, 0, 0));
        //strip.setPixelColor(digitposition + 3, (0, 0, 0));
        //strip.setPixelColor(digitposition + 4, (0, 0, 0));
        //strip.setPixelColor(digitposition + 5, (0, 0, 0));
        //strip.setPixelColor(digitposition + 6, (0, 0, 0));
        //strip.setPixelColor(digitposition + 7, (0, 0, 0));
        //strip.setPixelColor(digitposition + 8, (0, 0, 0));
        strip.setPixelColor(digitposition + 9, (0, 0, 0));
        strip.setPixelColor(digitposition + 10, (0, 0, 0));
        strip.setPixelColor(digitposition + 11, (0, 0, 0));
        strip.setPixelColor(digitposition + 12, (0, 0, 0));
        strip.setPixelColor(digitposition + 13, (0, 0, 0));
        strip.setPixelColor(digitposition + 14, (0, 0, 0));
        strip.setPixelColor(digitposition + 15, (0, 0, 0));
        strip.setPixelColor(digitposition + 16, (0, 0, 0));
        strip.setPixelColor(digitposition + 17, (0, 0, 0));
        strip.setPixelColor(digitposition + 18, (0, 0, 0));
        strip.setPixelColor(digitposition + 19, (0, 0, 0));
        strip.setPixelColor(digitposition + 20, (0, 0, 0));
        break;
      }
    case 2: {
        //strip.setPixelColor(digitposition+0, (0, 0, 0));
        //strip.setPixelColor(digitposition+1, (0, 0, 0));
        //strip.setPixelColor(digitposition + 2, (0, 0, 0));
        //strip.setPixelColor(digitposition+3, (0, 0, 0));
        //strip.setPixelColor(digitposition+4, (0, 0, 0));
        //strip.setPixelColor(digitposition + 5, (0, 0, 0));
        strip.setPixelColor(digitposition+6, (0, 0, 0));
        strip.setPixelColor(digitposition + 7, (0, 0, 0));
        strip.setPixelColor(digitposition + 8, (0, 0, 0));
        //strip.setPixelColor(digitposition + 9, (0, 0, 0));
        //strip.setPixelColor(digitposition + 10, (0, 0, 0));
        //strip.setPixelColor(digitposition + 11, (0, 0, 0));
        //strip.setPixelColor(digitposition + 12, (0, 0, 0));
        //strip.setPixelColor(digitposition + 13, (0, 0, 0));
        //strip.setPixelColor(digitposition + 14, (0, 0, 0));
        strip.setPixelColor(digitposition + 15, (0, 0, 0));
        strip.setPixelColor(digitposition + 16, (0, 0, 0));
        strip.setPixelColor(digitposition + 17, (0, 0, 0));
        //strip.setPixelColor(digitposition + 18, (0, 0, 0));
        //strip.setPixelColor(digitposition + 19, (0, 0, 0));
        //strip.setPixelColor(digitposition + 20, (0, 0, 0));
        break;
      }
    case 3: {
        //strip.setPixelColor(digitposition+0, (0, 0, 0));
        //strip.setPixelColor(digitposition+1, (0, 0, 0));
        //strip.setPixelColor(digitposition+2, (0, 0, 0));
        //strip.setPixelColor(digitposition+3, (0, 0, 0));
        //strip.setPixelColor(digitposition + 4, (0, 0, 0));
        //strip.setPixelColor(digitposition + 5, (0, 0, 0));
        //strip.setPixelColor(digitposition+6, (0, 0, 0));
        //strip.setPixelColor(digitposition + 7, (0, 0, 0));
        //strip.setPixelColor(digitposition + 8, (0, 0, 0));
        //strip.setPixelColor(digitposition + 9, (0, 0, 0));
        //strip.setPixelColor(digitposition + 10, (0, 0, 0));
        //strip.setPixelColor(digitposition + 11, (0, 0, 0));
        strip.setPixelColor(digitposition + 12, (0, 0, 0));
        strip.setPixelColor(digitposition + 13, (0, 0, 0));
        strip.setPixelColor(digitposition + 14, (0, 0, 0));
        strip.setPixelColor(digitposition + 15, (0, 0, 0));
        strip.setPixelColor(digitposition + 16, (0, 0, 0));
        strip.setPixelColor(digitposition + 17, (0, 0, 0));
        //strip.setPixelColor(digitposition + 18, (0, 0, 0));
        //strip.setPixelColor(digitposition + 19, (0, 0, 0));
        //strip.setPixelColor(digitposition + 20, (0, 0, 0));
       break;
      }
    case 4: {
        strip.setPixelColor(digitposition + 0, (0, 0, 0));
        strip.setPixelColor(digitposition+1, (0, 0, 0));
        strip.setPixelColor(digitposition+2, (0, 0, 0));
        //strip.setPixelColor(digitposition + 3, (0, 0, 0));
        //strip.setPixelColor(digitposition + 4, (0, 0, 0));
        //strip.setPixelColor(digitposition+5, (0, 0, 0));
        //strip.setPixelColor(digitposition+6, (0, 0, 0));;
        //strip.setPixelColor(digitposition + 7, (0, 0, 0));
        //strip.setPixelColor(digitposition + 8, (0, 0, 0));
        strip.setPixelColor(digitposition + 9, (0, 0, 0));
        strip.setPixelColor(digitposition + 10, (0, 0, 0));
        strip.setPixelColor(digitposition + 11, (0, 0, 0));
        strip.setPixelColor(digitposition + 12, (0, 0, 0));
        strip.setPixelColor(digitposition + 13, (0, 0, 0));
        strip.setPixelColor(digitposition + 14, (0, 0, 0));
        //strip.setPixelColor(digitposition + 15, (0, 0, 0));
        //strip.setPixelColor(digitposition + 16, (0, 0, 0));
        //strip.setPixelColor(digitposition + 17, (0, 0, 0));
        //strip.setPixelColor(digitposition + 18, (0, 0, 0));
        //strip.setPixelColor(digitposition + 19, (0, 0, 0));
        //strip.setPixelColor(digitposition + 20, (0, 0, 0));
        break;
      }
    case 5: {
        //strip.setPixelColor(digitposition+0, (0, 0, 0));
        //strip.setPixelColor(digitposition + 1, (0, 0, 0));
        //strip.setPixelColor(digitposition+2, (0, 0, 0));
        strip.setPixelColor(digitposition+3, (0, 0, 0));
        strip.setPixelColor(digitposition + 4, (0, 0, 0));
        strip.setPixelColor(digitposition+5, (0, 0, 0));
        //strip.setPixelColor(digitposition+6, (0, 0, 0));
        //strip.setPixelColor(digitposition + 7, (0, 0, 0));
        //strip.setPixelColor(digitposition + 8, (0, 0, 0));
        //strip.setPixelColor(digitposition + 9, (0, 0, 0));
        //strip.setPixelColor(digitposition + 10, (0, 0, 0));
        //strip.setPixelColor(digitposition + 11, (0, 0, 0));
        strip.setPixelColor(digitposition + 12, (0, 0, 0));
        strip.setPixelColor(digitposition + 13, (0, 0, 0));
        strip.setPixelColor(digitposition + 14, (0, 0, 0));
        //strip.setPixelColor(digitposition + 15, (0, 0, 0));
        //strip.setPixelColor(digitposition + 16, (0, 0, 0));
        //strip.setPixelColor(digitposition + 17, (0, 0, 0));
        //strip.setPixelColor(digitposition + 18, (0, 0, 0));
        //strip.setPixelColor(digitposition + 19, (0, 0, 0));
        //strip.setPixelColor(digitposition + 20, (0, 0, 0));
        break;
      }

    case 6: {
        //strip.setPixelColor(digitposition+0, (0, 0, 0));
        //strip.setPixelColor(digitposition + 1, (0, 0, 0));
        //strip.setPixelColor(digitposition+2, (0, 0, 0));
        strip.setPixelColor(digitposition+3, (0, 0, 0));
        strip.setPixelColor(digitposition+4, (0, 0, 0));
        strip.setPixelColor(digitposition+5, (0, 0, 0));
        //strip.setPixelColor(digitposition+6, (0, 0, 0));
        //strip.setPixelColor(digitposition + 7, (0, 0, 0));
        //strip.setPixelColor(digitposition + 8, (0, 0, 0));
        //strip.setPixelColor(digitposition + 9, (0, 0, 0));
        //strip.setPixelColor(digitposition + 10, (0, 0, 0));
        //strip.setPixelColor(digitposition + 11, (0, 0, 0));
        //strip.setPixelColor(digitposition + 12, (0, 0, 0));
        //strip.setPixelColor(digitposition + 13, (0, 0, 0));
        //strip.setPixelColor(digitposition + 14, (0, 0, 0));
        //strip.setPixelColor(digitposition + 15, (0, 0, 0));
        //strip.setPixelColor(digitposition + 16, (0, 0, 0));
        //strip.setPixelColor(digitposition + 17, (0, 0, 0));
        //strip.setPixelColor(digitposition + 18, (0, 0, 0));
        //strip.setPixelColor(digitposition + 19, (0, 0, 0));
        //strip.setPixelColor(digitposition + 20, (0, 0, 0));
        break;
      }
    case 7: {
        //strip.setPixelColor(digitposition+0, (0, 0, 0));
        //strip.setPixelColor(digitposition+1, (0, 0, 0));
        //strip.setPixelColor(digitposition+2, (0, 0, 0));
        //strip.setPixelColor(digitposition + 3, (0, 0, 0));
        //strip.setPixelColor(digitposition + 4, (0, 0, 0));
        //strip.setPixelColor(digitposition + 5, (0, 0, 0));
        //strip.setPixelColor(digitposition + 6, (0, 0, 0));
        //strip.setPixelColor(digitposition + 7, (0, 0, 0));
        //strip.setPixelColor(digitposition + 8, (0, 0, 0));
        strip.setPixelColor(digitposition + 9, (0, 0, 0));
        strip.setPixelColor(digitposition + 10, (0, 0, 0));
        strip.setPixelColor(digitposition + 11, (0, 0, 0));
        strip.setPixelColor(digitposition + 12, (0, 0, 0));
        strip.setPixelColor(digitposition + 13, (0, 0, 0));
        strip.setPixelColor(digitposition + 14, (0, 0, 0));
        strip.setPixelColor(digitposition + 15, (0, 0, 0));
        strip.setPixelColor(digitposition + 16, (0, 0, 0));
        strip.setPixelColor(digitposition + 17, (0, 0, 0));
        strip.setPixelColor(digitposition + 18, (0, 0, 0));
        strip.setPixelColor(digitposition + 19, (0, 0, 0));
        strip.setPixelColor(digitposition + 20, (0, 0, 0));
        break;
      }
    case 8: {
        //strip.setPixelColor(digitposition+0, (0, 0, 0));
        //strip.setPixelColor(digitposition+1, (0, 0, 0));
        //strip.setPixelColor(digitposition+2, (0, 0, 0));
        //strip.setPixelColor(digitposition+3, (0, 0, 0));
        //strip.setPixelColor(digitposition+4, (0, 0, 0));
        //strip.setPixelColor(digitposition+5, (0, 0, 0));
        //strip.setPixelColor(digitposition+6, (0, 0, 0));
        //strip.setPixelColor(digitposition + 7, (0, 0, 0));
        //strip.setPixelColor(digitposition + 8, (0, 0, 0));
        //strip.setPixelColor(digitposition + 9, (0, 0, 0));
        //strip.setPixelColor(digitposition + 10, (0, 0, 0));
        //strip.setPixelColor(digitposition + 11, (0, 0, 0));
        //strip.setPixelColor(digitposition + 12, (0, 0, 0));
        //strip.setPixelColor(digitposition + 13, (0, 0, 0));
        //strip.setPixelColor(digitposition + 14, (0, 0, 0));
        //strip.setPixelColor(digitposition + 15, (0, 0, 0));
        //strip.setPixelColor(digitposition + 16, (0, 0, 0));
        //strip.setPixelColor(digitposition + 17, (0, 0, 0));
        //strip.setPixelColor(digitposition + 18, (0, 0, 0));
        //strip.setPixelColor(digitposition + 19, (0, 0, 0));
        //strip.setPixelColor(digitposition + 20, (0, 0, 0));
        break;
      }
    case 9: {
        //strip.setPixelColor(digitposition+0, (0, 0, 0));
        //strip.setPixelColor(digitposition+1, (0, 0, 0));
        //strip.setPixelColor(digitposition+2, (0, 0, 0));
        //strip.setPixelColor(digitposition+3, (0, 0, 0));
        //strip.setPixelColor(digitposition+4, (0, 0, 0));
        //strip.setPixelColor(digitposition+5, (0, 0, 0));
        //strip.setPixelColor(digitposition+6, (0, 0, 0));
        //strip.setPixelColor(digitposition + 7, (0, 0, 0));
        //strip.setPixelColor(digitposition + 8, (0, 0, 0));
        //strip.setPixelColor(digitposition + 9, (0, 0, 0));
        //strip.setPixelColor(digitposition + 10, (0, 0, 0));
        //strip.setPixelColor(digitposition + 11, (0, 0, 0));
        strip.setPixelColor(digitposition + 12, (0, 0, 0));
        strip.setPixelColor(digitposition + 13, (0, 0, 0));
        strip.setPixelColor(digitposition + 14, (0, 0, 0));
        //strip.setPixelColor(digitposition + 15, (0, 0, 0));
        //strip.setPixelColor(digitposition + 16, (0, 0, 0));
        //strip.setPixelColor(digitposition + 17, (0, 0, 0));
        //strip.setPixelColor(digitposition + 18, (0, 0, 0));
        //strip.setPixelColor(digitposition + 19, (0, 0, 0));
        //strip.setPixelColor(digitposition + 20, (0, 0, 0));
        break;
      }
    case 0: {
        //strip.setPixelColor(digitposition+0, (0, 0, 0));
        //strip.setPixelColor(digitposition+1, (0, 0, 0));
        //strip.setPixelColor(digitposition+2, (0, 0, 0));
        //strip.setPixelColor(digitposition+3, (0, 0, 0));
        //strip.setPixelColor(digitposition+4, (0, 0, 0));
        //strip.setPixelColor(digitposition+5, (0, 0, 0));
        //strip.setPixelColor(digitposition+6, (0, 0, 0));
        //strip.setPixelColor(digitposition + 7, (0, 0, 0));
        //strip.setPixelColor(digitposition + 8, (0, 0, 0));
        //strip.setPixelColor(digitposition + 9, (0, 0, 0));
        //strip.setPixelColor(digitposition + 10, (0, 0, 0));
        //strip.setPixelColor(digitposition + 11, (0, 0, 0));
        //strip.setPixelColor(digitposition + 12, (0, 0, 0));
        //strip.setPixelColor(digitposition + 13, (0, 0, 0));
        //strip.setPixelColor(digitposition + 14, (0, 0, 0));
        //strip.setPixelColor(digitposition + 15, (0, 0, 0));
        //strip.setPixelColor(digitposition + 16, (0, 0, 0));
        //strip.setPixelColor(digitposition + 17, (0, 0, 0));
        strip.setPixelColor(digitposition + 18, (0, 0, 0));
        strip.setPixelColor(digitposition + 19, (0, 0, 0));
        strip.setPixelColor(digitposition + 20, (0, 0, 0));
        break;
      }
    case 11: {          //символ градуса цельсия и знак минус _
       //strip.setPixelColor(digitposition + 0, (0, 0, 0));
        //strip.setPixelColor(digitposition + 1, (0, 0, 0));
        //strip.setPixelColor(digitposition + 2, (0, 0, 0));
        strip.setPixelColor(digitposition+3, (0, 0, 0));
        strip.setPixelColor(digitposition+4, (0, 0, 0));
        strip.setPixelColor(digitposition+5, (0, 0, 0));
        strip.setPixelColor(digitposition+6, (0, 0, 0));
        strip.setPixelColor(digitposition + 7, (0, 0, 0));
        strip.setPixelColor(digitposition + 8, (0, 0, 0));
        strip.setPixelColor(digitposition + 9, (0, 0, 0));
        strip.setPixelColor(digitposition + 10, (0, 0, 0));
        strip.setPixelColor(digitposition + 11, (0, 0, 0));
        strip.setPixelColor(digitposition + 12, (0, 0, 0));
        strip.setPixelColor(digitposition + 13, (0, 0, 0));
        strip.setPixelColor(digitposition + 14, (0, 0, 0));
       // strip.setPixelColor(digitposition + 15, (0, 0, 0));
       // strip.setPixelColor(digitposition + 16, (0, 0, 0));
       // strip.setPixelColor(digitposition + 17, (0, 0, 0));
       // strip.setPixelColor(digitposition + 18, (0, 0, 0));
       // strip.setPixelColor(digitposition + 19, (0, 0, 0));
       // strip.setPixelColor(digitposition + 20, (0, 0, 0));
        break;
      }
    case 12: {          //символ "C"  "color"
        //strip.setPixelColor(digitposition+0, (0, 0, 0));
        //strip.setPixelColor(digitposition+1, (0, 0, 0));
        //strip.setPixelColor(digitposition+2, (0, 0, 0));
        strip.setPixelColor(digitposition+3, (0, 0, 0));
        strip.setPixelColor(digitposition+4, (0, 0, 0));
        strip.setPixelColor(digitposition+5, (0, 0, 0));
        strip.setPixelColor(digitposition+6, (0, 0, 0));
        strip.setPixelColor(digitposition + 7, (0, 0, 0));
        strip.setPixelColor(digitposition + 8, (0, 0, 0));
        //strip.setPixelColor(digitposition + 9, (0, 0, 0));
        //strip.setPixelColor(digitposition + 10, (0, 0, 0));
        //strip.setPixelColor(digitposition + 11, (0, 0, 0));
        //strip.setPixelColor(digitposition + 12, (0, 0, 0));
        //strip.setPixelColor(digitposition + 13, (0, 0, 0));
        //strip.setPixelColor(digitposition + 14, (0, 0, 0));
        //strip.setPixelColor(digitposition + 15, (0, 0, 0));
        //strip.setPixelColor(digitposition + 16, (0, 0, 0));
        //strip.setPixelColor(digitposition + 17, (0, 0, 0));
        strip.setPixelColor(digitposition + 18, (0, 0, 0));
        strip.setPixelColor(digitposition + 19, (0, 0, 0));
        strip.setPixelColor(digitposition + 20, (0, 0, 0));
        break;
      }
    case 13: {          //символ "-"
        strip.setPixelColor(digitposition+0, (0, 0, 0));
        strip.setPixelColor(digitposition+1, (0, 0, 0));
        strip.setPixelColor(digitposition+2, (0, 0, 0));
        strip.setPixelColor(digitposition+3, (0, 0, 0));
        strip.setPixelColor(digitposition+4, (0, 0, 0));
        strip.setPixelColor(digitposition+5, (0, 0, 0));
        strip.setPixelColor(digitposition+6, (0, 0, 0));
        strip.setPixelColor(digitposition + 7, (0, 0, 0));
        strip.setPixelColor(digitposition + 8, (0, 0, 0));
        strip.setPixelColor(digitposition + 9, (0, 0, 0));
        strip.setPixelColor(digitposition + 10, (0, 0, 0));
        strip.setPixelColor(digitposition + 11, (0, 0, 0));
        strip.setPixelColor(digitposition + 12, (0, 0, 0));
        strip.setPixelColor(digitposition + 13, (0, 0, 0));
        strip.setPixelColor(digitposition + 14, (0, 0, 0));
        strip.setPixelColor(digitposition + 15, (0, 0, 0));
        strip.setPixelColor(digitposition + 16, (0, 0, 0));
        strip.setPixelColor(digitposition + 17, (0, 0, 0));
        //strip.setPixelColor(digitposition + 18, (0, 0, 0));
        //strip.setPixelColor(digitposition + 19, (0, 0, 0));
        //strip.setPixelColor(digitposition + 20, (0, 0, 0));
        break;
      }
    case 14: {          //символ "b" "яркость"
        strip.setPixelColor(digitposition+0, (0, 0, 0));
        strip.setPixelColor(digitposition+1, (0, 0, 0));
        strip.setPixelColor(digitposition+2, (0, 0, 0));
        strip.setPixelColor(digitposition+3, (0, 0, 0));
        strip.setPixelColor(digitposition+4, (0, 0, 0));
        strip.setPixelColor(digitposition+5, (0, 0, 0));
        //strip.setPixelColor(digitposition+6, (0, 0, 0));
        //strip.setPixelColor(digitposition + 7, (0, 0, 0));
        //strip.setPixelColor(digitposition + 8, (0, 0, 0));
        //strip.setPixelColor(digitposition + 9, (0, 0, 0));
        //strip.setPixelColor(digitposition + 10, (0, 0, 0));
        //strip.setPixelColor(digitposition + 11, (0, 0, 0));
        //strip.setPixelColor(digitposition + 12, (0, 0, 0));
        //strip.setPixelColor(digitposition + 13, (0, 0, 0));
        //strip.setPixelColor(digitposition + 14, (0, 0, 0));
        //strip.setPixelColor(digitposition + 15, (0, 0, 0));
        //strip.setPixelColor(digitposition + 16, (0, 0, 0));
        //strip.setPixelColor(digitposition + 17, (0, 0, 0));
        //strip.setPixelColor(digitposition + 18, (0, 0, 0));
        //strip.setPixelColor(digitposition + 19, (0, 0, 0));
        //strip.setPixelColor(digitposition + 20, (0, 0, 0));
        break;
      }
    case 15: {          //символ " " "пустота"
        strip.setPixelColor(digitposition+0, (0, 0, 0));
        strip.setPixelColor(digitposition+1, (0, 0, 0));
        strip.setPixelColor(digitposition+2, (0, 0, 0));
        strip.setPixelColor(digitposition+3, (0, 0, 0));
        strip.setPixelColor(digitposition+4, (0, 0, 0));
        strip.setPixelColor(digitposition+5, (0, 0, 0));
        strip.setPixelColor(digitposition+6, (0, 0, 0));
        strip.setPixelColor(digitposition + 7, (0, 0, 0));
        strip.setPixelColor(digitposition + 8, (0, 0, 0));
        strip.setPixelColor(digitposition + 9, (0, 0, 0));
        strip.setPixelColor(digitposition + 10, (0, 0, 0));
        strip.setPixelColor(digitposition + 11, (0, 0, 0));
        strip.setPixelColor(digitposition + 12, (0, 0, 0));
        strip.setPixelColor(digitposition + 13, (0, 0, 0));
        strip.setPixelColor(digitposition + 14, (0, 0, 0));
        strip.setPixelColor(digitposition + 15, (0, 0, 0));
        strip.setPixelColor(digitposition + 16, (0, 0, 0));
        strip.setPixelColor(digitposition + 17, (0, 0, 0));
        strip.setPixelColor(digitposition + 18, (0, 0, 0));
        strip.setPixelColor(digitposition + 19, (0, 0, 0));
        strip.setPixelColor(digitposition + 20, (0, 0, 0));
        break;
      }
    case 16: {          //символ "d" "день недели"
        strip.setPixelColor(digitposition+0, (0, 0, 0));
        strip.setPixelColor(digitposition+1, (0, 0, 0));
        strip.setPixelColor(digitposition+2, (0, 0, 0));
        //strip.setPixelColor(digitposition+3, (0, 0, 0));
        //strip.setPixelColor(digitposition+4, (0, 0, 0));
        //strip.setPixelColor(digitposition+5, (0, 0, 0));
        //strip.setPixelColor(digitposition+6, (0, 0, 0));
        //strip.setPixelColor(digitposition + 7, (0, 0, 0));
        //strip.setPixelColor(digitposition + 8, (0, 0, 0));
        //strip.setPixelColor(digitposition + 9, (0, 0, 0));
        //strip.setPixelColor(digitposition + 10, (0, 0, 0));
        //strip.setPixelColor(digitposition + 11, (0, 0, 0));
        //strip.setPixelColor(digitposition + 12, (0, 0, 0));
        //strip.setPixelColor(digitposition + 13, (0, 0, 0));
        //strip.setPixelColor(digitposition + 14, (0, 0, 0));
        strip.setPixelColor(digitposition + 15, (0, 0, 0));
        strip.setPixelColor(digitposition + 16, (0, 0, 0));
        strip.setPixelColor(digitposition + 17, (0, 0, 0));
        //strip.setPixelColor(digitposition + 18, (0, 0, 0));
        //strip.setPixelColor(digitposition + 19, (0, 0, 0));
        //strip.setPixelColor(digitposition + 20, (0, 0, 0));
        break;
      }
    case 17: {          //символ "t"
        strip.setPixelColor(digitposition+0, (0, 0, 0));
        strip.setPixelColor(digitposition+1, (0, 0, 0));
        strip.setPixelColor(digitposition+2, (0, 0, 0));
        strip.setPixelColor(digitposition+3, (0, 0, 0));
        strip.setPixelColor(digitposition+4, (0, 0, 0));
        strip.setPixelColor(digitposition+5, (0, 0, 0));
        strip.setPixelColor(digitposition+6, (0, 0, 0));
        strip.setPixelColor(digitposition + 7, (0, 0, 0));
        strip.setPixelColor(digitposition + 8, (0, 0, 0));
        //strip.setPixelColor(digitposition + 9, (0, 0, 0));
        //strip.setPixelColor(digitposition + 10, (0, 0, 0));
        //strip.setPixelColor(digitposition + 11, (0, 0, 0));
        //strip.setPixelColor(digitposition + 12, (0, 0, 0));
        //strip.setPixelColor(digitposition + 13, (0, 0, 0));
        //strip.setPixelColor(digitposition + 14, (0, 0, 0));
        //strip.setPixelColor(digitposition + 15, (0, 0, 0));
        //strip.setPixelColor(digitposition + 16, (0, 0, 0));
        //strip.setPixelColor(digitposition + 17, (0, 0, 0));
        //strip.setPixelColor(digitposition + 18, (0, 0, 0));
        //strip.setPixelColor(digitposition + 19, (0, 0, 0));
        //strip.setPixelColor(digitposition + 20, (0, 0, 0));
        break;
      }

  }
}

// функция цветового колеса, которое возвращает RGB цвет для ленты (аргументу 0-255 соответсует поворот колеса от 0 до 359 градусов)
uint32_t WheelRGB(byte WheelPos) {
  WheelPos = 255 - WheelPos;          // разделительные точки между часами и мунутами на базе WS2812 с измененными цветами G и B

  if (WheelPos < 85) {
    return strip.Color((255 - WheelPos * 3) , (WheelPos * 3), 0);
  }
  if (WheelPos < 170) {
    WheelPos -= 85;
    return strip.Color(0,  (255 - WheelPos * 3) ,  (WheelPos * 3) );
  }
  WheelPos -= 170;
  return strip.Color( (WheelPos * 3), 0, (255 - WheelPos * 3));
}

uint32_t WheelRBG(byte WheelPos) {    // заменен оригинальный кусок кода  инвертирующий RGB в RBG (функция WheelRGB идентична WheelRBG)
  WheelPos = 255 - WheelPos;          

  if (WheelPos < 85) {
    return strip.Color((255 - WheelPos * 3) , (WheelPos * 3), 0);
  }
  if (WheelPos < 170) {
    WheelPos -= 85;
    return strip.Color(0,  (255 - WheelPos * 3) ,  (WheelPos * 3) );
  }
  WheelPos -= 170;
  return strip.Color( (WheelPos * 3), 0, (255 - WheelPos * 3));
}

void updateEEPROM() {
  EEPROM.updateByte(1, NowBrigtness);
  EEPROM.updateByte(2, ColorMode);
  EEPROM.updateByte(3, TempTime);
}
void readEEPROM() {
  NowBrigtness = EEPROM.readByte(1);
  ColorMode = EEPROM.readByte(2);
  TempTime = EEPROM.readByte(3);
}
void eepromTick() {
  if (eeprom_flag)
    if (millis() - KeyPressed > 60000) {  // 60 секунд после последнего нажатия с пульта
      eeprom_flag = false;
      updateEEPROM();
    }
}   

Аватара пользователя
SergeyShikal
Лейтенант
Сообщения: 575
Зарегистрирован: 30.08.2018{, 17:15}
Репутация: 47
Откуда: Иркутская область
Имя: Сергей

часы ws2812 и ds18b20

#2

Сообщение SergeyShikal » 08.03.2023{, 17:52}

Denis777 писал(а):
08.03.2023{, 17:07}
#include <Wire.h> // Базовая библиотека шины I2C (используется для связи модуля часов реального времени)
#include <iarduino_RTC.h> // Библиотека часов реального времени
#include <Adafruit_NeoPixel.h> // Библиотека для управления адресными светодиодами
#include <OneWire.h> // Бибиотека шины 1-Wire для работы температурных датчиков
#include <DallasTemperature.h> // Библиотека температурного сенсора DS18B20
#include <EEPROMex.h> // Библиотека доступа к энергонезависимой памяти


}
}
А сам проетк то где? Или ссылку на оригинал.
СпойлерПоказать
Часы на WS2812 3 на сегмент.flp
(2.08 МБ) 54 скачивания
а то может это подойдет

Denis777
Рядовой
Сообщения: 7
Зарегистрирован: 08.03.2023{, 16:58}
Репутация: 0
Имя: Денис

часы ws2812 и ds18b20

#3

Сообщение Denis777 » 08.03.2023{, 18:15}

сам проект https://www.youtube.com/watch?v=K5LiIeqo55E&t=979s

переделал часы и не могу до делать с отрицательной температурой .
не корректно выводит цифры .

Отправлено спустя 8 минут 28 секунд:
SergeyShikal, не работал с flp.. есть желание до делать часы - осталось до делать показание отрицательные . :smile37:
Последний раз редактировалось Denis777 09.03.2023{, 05:37}, всего редактировалось 1 раз.

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

часы ws2812 и ds18b20

#4

Сообщение Ingwar » 08.03.2023{, 18:26}

Denis777 писал(а):
08.03.2023{, 18:23}
не работал с flp.. есть желание до делать часы
Для начала viewforum.php?f=246
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

Аватара пользователя
SergeyShikal
Лейтенант
Сообщения: 575
Зарегистрирован: 30.08.2018{, 17:15}
Репутация: 47
Откуда: Иркутская область
Имя: Сергей

часы ws2812 и ds18b20

#5

Сообщение SergeyShikal » 09.03.2023{, 13:29}

Denis777 писал(а):
08.03.2023{, 18:23}
Отправлено спустя 8 минут 28 секунд:
SergeyShikal, не работал с flp.. есть желание до делать часы - осталось до делать показание отрицательные . :smile37:
С кодом здесь ни чем не помогу, а проект как раз под такие часы.

Denis777
Рядовой
Сообщения: 7
Зарегистрирован: 08.03.2023{, 16:58}
Репутация: 0
Имя: Денис

часы ws2812 и ds18b20

#6

Сообщение Denis777 » 09.03.2023{, 14:18}

SergeyShikal писал(а):
09.03.2023{, 13:29}
Denis777 писал(а):
08.03.2023{, 18:23}
Отправлено спустя 8 минут 28 секунд:
SergeyShikal, не работал с flp.. есть желание до делать часы - осталось до делать показание отрицательные . :smile37:
С кодом здесь ни чем не помогу, а проект как раз под такие часы.
минус появляется как надо . цвета изменяются при отрицательной температуры . проблема некорретно вывод цифры :smile37:

Denis777
Рядовой
Сообщения: 7
Зарегистрирован: 08.03.2023{, 16:58}
Репутация: 0
Имя: Денис

часы ws2812 и ds18b20

#7

Сообщение Denis777 » 14.03.2023{, 18:00}

:smile37: прописал монитор порта ... выводи Temp C: -16.62
как прописать чтоб выводил отрицальную темпр норм

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

часы ws2812 и ds18b20

#8

Сообщение Dryundel » 14.03.2023{, 19:51}

Denis777 писал(а):
14.03.2023{, 18:00}
:smile37: прописал монитор порта ... выводи Temp C: -16.62
как прописать чтоб выводил отрицальную темпр норм
Если отрицательная выводится цветом. То знаком минуса можно пренебречь. А выводить только модуль числа abs()

Denis777
Рядовой
Сообщения: 7
Зарегистрирован: 08.03.2023{, 16:58}
Репутация: 0
Имя: Денис

часы ws2812 и ds18b20

#9

Сообщение Denis777 » 14.03.2023{, 20:10}

Dryundel писал(а):
14.03.2023{, 19:51}
Denis777 писал(а):
14.03.2023{, 18:00}
:smile37: прописал монитор порта ... выводи Temp C: -16.62
как прописать чтоб выводил отрицальную темпр норм
Если отрицательная выводится цветом. То знаком минуса можно пренебречь. А выводить только модуль числа abs()

можете помочь ? часы понимают что отрицательная темпр , показывает знак - .. в порту тоже показывает что минус темпр и показывает как нужно ... а вот вывод на ws2812 нету . :smile14:

Отправлено спустя 5 минут 26 секунд:
https://disk.yandex.ru/i/9f-l3vU_FoUw-Q

https://disk.yandex.ru/i/rtVTdxlbk8FtCQ

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

часы ws2812 и ds18b20

#10

Сообщение rw6cm » 15.03.2023{, 12:43}

Denis777 писал(а):
08.03.2023{, 18:23}
сам проект .youtube.com/watch?v=K5LiIeqo55E&t=979s
переделал часы и не могу до делать с отрицательной температурой .
не корректно выводит цифры .
От куда нам знать что Вы там переделали?
сори не увидел. (такой информативный и наглядный первый пост :-))
Если смотреть скетч автора видео, то в нем температура занимает:
2 цифры целого числа, точку, 1 цифра десятые доли, и значок градуса, т.е все знакоместа заняты.
а минусовые значения (по его задумке) должны отображаться сегментом ниже значка градуса
(но возможно для этого, в функции отрисовки сегментов температуры данные должны вводиться по модулю)
2023_03_15_12_08_53_Часы_на_адресной_светодиодной_ленте_YouTube_Atom.png
а не так как у Вас
IMG_20230314_214511 (1).jpg
Если делать как у автора, показывает отрицательные значения?
если нет, попробуйте изменить так:

Код: Выделить всё

     else
          {
            digitout (0, abs( temp10 / 100) );            // отрисовываем цифры (выставляем черные точки)
            digitout (7, abs(((temp10) % 100) / 10) );   // отрисовываем цифры (выставляем черные точки)
            digitout (16, abs((temp10) % 10 ));          // отрисовываем цифры (выставляем черные точки)
          }

п/с Форум Вы выбрали не тот для таких задач.
Здесь если и рассматривают код, то в рамках создания ПБ для пользователей.
Win10-64, FLProg (portable)

Denis777
Рядовой
Сообщения: 7
Зарегистрирован: 08.03.2023{, 16:58}
Репутация: 0
Имя: Денис

часы ws2812 и ds18b20

#11

Сообщение Denis777 » 16.03.2023{, 12:01}

rw6cm писал(а):
15.03.2023{, 12:43}
Denis777 писал(а):
08.03.2023{, 18:23}
сам проект .youtube.com/watch?v=K5LiIeqo55E&t=979s
переделал часы и не могу до делать с отрицательной температурой .
не корректно выводит цифры .
От куда нам знать что Вы там переделали?
сори не увидел. (такой информативный и наглядный первый пост :-))
Если смотреть скетч автора видео, то в нем температура занимает:
2 цифры целого числа, точку, 1 цифра десятые доли, и значок градуса, т.е все знакоместа заняты.
а минусовые значения (по его задумке) должны отображаться сегментом ниже значка градуса
(но возможно для этого, в функции отрисовки сегментов температуры данные должны вводиться по модулю)
2023_03_15_12_08_53_Часы_на_адресной_светодиодной_ленте_YouTube_Atom.png
а не так как у Вас
IMG_20230314_214511 (1).jpg
Если делать как у автора, показывает отрицательные значения?
если нет, попробуйте изменить так:

Код: Выделить всё

     else
          {
            digitout (0, abs( temp10 / 100) );            // отрисовываем цифры (выставляем черные точки)
            digitout (7, abs(((temp10) % 100) / 10) );   // отрисовываем цифры (выставляем черные точки)
            digitout (16, abs((temp10) % 10 ));          // отрисовываем цифры (выставляем черные точки)
          }

п/с Форум Вы выбрали не тот для таких задач.
Здесь если и рассматривают код, то в рамках создания ПБ для пользователей.
:yahoo: :buhnut: пиши номер тел скина на пиво :smile193:

Denis777
Рядовой
Сообщения: 7
Зарегистрирован: 08.03.2023{, 16:58}
Репутация: 0
Имя: Денис

часы ws2812 и ds18b20

#12

Сообщение Denis777 » 16.03.2023{, 12:10}


Ответить

Вернуться в «Часы реального времени»