• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

esp-01 и 1602 lcd

doleynikov

New member
Приветствую.
Хочу подключить пятивольтовый i2c LCD 1602 к esp-01. Если напряжение только 3.3v - все работает, но дисплей бледен и слегка мерцает. Если подключаю дисплей к 5v - ничего не работает - вероятно превышены уровни на i2c пинах. благо, ничего не спалил. Нужно ставить конвертор логических уровней? Можно сделать еще как-то?
 

doleynikov

New member
Информация для интересующихся ;-)
Я - баклажан! ошибся в коммутации: давал отдельное питание на дисплей и (внимание!) не соединял замлю с GND модуля! А итоге дисплей, естественно, не отображал ничего. Подключил аккумулятор на 3.7v ко всей схеме - дисплей стал достаточно ярким, но esp заметно греется . Наверное для нее нужен стабилизатор на 3.3v
 

Sc0rpion

New member
@doleynikov Привет, если не сложно поясни чуть по подробней схему подключения, а то сижу уже два дня и в упор понять не могу почему не работает если питать экран отдельными 5v от USB.
 

doleynikov

New member
Ну вот она передо мной стоит: у меня на i2c висят дисплей 1602 и часики на 1307

+--------gnd (общая земля)
| +------sda
| | +----scl
1_2_3_4--rx
5_6_7_8--vcc(3.3v)
| | +----rst
| +------ch_pd
+--------tx

плюс питания дисплея - это +5V,
gnd дисплея соединить с общей "землей"
плюс питания esp01 - 3,3v
-----------------------------------------------------------

Код:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "RTClib.h"
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
WiFiUDP udp;
LiquidCrystal_I2C lcd(0x27, 16, 2);
RTC_DS1307 rtc;


void setup()
{
  Wire.begin(0, 2); // Wire.begin([SDA], [SCL])
  lcd.init(); // initialize the lcd
  lcd.backlight();
  lcd.clear();
.......
}
 

doleynikov

New member
сорри, я давно не обращался к этим железкам. На пару постов выше у меня описано подключение (это схематическое изображение ESP01, где 1_2_3_4 и 5_6_7_8- контакты:

+--------gnd (общая земля)
| +------sda
| | +----scl
1_2_3_4--rx
5_6_7_8--vcc(3.3v)
| | +----rst
| +------ch_pd
+--------tx



плюс питания дисплея - это +5V,
gnd дисплея соединить с общей "землей"
плюс питания esp01 - 3,3v

там же кусок кода, который отвечает за инициализацию всей шарманки. Остается только часики, какие нибудь из примера вытащить, чтобы по i2c слали индикацию и читали RTC.
 

tvhost

New member
+--------gnd (общая земля)
| +------sda
| | +----scl
1_2_3_4--rx
5_6_7_8--vcc(3.3v)
| | +----rst
| +------ch_pd
+--------tx
провозился я целый день с подключением индикатора 1602 к esp-01.
показывал он всякие иероглифы у меня. удалось разобраться только с помощью анализатора.
1. схема подключения выше правильная. а вот код нет. надо Wire.begin(2, 0);
2. библиотека ESP8266-I2C-LCD1602 которая гуляет на просторах инета отказывается компилиться под версией 3.0.x плат ESP8266 (Arduino IDE). Чтобы это исправить, открываем её файл LiquidCrystal_I2C.cpp и добавляем:
C++:
inline size_t LiquidCrystal_I2C::write(uint8_t value) {
  send(value, Rs);
  [B]return 1;[/B]
}
На всякий случай, прикрепляю исправленную библиотеку ESP8266-I2C-LCD1602
 

Вложения

Сверху Снизу