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

Нужна помощь ssd 1306 и rotary encoder на шине I2C

Vitalii Mamchur

New member
Всем доброго времени суток!
Пытаюсь подружит NodeMCU с OLED экранчиком ssd 1306 и енкодером на шине I2C. Использую библиотеки Encoder.h и для экрана
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

В результате энкодер показывает какую-то кашу, а при вращении энкодера экранчик просто плывёт. Кто знает как можно решить задачку?
 

Вложения

enjoynering

Well-known member
Энкодер обычный, ротационный, I2C сканер определяет его по адресу 0x3A.
шта?? у KY-40 нету I2C!!! Адрес 0x3A не его.

вот вам библиотека для энкодера - enjoyneering/RotaryEncoder

обязательно добавить 100nF/0.1μF конденсаторов между ногами энкодера и землей. без низ работать не будет. есть пример с прерываниями и с ticker.
 

Vitalii Mamchur

New member
шта?? у KY-40 нету I2C!!! Адрес 0x3A не его.

вот вам библиотека для энкодера - enjoyneering/RotaryEncoder

Ой, не кидайте в меня тапками, я новичок и пишу в соответствующем разделе.

Что касается адреса I2C - то энкодер был единственным подключенным устройством при работе сканера.

Хорошо, если нет шины I2C, как можно сэкономить 2 пина на NodeMCU?
 

enjoynering

Well-known member
вот картинка как подключать. чтоб кнопка энкодера не "дребезжала" добавьте 100nF/0.1μF конденсатор между ногой кнопки и землей.
 

Vitalii Mamchur

New member
вот картинка как подключать. чтоб кнопка энкодера не "дребезжала" добавьте 100nF/0.1μF конденсатор между ногой кнопки и землей.
Давайте сразу уточню, мне к сожалению из этой картинки неясно, к какому пину CLK, DT или SW подключать VCC, а к какому GND?

Также, если я правильно Вас понимаю, при таком способе подключения, при работе с пинами D1 и D2 на NodeMCU, экран и энкодер будут работать нормально?
 

enjoynering

Well-known member
Ой, не кидайте в меня тапками, я новичок и пишу в соответствующем разделе.
Тогда советую взять проект по проще, тк судя по вопросам знания у вас ниже плинтуса (не обижайтесь). Советую погуглить - зачем нужны подтягивающие резисторы на gpio15, gpio0 и gpio2? Какие пины и с каким и ограничениями можно использовать у ESP8266 (посказка - не все и 16 можно)? Где у NodeMCU шины SPI, I2C? Зачем нужен контакт SS (он же CS) у SPI. Зачем нужны подтягивающие резисторы на шине I2C. Что такое прерывания в микроконтроллерах? Что такое планировщик задач , например ticker у ESP8266?

мне к сожалению из этой картинки неясно, к какому пину CLK, DT или SW подключать VCC, а к какому GND?
Вы может сначала пример откроете? По правилам хорошего тона принято сначала ознакомится со всей информацией, а уж потом вопросы задавать. Иначе это не учебный процесс, а любитель халявы.
 

Vitalii Mamchur

New member
Тогда советую взять проект по проще, тк судя по вопросам знания у вас ниже плинтуса (не обижайтесь). Советую погуглить - зачем нужны подтягивающие резисторы на gpio15, gpio0 и gpio2? Какие пины и с каким и ограничениями можно использовать у ESP8266 (посказка - не все и 16 можно)? Где у NodeMCU шины SPI, I2C? Зачем нужен контакт SS (он же CS) у SPI. Зачем нужны подтягивающие резисторы на шине I2C. Что такое прерывания в микроконтроллерах? Что такое планировщик задач , например ticker у ESP8266?
Обижайся и не думал, это действительно так, коды пишу компилируя из примеров и кусков чужих проектов. Пока получалось. А матчасть действительно нужно получить, тут вы правы.
 

enjoynering

Well-known member
я не поленился, потратил 5 мин своего личного времени и накидал вам список вопросов выше, но продублирую их еще раз тк добавил еще один пункт. Как только со всем разберетесь, 99% вопросов отпадут сами.

Советую погуглить (все ответы легко ищутся по ключевым словам) - зачем нужны подтягивающие резисторы на gpio15, gpio0 и gpio2? Какие пины и с каким и ограничениями можно использовать у ESP8266 (подсказка - не все 16 можно)? Где у NodeMCU шины SPI, I2C? Зачем нужен контакт SS (он же CS) у SPI. Зачем нужны подтягивающие резисторы на шине I2C. Что такое прерывания в микроконтроллерах? Что такое планировщик задач , например ticker у ESP8266? Что такое дребезг контактов и как с помощью конденсатора их можно устранить.
 
Сверху Снизу