• Система автоматизации с открытым исходным кодом на базе 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
 

Вложения

Сверху Снизу