• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь не работает ssd1306 (lua)

mihail_do

New member
здравствуйте! прошу помощи с ssd1306. не могу завести его через lua. плата nodemcu v3, библиотека u8g2 включена в прошивку, в опциях выбрал ssd1306_12c_128x64_noname
проверил дисплей через arduino ide - работает. в скетче arduino ide для инициализации дисплея выбрал:
Код:
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ 5, /* data=*/ 4, /* reset=*/ U8X8_PIN_NONE);   // All Boards without Reset of the Display
дисплей

вот пример на lua:
Код:
i2c.setup(0, 2, 1, i2c.SLOW)
disp = u8g2.ssd1306_i2c_128x64_noname(0, 0x3c)
disp:clearBuffer()
disp:setPowerSave(0)
disp:setFont(u8g2.font_6x10_tf)
disp:setDrawColor(1)
disp:setFontDirection(0)
disp:drawStr( 10, 10, "qwertyuiop")
перепробовал разные параметры, рисовать фигуры и т.п.
esplorer не ругается

соединение с дисплеем явно есть, т.к. после тестового скетча из arduino ide на дисплее осталось изображение, которое не пропало после прошивки на nodemcu. при запуске программы на lua изображение исчезло, видимо команда disp:clearBuffer() сработала.
 

AlexKont

New member
разобрался сам. надо было всего лишь дописать:
Код:
disp:sendBuffer()
Да, а как же с этим? В конструкторе для OLED ssd3106 в скетче вы указали для clok 5 (pin для scl), а для data 4 (pin для sda). А в конструкторе для Lua скрипта sda 2 scl 1, это в строке i2c.setup(id, sda, scl, i2c.SLOW). Это как у вас получилось, платы разные?
У меня тоже дисплей молчит, а код на Lua ошибок не сообщает.
 

AlexKont

New member
Да, а как же с этим? В конструкторе для OLED ssd3106 в скетче вы указали для clok 5 (pin для scl), а для data 4 (pin для sda). А в конструкторе для Lua скрипта sda 2 scl 1, это в строке i2c.setup(id, sda, scl, i2c.SLOW). Это как у вас получилось, платы разные?
У меня тоже дисплей молчит, а код на Lua ошибок не сообщает.
Да, т.к. у меня пины scl 4 sda 5 и на скетче в Ардуино все работало, то переставил местами Lua sda 1 и scl 2, дисплей зажил нормальной жизнью.:)
Ха-ха, видимо писавший библиотеку модуля так обозначил d1 и d2 с платы самого модуля!:(
 

mihail_do

New member
Да, а как же с этим? В конструкторе для OLED ssd3106 в скетче вы указали для clok 5 (pin для scl), а для data 4 (pin для sda). А в конструкторе для Lua скрипта sda 2 scl 1, это в строке i2c.setup(id, sda, scl, i2c.SLOW). Это как у вас получилось, платы разные?
У меня тоже дисплей молчит, а код на Lua ошибок не сообщает.
в arduino ide указываются gpio, в nodemcu lua - номера пинов. пин D1 = gpio 5, пин D2 = gpio 4
 
Сверху Снизу