Подключение oled дисплея к esp-01s

Тема в разделе "Arduino & Shields", создана пользователем АртемР, 5 май 2021.

  1. АртемР

    АртемР Нуб

    Подскажите плиз, подключал ли кто OLED дисплей к ESP-01s? Никак не получаеться настроить их совместную работу. Тестовый код прошивки:

    Код (C++):
    //  Раскомментируйте для программной реализации шины I2C:              //
    //#define pin_SW_SDA 0                                               // Назначение любого вывода Arduino для работы в качестве линии SDA программной шины I2C.
    //#define pin_SW_SCL 2                                               // Назначение любого вывода Arduino для работы в качестве линии SCL программной шины I2C.
    //  Раскомментируйте для совместимости с большинством плат:            //
    #include <Wire.h>                                                  // Библиотека iarduino_OLED_txt будет использовать методы и функции библиотеки Wire.
    //  Ссылки для ознакомления:                                           //
    //  Подробная информация о подключении модуля к шине I2C:              // http://wiki.iarduino.ru/page/i2c_connection/
    //  Подробная информация о функциях и методах библиотеки:              // http://wiki.iarduino.ru/page/OLED_trema/
    //  Библиотека  iarduino_OLED_txt (текстовая) экономит ОЗУ:            // http://iarduino.ru/file/341.html
    //  Бибилиотека iarduino_OLED     (графическая):                       // http://iarduino.ru/file/340.html
                                                                           //
    #include <iarduino_OLED_txt.h>                                         // Подключаем библиотеку iarduino_OLED_txt.
    iarduino_OLED_txt myOLED(0x3C);                                        // Объявляем объект myOLED, указывая адрес дисплея на шине I2C: 0x3C или 0x3D.
                                                                           //
    extern uint8_t MediumFont[];                                           // Подключаем шрифт MediumFont.
    uint32_t       i;                                                      // Объявляем переменную для хранения времени прошедшего с момента старта скетча.
    int            h, m, s;                                                // Объявляем переменную для хранения времени в часах, минутах и секундах.
                                                                           //
    void setup(){                                                          //
        Serial.begin(9600);

        Serial.print("connecting to ");
         pinMode(LED_BUILTIN, OUTPUT);     //  инициализируем контакт
                                        //  в качестве выходного контакта
        myOLED.begin();                                                    // Инициируем работу с дисплеем.
        myOLED.setFont(MediumFont);                                        // Указываем шрифт который требуется использовать для вывода цифр и текста.
    }                                                                      //
    void loop(){                                                           //
        myOLED.begin();          
         myOLED.fillScr(1);
        i=millis();                                                        // Получаем количество миллисекунд прошедшее с момента старта скетча.
        if(i%1000==0){ delay(1);                                           // Выполняем скетч 1 раз в секунду. Так как условие истинно в течении 1 миллисекунды, то устанавливаем задержку в 1 миллисекунду.
            i/=1000; h=i/60/60%24; m=i/60%60; s=i%60;                      // Рассчитываем часы, минуты и секунды.
                                       myOLED.setCursor(16,4);             // Устанавливаем курсор в 16 столбец 4 строки.
            if(h<10){myOLED.print(0);} myOLED.print(h);                    // Выводим часы прошедшие с момента старта скетча, в формате ЧЧ.
                                       myOLED.print(":");                  // Выводим текст состоящий из одного символа «:»
            if(m<10){myOLED.print(0);} myOLED.print(m);                    // Выводим минуты прошедшие с момента старта скетча, в формате ММ.
                                       myOLED.print(":");                  // Выводим текст состоящий из одного символа «:»
            if(s<10){myOLED.print(0);} myOLED.print(s);
         
             Serial.print(s); // Выводим секунды прошедшие с момента старта скетча, в формате СС.
        }
    digitalWrite(LED_BUILTIN, LOW);

      delay(1000);                

      digitalWrite(LED_BUILTIN, HIGH);

      delay(2000);                      
    Схема подключения: [​IMG]

    После подключения esp активируется, мигает диодом, но на дисплее так ничего и не появляется. В чем может быть проблема и как это исправить? Заранее спасибо.

    Тему перенес в нужный раздел. Тут просьба удалить.
     
    Последнее редактирование: 5 май 2021
  2. Asper Daffy

    Asper Daffy Иксперд

    резисторы-то от линий SDA и SCL к питанию поставьте. Любые от 3 до 8 килоом.
     
  3. Asper Daffy

    Asper Daffy Иксперд

    Смотрим на эту схему и думаем, чего не хватает в Вашей

    [​IMG]
     
  4. Рокки1945

    Рокки1945 Гуру

    там на модуле должны быть - может питание маловато - 3.3?
     
  5. Asper Daffy

    Asper Daffy Иксперд

    Кому должны? На моём дисплейчике не было. Я тоже думал, что "должны" пока не наловился глюков и не поставил.
     
    issaom нравится это.
  6. АртемР

    АртемР Нуб

    Хорошо, спасибо. Днем попробую. Результат напишу.
     
  7. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Поиграйте с Адресом дисплея. Китаёзы "ложили" на даташит. Может и 3С и 3D, как им вступит. Сам тыркался. Резисторов не ставил, всё работает прямо сейчас. Библа от Жардуино шибко жрет память, хотя надежная. Библа от Адского Фрукта капризней, но экономнее намного.. Капризность проявляется в русификации. Строка не должна быть длиннее 17 символов, иначе - глюки. Сама программка динамической русификации проста. Откуда лезет артефакт - так и не понял.
     
    Последнее редактирование: 6 май 2021
  8. Рокки1945

    Рокки1945 Гуру

    Ладно - всё таки рискну и поставлю - что не в резисторах дело - может с питанием разобраться?
    Обычно по отдельности сначала всё проверяют...
     
  9. Airbus

    Airbus Радиохулиган Модератор

    Yes sir! Сделано! Весна Сэр!
     
  10. parovoZZ

    parovoZZ Гуру

    Библы, журдино, фрукты...главное, ХВОСТ!
    [​IMG]
     
    Asper Daffy нравится это.
  11. Asper Daffy

    Asper Daffy Иксперд

    Где хвост, там и жопа :-(
     
    Andrey12 нравится это.