Ответить
  • TotCambIKoka Senior Member
    офлайн
    TotCambIKoka Senior Member

    596

    7 лет на сайте
    пользователь #825562

    Профиль
    Написать сообщение

    596
    # 27 января 2020 03:46

    PrintON, А вы пробовали сообщение об ошибке в поисковик вставлять, а не сразу скриншот на форум? Зайдите в диспетчер устройств и определитесь на каком сом порте у вас ардуина весит, и выберите правильный комп порт при загрузке скетча. И также если у вас китайская нано UART переходнике CH340 то поставте драйвер, а так же возможно в версии платы нано надо будет выбрать old bootloader.

    И если у вас все шьется от усб 2.0, Зачем вам 3.0 для блинка? Ардуина быстрее грузиться/шиться и обмениваться информацией с комопм все равно не будет. Из полезного только больший ток, но для новичка это наоборот минус - больше шанс что вы по несоторожности подпалите какие-то модули.

    [Паяльник & Отвертка TEAM] Кулыбин ищет хлам для творчества. Все замотаю синей изолентой
  • SIO Паяльник & Отвертка TEAM
    офлайн
    SIO Паяльник & Отвертка TEAM

    3875

    14 лет на сайте
    пользователь #68847

    Профиль
    Написать сообщение

    3875
    # 27 января 2020 07:34
    TotCambIKoka:

    И если у вас все шьется от усб 2.0, Зачем вам 3.0 для блинка?

    Я так понимаю что надо шить на буке где все юсб 3.0, а блинк для проверки просто.

    Паяльник & Отвертка TEAM, MikroPascal for AVR http://forum.onliner.by/viewtopic.php?t=637523
  • PrintON Member
    офлайн
    PrintON Member

    209

    4 года на сайте
    пользователь #1751913

    Профиль
    Написать сообщение

    209
    # 27 января 2020 09:59

    У меня всего один ком порт (который создает ардуина). Драйвера подкидывал разные. А почему 3.0 - Купил новый бук и в нем только usb 3.0

    Добавлено спустя 1 минута 14 секунд

    SIO:

    TotCambIKoka:

    И если у вас все шьется от усб 2.0, Зачем вам 3.0 для блинка?

    Я так понимаю что надо шить на буке где все юсб 3.0, а блинк для проверки просто.

    Все именно так.

  • Махасаматман Member
    офлайн
    Махасаматман Member

    237

    7 лет на сайте
    пользователь #721530

    Профиль
    Написать сообщение

    237
    # 27 января 2020 15:14

    Пробуйте разные версии Arduino IDE. 1.6.3 например. Ну а вдруг :)

  • zverjuga Senior Member
    офлайн
    zverjuga Senior Member

    4944

    9 лет на сайте
    пользователь #346019

    Профиль
    Написать сообщение

    4944
    # 29 января 2020 02:45 Редактировалось zverjuga, 1 раз.

    ардуино не шьется в том случае, если IDE не настроена на нужный COM порт, на котором эта самая ардуина сидит. в диспетчере устройств нужно посмотреть, есть ли в системе ардуиновский ком порт? если нету, значит проблема скорее всего в драйвере, который не умеет работать с USB3. то есть решение - найти нужный драйвер.

    проклятый антисутенерский закон!
  • art100 Клуб Самоделкиных
    офлайн
    art100 Клуб Самоделкиных

    2883

    9 лет на сайте
    пользователь #397580

    Профиль
    Написать сообщение

    2883
    # 29 января 2020 16:21
    PrintON:

    ... один ком.. ардуина...Драйвера... разные.. 3.0.. usb 3.0.....Все именно так.

    вы меня заинтриговали юсб3 ведруниа не ведруина
    буде время найду комп тыкну

    Круиз-контроль 88 км/ч
  • s.e.s Neophyte Poster
    офлайн
    s.e.s Neophyte Poster

    2

    3 года на сайте
    пользователь #2048526

    Профиль
    Написать сообщение

    2
    # 19 февраля 2020 10:23

    добрый день, есть потребность в написании скетча к ардуино.

    С нами светлее...
  • starik Senior Member
    офлайн
    starik Senior Member

    8498

    18 лет на сайте
    пользователь #1163

    Профиль
    Написать сообщение

    8498
    # 5 марта 2020 01:07

    Может у кого есть готовый блок для дисплей 1106 под wemos? Для fl prog.
    Ну или сможет адаптировать готовый блок с меги под вемос?

  • SIO Паяльник & Отвертка TEAM
    офлайн
    SIO Паяльник & Отвертка TEAM

    3875

    14 лет на сайте
    пользователь #68847

    Профиль
    Написать сообщение

    3875
    # 5 марта 2020 07:23
    starik:

    сможет адаптировать готовый блок с меги под вемос?

    Это как?

    Паяльник & Отвертка TEAM, MikroPascal for AVR http://forum.onliner.by/viewtopic.php?t=637523
  • starik Senior Member
    офлайн
    starik Senior Member

    8498

    18 лет на сайте
    пользователь #1163

    Профиль
    Написать сообщение

    8498
    # 5 марта 2020 23:48

    SIO,
    Уже никак. Сделал

  • art100 Клуб Самоделкиных
    офлайн
    art100 Клуб Самоделкиных

    2883

    9 лет на сайте
    пользователь #397580

    Профиль
    Написать сообщение

    2883
    # 6 марта 2020 08:43 Редактировалось art100, 14 раз(а).
    starik:

    SIO,
    Уже никак. Сделал

    хоть бы рассказал что это и с чем это едят :)
    я тут по вечерам уставший после работы пытаюсь скрестить на ардуино енкодеры и и2с экранчики
    SSD1306 OLED I2C 0.9" 132x32 мелкий такой гаденышь шрифты для муравьев прикольный такой
    к енкодерам и экранчикам притензий нет но вместе
    грусть печаль с библиотеками :weep:
    кода много но все авно :evil:
    думаю окнфликт по прерыванию 2-ой ноги но ковырять чужие библиотики по вечерам за 2 часа после работы такааааая лень

    ну что хоть за экранчик ковыряешь? чё хоть там SPI I2C 0x27 03a 0x666666666
    может у тебя там счастье :ura:

    я тут ковыряю экранчик WINSTAR WH1602A-TMI-CT вот ноги в раскорячку так в раскорячку
    до сих пор не инициализировал это чудо из 90-ых бандитских

    а еще 10-ок свежекитайских 1602 вооще обленились ноги подписывать
    они еще 3-ех вольтовые куда там 5 вольт пхать чтобы бабахнули

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

    код выделить все

    //art100 to write 20200302
    //#include <Wire.h>
    //#include <Adafruit_GFX.h>
    //#include <Adafruit_SSD1306.h>

    //consts------------------------------------------------------
    //Adafruit_SSD1306 display(128,32, &Wire,-1);//

    //-------------------------------------------------
    void DrawLCD132x32String1(String String1,int size1,int x1,int y1){// display.clearDisplay();
    display.setTextColor(SSD1306_WHITE);
    display.setTextSize(size1);
    display.setCursor(x1,y1);display.print(String1);
    display.display();
    }

    //----------------------------------------------------------------
    void setup(){
    // if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // initialise 0x3C for 128x32 SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
    // Serial.println(F("SSD1306 allocation failed"));
    // for(;;); // Don't proceed, loop forever
    // }
    // display.display();delay(2000); display.clearDisplay();//delay(10000); // display from PROGMEM buffer library AdafruitSSD1306
    }
    //=================================================================================================================================================================
    void loop(){
    DrawLCD132x32String1("poslat po centru na",2,10,10);
    }

    логотип в этом типе экранчика подготавливается заранее и грузится на уровне библиотеки типа
    maylogo.h
    ...
    ..
    ..

    Круиз-контроль 88 км/ч
  • starik Senior Member
    офлайн
    starik Senior Member

    8498

    18 лет на сайте
    пользователь #1163

    Профиль
    Написать сообщение

    8498
    # 6 марта 2020 10:41

    art100,
    Да скрестил я .
    У меня экранчик на контролере 1106. Про него совсем мало инфы, но получилось.
    А вот с энкодером была беда. Вешал напрочь, независимо от экрана.

    Добавлено спустя 46 минут 26 секунд

    art100,
    шрифты в него можно кстати любые загонять.

  • art100 Клуб Самоделкиных
    офлайн
    art100 Клуб Самоделкиных

    2883

    9 лет на сайте
    пользователь #397580

    Профиль
    Написать сообщение

    2883
    # 6 марта 2020 11:34 Редактировалось art100, 9 раз(а).
    starik:

    ... на контролере 1106. ....

    погодь погодь
    говоришь и2с такой с енкодером подружил
    экранная библиотека какая
    я смотрю сейчас на эту древнюю экзотику пробовать не пробовать вечером https://github.com/HobbyComponents/HCuOLED

    я енкодерю ардуину по 2-ой ноге прериваниями ловятся надежно

    я на работе щас код поищу которым енкодерю
    по енокдеру библиотек много и я не помню чтобы не работали
    они все вторую ногу хоттят преряваниями прослушивать
    вот нашел
    гуверовская тоже рабочая библиотека не важно
    зы
    блин с этой работой не дают с человеком поговрить

    код выделить все

    //#include "GyverEncoder.h"
    //pins----------------------------------------------------------
    #define PIN_ENCODER_ROT1 2 //attachInterrupt(0,GetRotaryDetect,FALLING); //interrupt 0 pin 2 on Arduino UNO
    #define PIN_ENCODER_ROT2 3
    #define PIN_ENCODER_BUT1 4
    //consts------------------------------------------------------
    //Encoder enc1(PIN_ENCODER_ROT1,PIN_ENCODER_ROT2,PIN_ENCODER_BUT1);
    volatile boolean EncoderRotateFlag1; // for Interrupts
    volatile boolean EncoderRotationDirectionFlag1;
    int StepperPosition =0;
    int EncoderStepsKoeficient =200;//2000;//200;//4;

    // Interrupt -------------------------------------------------------------
    void GetRotaryDetect(){
    delay(4);//may be no need if not drebezg
    if(digitalRead(PIN_ENCODER_ROT1)) EncoderRotationDirectionFlag1= digitalRead(PIN_ENCODER_ROT2);
    else EncoderRotationDirectionFlag1=!digitalRead(PIN_ENCODER_ROT2);
    EncoderRotateFlag1 = true;
    }
    //----------------------------------------------------------------
    void setup(){

    Serial.begin(9600);

    // attachInterrupt(0, isr, CHANGE); // прерывание на 2 пине
    // if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // initialise 0x3C for 128x32 SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
    // Serial.println(F("SSD1306 allocation failed"));
    // for(;;); // Don't proceed, loop forever
    // }
    // display.display();delay(2000); display.clearDisplay();//delay(10000); // display from PROGMEM buffer library AdafruitSSD1306

    pinMode(PIN_ENCODER_ROT1,INPUT);
    pinMode(PIN_ENCODER_ROT2,INPUT);
    pinMode(PIN_ENCODER_BUT1,INPUT_PULLUP);
    pinMode(PIN_LED13,OUTPUT);
    attachInterrupt(0,GetRotaryDetect,FALLING); //interrupt 0 pin 2 on Arduino UNO

    }

    vtyz yf 23 at

    Круиз-контроль 88 км/ч
  • starik Senior Member
    офлайн
    starik Senior Member

    8498

    18 лет на сайте
    пользователь #1163

    Профиль
    Написать сообщение

    8498
    # 6 марта 2020 12:20 Редактировалось starik, 1 раз.

    art100,
    Да подружил.
    Экранная библиотека точно не помню , что-то esp8266 oled1306
    Она есть для скачивания в arduino ide

  • zverjuga Senior Member
    офлайн
    zverjuga Senior Member

    4944

    9 лет на сайте
    пользователь #346019

    Профиль
    Написать сообщение

    4944
    # 6 марта 2020 12:41

    по 1106 нашел следующую инфу

    1. форум на ардуино со ссылкой на переделанную библиотеку
    https://forum.arduino.cc/index.php?topic=242880.0

    2. библиотека на гитхабе
    https://github.com/milligan22963/sh1106

    3. даташит
    https://buyhere22.com/components/SH1106_datasheet.pdf

    проклятый антисутенерский закон!
  • art100 Клуб Самоделкиных
    офлайн
    art100 Клуб Самоделкиных

    2883

    9 лет на сайте
    пользователь #397580

    Профиль
    Написать сообщение

    2883
    # 6 марта 2020 13:51 Редактировалось art100, 3 раз(а).
    starik:

    SIO,
    Уже никак. Сделал

    объясни хоть толком
    1.encoder->wemos->i2c->ssd1106 + arduino ide ???
    2.encoder->arduino_uno->i2c->ssd1106 + arduino ide ???

    Круиз-контроль 88 км/ч
  • starik Senior Member
    офлайн
    starik Senior Member

    8498

    18 лет на сайте
    пользователь #1163

    Профиль
    Написать сообщение

    8498
    # 6 марта 2020 14:17

    art100,

    #include <Wire.h>

    #include "GyverEncoder.h"

    #include "SH1106.h"

    extern "C" {
    #include "user_interface.h";
    }
    SH1106 display(0x3c, D2, D1);
    bool En_110083932_1;
    bool right_110083932_1;
    bool left_110083932_1;
    bool turn_110083932_1;
    bool rightHold_110083932_1;
    bool leftHold_110083932_1;
    bool fastRight_110083932_1;
    bool fastLeft_110083932_1;
    bool click_110083932_1;
    bool holded_110083932_1;
    #define CLK_110083932_1 D7

    #define DT_110083932_1 D6

    #define SW_110083932_1 D5

    Encoder enc1_110083932_1(CLK_110083932_1, DT_110083932_1, SW_110083932_1);
    bool en_36765545_1;
    String text_36765545_1;
    bool _count3I = 0;
    bool _count3_SCST = 0;
    int _count3_Value = 0;

    void setup()
    {

    display.init();
    display.flipScreenVertically();
    display.setContrast(255);

    if(1==1)
    {enc1_110083932_1.setType(TYPE1);}
    if(1==2)
    {enc1_110083932_1.setType(TYPE2);}
    if(2==1)
    {enc1_110083932_1.setDirection(NORM);}
    if(2==2)
    {enc1_110083932_1.setDirection(REVERSE);}
    Serial.begin(9600);

    }
    void loop()
    {

    //Плата:1
    display.clear();
    En_110083932_1 = 1;
    if(En_110083932_1)
    {
    enc1_110083932_1.tick(); // обязательная функция отработки. Должна постоянно опрашиваться
    if (enc1_110083932_1.isRight()) //Если был совершен поворот энк вправо
    { right_110083932_1=true;}
    else
    {right_110083932_1=false;}

    if(enc1_110083932_1.isLeft()) //Если был совершен поворот энк влево
    {left_110083932_1=true;}
    else
    {left_110083932_1=false;}

    if(enc1_110083932_1.isTurn()) //Если был совершен поворот энкодера в любую сторону
    {turn_110083932_1=true;}
    else
    {turn_110083932_1=false;}

    if(enc1_110083932_1.isRightH()) //Если был совершен поворот в право с удержанием кнопки энкодера
    {rightHold_110083932_1=true;}
    else
    {rightHold_110083932_1=false;}

    if(enc1_110083932_1.isLeftH()) //Если был совершен поворот влево с удержанием кнопки энкодера
    {leftHold_110083932_1=true;}
    else
    {leftHold_110083932_1=false;}

    if(enc1_110083932_1.isFastR()) //Если был совершен быстрый поворот вправо
    {fastRight_110083932_1=true;}
    else
    {fastRight_110083932_1=false;}

    if(enc1_110083932_1.isFastL()) //Если был совершен быстрый поворот влево
    {fastLeft_110083932_1=true;}
    else
    {fastLeft_110083932_1=false;}

    //if(enc1_110083932_1.isPress()) // если было нажатии кнопки, сама сбрасывается в false отрабатывает release после отпускания
    // {press=true;}
    // else
    // {press=false;}

    //if(enc1_110083932_1.isRelease()) // отпускании кнопки, сама сбрасывается в false
    // {release=true;}
    // else
    // {release=false;}

    if(enc1_110083932_1.isClick()) // возвращает true при нажатии и отпускании кнопки, сама сбрасывается в false
    {click_110083932_1=true;}
    else
    {click_110083932_1=false;}

    if(enc1_110083932_1.isHolded()) // возвращает true при удержании кнопки, сама сбрасывается в false
    {holded_110083932_1=true;}
    else
    {holded_110083932_1=false;}

    //if(enc1_110083932_1.isHold()) // возвращает true при удержании кнопки, НЕ СБРАСЫВАЕТСЯ
    // {hold=true;}
    // else
    // {hold=false;}

    }
    if (right_110083932_1){
    if ( ! _count3I) {
    _count3I = 1;
    if(_count3_Value < 12) {_count3_Value = _count3_Value + 1;
    }}} else {
    _count3I = 0;}
    if (left_110083932_1){
    if ( ! _count3_SCST) {
    _count3_SCST = 1;
    if(_count3_Value > 1) {_count3_Value = _count3_Value - 1;
    }}} else {
    _count3_SCST = 0;}
    en_36765545_1 = 1;
    text_36765545_1 = ((String("Encoder ")) + ((String(_count3_Value, DEC))));
    if (en_36765545_1) { display.setTextAlignment(TEXT_ALIGN_CENTER);
    display.setFont(ArialRus_Plain_10);
    display.drawString(50, 20, utf8rus(text_36765545_1));
    }
    display.display();

    }

    bool _isTimer(unsigned long startTime, unsigned long period )
    {
    unsigned long currentTime;
    currentTime = millis();
    if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
    }
    String utf8rus(String source)
    {
    int i,k;
    String target;
    unsigned char n;
    char m[2] = { '0', '\0' };

    k = source.length(); i = 0;

    while (i < k) {
    n = source; i++;

    if (n >= 0xC0) {
    switch (n) {
    case 0xD0: {
    n = source; i++;
    if (n == 0x81) { n = 0xA8; break; }
    if (n >= 0x90 && n <= 0xBF) n = n + 0x30;
    break;
    }
    case 0xD1: {
    n = source; i++;
    if (n == 0x91) { n = 0xB8; break; }
    if (n >= 0x80 && n <= 0x8F) n = n + 0x70;
    break;
    }
    }
    }
    m[0] = n; target = target + String(m);
    }
    return target;
    }
    void isrCLK_110083932_1()
    {
    enc1_110083932_1.tick(); // отработка в прерывании
    }
    void isrDT_110083932_1()
    {
    enc1_110083932_1.tick(); // отработка в прерывании
    }

    Добавлено спустя 2 минуты

  • art100 Клуб Самоделкиных
    офлайн
    art100 Клуб Самоделкиных

    2883

    9 лет на сайте
    пользователь #397580

    Профиль
    Написать сообщение

    2883
    # 6 марта 2020 14:55 Редактировалось art100, 2 раз(а).
    starik:

    starik

    я понял
    по коду это не ардуино

    код выделить все

    if(1==1){enc1_110083932_1.setType(TYPE1);}
    if(1==2){enc1_110083932_1.setType(TYPE2);}
    if(2==1){enc1_110083932_1.setDirection(NORM);}
    if(2==2){enc1_110083932_1.setDirection(REVERSE);}

    void isrCLK_110083932_1(){ enc1_110083932_1.tick(); }

    даже не знаю
    может в wemos поиграть?

    Круиз-контроль 88 км/ч
  • starik Senior Member
    офлайн
    starik Senior Member

    8498

    18 лет на сайте
    пользователь #1163

    Профиль
    Написать сообщение

    8498
    # 6 марта 2020 16:03

    art100,
    Тебе для чего скетч скинуть?

    Добавлено спустя 13 секунд

    Для Ардуино?

  • art100 Клуб Самоделкиных
    офлайн
    art100 Клуб Самоделкиных

    2883

    9 лет на сайте
    пользователь #397580

    Профиль
    Написать сообщение

    2883
    # 8 марта 2020 13:47 Редактировалось art100, 1 раз.
    starik:

    art100,
    Тебе для чего скетч скинуть?

    Добавлено спустя 13 секунд

    Для Ардуино?

    фуу 4 фыходных портратил
    ну вроде стронулся с метровой точки
    интерент ютуб завален глючным кодом
    по сути вменяемых библиотек на енкодер и ардуину нет
    врукопашную все пишут
    я тоже писал
    один только гувер качественно проработал енкодеры все 4 штучки и библиотека без глюков хотя тоже есть проскальзывания но думаю уже глубже копать лень мне будет
    я удивлен сколько на гитхабе мусора вываливают сейчас
    код кривой не рабочий просто как в помойку вываливают
    ну и я тут как в помойку сюда
    у меня этот код работает
    енкодер дрыгает ардуину а она прорабатывал 3 индикации на выбор
    ну шо купил туда и пхать
    1.много ног классика буфер что вывелс любимим моим красным щитком бяда-печаль
    ног мне надо будет ооочень много
    боюсь даже предположить вроде 8
    может ардуино и не пойдет в конце концов
    2 I2C ноги всего 2 буфер проверенный боевой текстовый режим I2C 0x27 LCD2004 от 3D принтеров боевой старый проверенный
    3 I2C ноги всего 2 буфер все графическое даже текст надо думать как пхать

    КоРоче мнОгА бУкАв лень псать
    чем мы хуже помойки гитхаба не жалко

    код выделить все

    // art100 to write encoder - arduino nano - i2c SDA-A4 SDL-A5 oled 0.9&quot; 128x32
    //#include &lt;microLiquidCrystal_I2C.h&gt; //i2c 0x27 LCD2004 encoder and i2c 0x27 LCD2004 ok
    //#include &lt;LiquidCrystal.h&gt; //ArduinoShieldLcdButtons encoder and shield bed ???
    #include &quot;GyverEncoder.h&quot; // only 4 pin s1, s2, sw, gnd,

    //#include &lt;SPI.h&gt; //i2c SDA-A4 SDL-A5 oled 0.9&quot; 128x32 нахрена в примере не понятно типо универсально может быть
    #include &lt;Wire.h&gt; //i2c SDA-A4 SDL-A5 oled 0.9&quot; 128x32 // стандартная arduino i2c
    #include &lt;Adafruit_GFX.h&gt; //i2c SDA-A4 SDL-A5 oled 0.9&quot; 128x32 // но обязательна но без ее нескольких функция бяда с адовыми фруктами
    #include &lt;Adafruit_SSD1306.h&gt; //i2c SDA-A4 SDL-A5 oled 0.9&quot; 128x32 // encoder and i2c 0x3c oled ok
    //pins------------------------------------------

    #define CLK 2
    #define DT 3
    #define SW 4

    //#define PIN_SHIELD_BUTTON1 A0 //ArduinoShieldLcdButtons bed ???
    //LiquidCrystal lcd(8,9,4,5,6,7); //ArduinoShieldLcdButtons bed ???
    //consts---------------------------------------------
    Encoder enc1(CLK, DT, SW);
    int value = 0;

    //LiquidCrystal_I2C lcd(0x27, 20, 4); //i2c 0x27 LCD2004

    #define SCREEN_WIDTH 128 //i2c SDA-A4 SDL-A5 oled 0.9&quot; 128x32
    #define SCREEN_HEIGHT 32 //i2c SDA-A4 SDL-A5 oled 0.9&quot; 128x32
    #define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin) //i2c SDA-A4 SDL-A5 oled 0.9&quot; 128x32
    Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &amp;Wire, OLED_RESET); //i2c SDA-A4 SDL-A5 oled 0.9&quot; 128x32
    String string1;
    //-------------------------------------------------
    void DrawLCD132x32String1(String String1,int size1,int x1,int y1){// display.clearDisplay();
    display.setTextColor(SSD1306_WHITE);
    display.setTextSize(size1);
    display.setCursor(x1,y1);display.print(String1);
    display.display();
    }

    //-------------------------------------------------
    void DrawLcd132x32int1long1(int int1,String long1,int size1,int x1,int y1){// display.clearDisplay();
    display.setTextColor(SSD1306_WHITE);
    display.setTextSize(size1);
    //display.setCursor(x1,y1);display.print(F(&quot;0x&quot;));// чстим поле для вывода
    display.setCursor(x1,y1);display.print(int1); // выводим на почищенное место
    display.display();
    }
    //-------------------------------------------------
    void DrawLCD132x32Int1(int int1,int size1,int x1,int y1){// display.clearDisplay();
    display.setTextColor(SSD1306_WHITE);
    display.setTextSize(size1);
    //display.setCursor(x1,y1);display.print(long1);
    display.setCursor(x1,y1);display.print(int1);
    display.display();
    }
    //-------------------------------------------------
    void DrawLcd132x32init1row123(int int1,int row1){
    //DrawLCD132x32Int1(&quot;--------------------&quot;,1, 0, 0); // top small
    //DrawLCD132x32Int1(&quot; &quot; ,2, 0, 9); // center normal
    //DrawLCD132x32Int1(&quot;------------- art100&quot;,1, 0,25); // bottop small
    // if(row1=1){
    // DrawLCD132x32Int1(&quot; &quot;,1, 0, 0);//top clear
    // DrawLCD132x32Int1(int1 ,1, 0, 0);
    // }
    if(row1=2){
    DrawLCD132x32Int1(&quot; &quot;,2, 0, 9);
    DrawLCD132x32Int1(int1 ,2, 0, 9);
    }
    // if(row1=3){
    // DrawLCD132x32Int1(&quot; &quot;,1, 0,25);
    // DrawLCD132x32Int1(int1 ,1, 0,25);
    // }

    }
    //-------------------------------------------------
    void DrawLcd132x32clear1int2(int int1,int size1,int x1,int y1){
    display.clearDisplay();
    display.setTextColor(SSD1306_WHITE);
    display.setTextSize(size1);
    display.setCursor(x1,y1);display.print(int1);
    display.display();
    }
    //--------------------------------------------------------------
    void isrCLK(){ enc1.tick(); } // отработка в прерывании
    //--------------------------------------------------------------
    void isrDT (){ enc1.tick(); } // отработка в прерывании
    //---------------------------------------------------------
    void setup() {
    Serial.begin(9600);
    attachInterrupt(0, isrCLK, CHANGE); // прерывание на 2 пине! CLK у энка
    attachInterrupt(1, isrDT, CHANGE); // прерывание на 3 пине! DT у энка

    if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3C for 128x32
    Serial.println(F(&quot;SSD1306 allocation failed&quot;)); //i2c SDA-A4 SDL-A5 oled 0.9&quot; 128x32
    for(;;); // Don't proceed, loop forever //i2c SDA-A4 SDL-A5 oled 0.9&quot; 128x32
    }
    display.display();
    delay(2000); // Pause for 2 seconds
    display.clearDisplay();// Clear the buffer
    DrawLCD132x32String1(&quot;1________01________0&quot;,1, 0, 0);//DrawString1(String String1,int size1,int x1,int y1)
    DrawLCD132x32String1(&quot;art100 ok&quot; ,2, 0, 9);//DrawString1(String String1,int size1,int x1,int y1)
    DrawLCD132x32String1(&quot;1________01________0&quot;,1, 0,25);//DrawString1(String String1,int size1,int x1,int y1)

    //lcd.init();//i2c
    //lcd.backlight();//i2c

    //lcd.begin(16,2);//ArduinoShieldLcdButtons
    //lcd.clear();//ArduinoShieldLcdButtons

    //lcd.setCursor(3, 0); lcd.print(&quot;Hello, world!&quot;);
    //lcd.setCursor(2, 1); lcd.print(&quot;Ywrobot Arduino!&quot;);
    // lcd.setCursor(0, 2); lcd.print(&quot;Arduino LCM IIC 2004&quot;);
    // lcd.setCursor(2, 3); lcd.print(&quot;Power By Ec-yuan!&quot;);

    }

    //--------------------------------------------------------------
    //==============================================================
    void loop() {
    enc1.tick();
    if (enc1.isRight ()){ value++; Serial.println(&quot;Right&quot;); } //display.clearDisplay();DrawLCD132x32String1(&quot;Right &quot;,1, 0,25); } // если был поворот
    if (enc1.isLeft ()){ value--; Serial.println(&quot;Left&quot;); } //display.clearDisplay();DrawLCD132x32String1(&quot; Left &quot;,1, 0,25); }

    if (enc1.isRightH()){ value=+10; Serial.println(&quot;Right holded&quot;); }// если было удержание + поворот
    if (enc1.isLeftH ()){ value=-10; Serial.println(&quot;Left holded&quot;); }

    if (enc1.isPress ()){ Serial.println(&quot;Press&quot;); }//display.clearDisplay(); }
    //if (enc1.isRelease()) Serial.println(&quot;Release&quot;);
    //if (enc1.isClick()) Serial.println(&quot;Click&quot;);
    if (enc1.isHolded ()){ Serial.println(&quot;Holded&quot;);display.clearDisplay(); }

    //if (enc1.isTurn()) { // если был совершён поворот (индикатор поворота в любую сторону)
    // Serial.println(value); // выводим значение при повороте
    // //lcd.setCursor(2, 1); lcd.print(value);//lcd.setCursor(2, 3); lcd.print(value);
    //}

    //lcd--------------------------------------------------------------------------
    if (enc1.isTurn()) { // если был совершён поворот (индикатор поворота в любую сторону)------------------------------+++++++++ //display.clearDisplay();// Clear the buffer
    Serial.println(value); // выводим значение при повороте
    DrawLcd132x32clear1int2(value,4,0,0);//DrawLcd132x32clear1int2(int int1,int size1,int x1,int y1)
    //DrawLcd132x32init1row123(value,2);//DrawLcd132x32init1row123(int int1,int row1)
    //string1=IntToString(value);
    //DrawLCD132x32String1(&quot;value&quot;,2,0,9);//DrawString1(String String1,int size1,int x1,int y1)
    //DrawLCD132x32Int1(value,2,0,9);//DrawString1(String String1,int size1,int x1,int y1)
    //DrawLcd132x32int1long1(value,&quot; &quot;,2,0,9);//DrawLcd132x32int1long1(int int1,int long1,int size1,int x1,int y1)
    // delay(2000); display.clearDisplay();
    }
    //lcd--------------------------------------------------------------------------
    }
    //==============================================================

    пойду покушаю

    всех с мужским праздничком
    моя любимая уже готовит носом чую :love:

    хъ

    Круиз-контроль 88 км/ч