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

Решено Wemos d1r2 и lcd1602 без i2c

afefelov

New member
Коллеги, добрый день!

Занимаюсь автоматизацией теплицы и потихоньку осваиваю вемос. Столкнулся с непонятной штукой: экран не работает при подключении к d1r2. Подключение стандартное 4х битовое - проверил с mega2560 - прекрасно работает. Вместо меги подключаю вемос - и ничего.
У меня вемос синий c чипом от AI-Thinker, его распиновка отличается от ванильного.

У меня подозрения на то, что модуль переходит в какой-то специальный режим, но подтвердить или опровергнуть я не могу. Подскажите, плз, куда копать? Прошить nodemcu и там попробовать?

Код:
#include <LiquidCrystal.h>
#define D0 3
#define D1 1
#define D2 16
#define D3 5
#define D4 4
#define D5 0
#define D6 2
#define D7 14
#define D8 12
#define D9 13
#define D10 14
#define D11 13
#define D12 12
#define D13 14
#define D14 4
#define D15 5

LiquidCrystal lcd(D7,D6,D5,D4,D3,D2); // (RS, E, DB4, DB5, DB6, DB7)
void setup(){
 
  lcd.begin(16, 2);                  // Задаем размерность экрана

  lcd.setCursor(0, 0);              // Устанавливаем курсор в начало 1 строки
  lcd.print("Hello, world!");       // Выводим текст

}

void loop(){

}
 

Юрий Ботов

Moderator
Команда форума
Не надо ноги подряд выбирать.
Работа с GPIO (VGPIO) на ESP8266
"ESP8266 имеет 15 полноценных GPIO выходов. 6 из которых заняты микросхемой flash памяти. При этом GPIO 0,1,2,3,15 имеют системные функции и имеют ограничения при использовании - не рекомендуется их использовать для сухого контакта, кнопок, прерываний (хотя в некоторых случаях работать будет). Для штатной работы модуля ESP8266 GPIO 0 (D5) и 2 (D6) не должны быть подтянуты к минусу при старте модуля. GPIO 15 для старта должен подтянут к минусу через резистор 10кОм. GPIO 1 соотвествует вывод TXD. GPIO 3 - RXD.

Так же ESP8266 имеет отдельный GPIO16 , который управляется через RTC регистры, этот GPIO имеет ограничения при использовании и в прошивке используется только для режима OUTPUT (выход). Подключение датчиков к этому выводу невозможно. GPIO16 (D2)используется для пробуждения модуля при использовании спящего режима, если подключить его к выводу RESET."
 

afefelov

New member
Юрий, спасибо большое за ответ, и ссылку. Проверю вечером дома - отпишусь.
 

tretyakov_sa

Moderator
Команда форума
Код:
// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 13, 4, 0, 2, 14);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.setCursor(0,0);
  lcd.print("LCD Key Shield");
  lcd.setCursor(0,1);
  lcd.print("Press Key:");
}
void loop() {
  int x;
  x = analogRead (A0);
  lcd.setCursor(10,1);
   lcd.print ("    ");
   lcd.setCursor(10,1);
   lcd.print (x);
   delay(500);
  
}
Вот код который я использовал с LCD_Keypad_Shield
 

afefelov

New member
Нде, кучу времени потратил, у меня не стандартный Wemos, как я уже писал, у него специфическая распиновка. Которая, на обратной стороне платы, черт возьми!
Вобщем, заработало, спасибо тем, кто помог!
 
Сверху Снизу