Кремень КД Реклама
Кремень КМ Реклама

Подключение энкодера к экранам OLED 0.96' (SSD1306) и OLED 1.3' - SH1106 в прошивках MARLIN

Lenivo
Идет загрузка
Загрузка
01.02.2019
17087
19
RepRap

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

31
Добрый день всем!

Получаю достаточно много вопросов в личную почту по подключению энкодеров и экранов OLED 0.96' (SSD1306) и OLED 1.3' - (SH1106) в прошивках MARLIN, поэтому решил написать эту маленькую статью по подключению данных экранов, энкодера и карты памяти.
Подключение энкодера  к экранам OLED 0.96'  (SSD1306) и OLED 1.3' - SH1106 в прошивках MARLIN
Подключение энкодера  к экранам OLED 0.96'  (SSD1306) и OLED 1.3' - SH1106 в прошивках MARLIN
Подключение энкодера  к экранам OLED 0.96'  (SSD1306) и OLED 1.3' - SH1106 в прошивках MARLIN
Экраны хороши тем, что дешевы, малогабаритны, подключаются всего по четырём проводам, имеют питание от 3,3 вольт до 5,5 вольт - то есть их можно поставить и на 8- битные платы, с питанием 5 вольт и на 32 битные платы с питанием 3,3 вольт без переделок и без дополнительных настроек.

Проблема в том , что экран подключается простым раскоментированием строки

#define U8GLIB_SSD1306

И экран начинает работать , а энкодер не подключается. В разных статьях предлагается много способов решить этот вопрос - но надо лезть внутрь прошивки и там править код.

Также если подключить экран OLED 1.3' - (SH1106) - он больше в полтора раза чем 0,96' - по данной строке, то экран заработает, но начальная строка будет изображаться со сбоем.

Для того чтобы нормально заработал OLED 1.3' - (SH1106) надо после строки '#define U8GLIB_SSD1306 ' ВСТАВИТЬ немного другой код.

В файле конфигурации (для MARLIN 2.0 bugfix - это файл 'Configuration.h') это будет выглядеть так:

//

// SSD1306 OLED full graphics generic display

//

//#define U8GLIB_SSD1306

#define U8GLIB_SH1106

Для того чтобы заработал энкодер нужно добавить блок включения энкодера и добавить две строки , чтобы можно было включить карту памяти, подключенной через стандартный кард-ридер. Итоговый код будет выглядеть так:

// SSD1306 OLED full graphics generic display

//

//#define U8GLIB_SSD1306

#define U8GLIB_SH1106

#if ENABLED(U8GLIB_SH1106)

#define BTN_EN1 35

#define BTN_EN2 37

#define BTN_ENC 31

#define SD_DETECT_PIN -1

#define KILL_PIN -1

#endif

SD- карта подключается стандартно раскоментированием строки '#define SDSUPPORT':

/**

* SD CARD

*

* SD Card support is disabled by default. If your controller has an SD slot,

* you must uncomment the following option or it won't work.

*

*/

#define SDSUPPORT

Схема, как подключить энкодера и экран .
Подключение энкодера  к экранам OLED 0.96'  (SSD1306) и OLED 1.3' - SH1106 в прошивках MARLIN
Подключение энкодера  к экранам OLED 0.96'  (SSD1306) и OLED 1.3' - SH1106 в прошивках MARLIN

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

31
Комментарии к статье