• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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? Что такое дребезг контактов и как с помощью конденсатора их можно устранить.
 
Сверху Снизу