OLED 0.96, 0X27

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем port-Maksim, 22 окт 2019.

  1. Igor68

    Igor68 Гуру

    DetSimen и port-Maksim нравится это.
  2. port-Maksim

    port-Maksim Нерд

    2019-10-23_15-32-12.png
     
    Последнее редактирование: 23 окт 2019
  3. Andrey12

    Andrey12 Гик

    Уже хоть что то, подтяжка к +5 вольт резисторами 4,7кОм есть у SDA SCL?
     
    DetSimen и port-Maksim нравится это.
  4. port-Maksim

    port-Maksim Нерд

     

    Вложения:

  5. port-Maksim

    port-Maksim Нерд

    лично я не припаивал
     
  6. parovoZZ

    parovoZZ Гуру

    они должны быть на модуле. Без них вообще ничего работать не будет.
     
    port-Maksim нравится это.
  7. Andrey12

    Andrey12 Гик

    Хуже не будет, для проверки припаяй от SDA и SCL 2 резистора на 5-10кОМ к +5 вольтам, ну поспотри как подтяжка делается линий SDA SCL.
    Да и еще, провода какой длинны от ардуины до дисплея?

    upload_2019-10-23_12-17-4.png
     
  8. Igor68

    Igor68 Гуру

    Помница там было заполнение нулём всего буфера, перед отрисовкой в нём и уже последующим выводом на экран. А так же в инициализации устройства указание наяала экрана и другие параметры. Заполнить надо сколько-то байт в дисплей.
    ...
     
  9. parovoZZ

    parovoZZ Гуру

    один бит - это признак чтения или записи.
     
  10. Andrey12

    Andrey12 Гик

    Точно, тут есть команда myOLED.clrScr();
    можно добавить после myOLED.begin();
    Но вот что странно, какоето непонятное смещение идет.

    Как вариант если косяки останутся то попробовать другую библиотеку, например https://github.com/olikraus/u8glib
     
    DetSimen нравится это.
  11. Igor68

    Igor68 Гуру

    Вот я делал самодельную инициализацию дисплея на малине... точнее стырил откуда-то.
    Код (C++):
    void oledSetup(void)
    {
         //Wire.begin();
        //процесс инициализации честно скопирован из даташита на дисплей.
        oledCommand(0xAE);//выключение дисплея
        oledCommand(0xD5);
        oledCommand(0x80);
        oledCommand(0xD3);
        oledCommand(0x0);
        oledCommand(0x40);
        oledCommand(0x8D);//включение емкостного умножителя
        oledCommand(0x14);
        oledCommand(0x20);//настройка адресации
        oledCommand(0x00);// 0х00 для горизонтальной, 0х01 для вертикальной, 0х02 для постраничной адресации
        oledCommand(0xA1);//отражение по горизонтали, для отображения справа налево необходимо использовать команду 0xA0
        oledCommand(0xC8);//отражение по вертикали, 0xC0 для переворота изображения по вертикали.
        //Одновременное использование команд 0xC8 и 0xA1 или 0xA0 и 0xC0 позволяет повернуть изображение на 180 градусов.
        oledCommand(0xDA);
        oledCommand(0x12);
        oledCommand(0x81);//установка контрастности дисплея
        oledCommand(0xCF);
        oledCommand(0xD9);
        oledCommand(0xF1);
        oledCommand(0xDB);
        oledCommand(0x40);
        oledCommand(0xA4);
        oledCommand(0xA6);//инверсия дисплея, 0xA6 для отключения инверсии, 0xA7 для включения инверсии цвета.
        oledCommand(0xAF);//включение дисплея
        oledClear();//Используем функцию очистки дисплея.
    }
     
    DetSimen и Andrey12 нравится это.
  12. parovoZZ

    parovoZZ Гуру

    тырить не хорошо. Надо отнести обратно и попросить прощения)

    а можно посмотреть на
    Код (C++):
    oledCommand ()
     
  13. Igor68

    Igor68 Гуру

    Да там же по ссылке лежит... ссылка выше.

    ну или:
    http://forum.amperka.ru/threads/oled-0-96-128x64-iic.17801/
    А вот где тырил не помню. Через гугл это было.
     
    DetSimen нравится это.