Wemos: дисплей 16x2 ничего не показывает

Я подключил ЖК-дисплей 16x2 к Arduino Uno. Затем я протестировал код «Hello, Word», и он отлично работает. Теперь я хочу сделать то же самое с Wemos D1 Mini, но это не работает.

Здесь Wemos не подключен к USB:

ЖК-дисплей 16x2, подключенный к Wemos (спереди) ЖК-дисплей 16x2, подключенный к Wemos (сзади)

Это код "Hello, World". Мне нужно было изменить название пинов (может в этом проблема):

#include <LiquidCrystal.h>

const int rs = 8, en = 7, d4 = D5, d5 = D4, d6 = D3, d7 = D2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  lcd.begin(16, 2);
  lcd.print("hello, world!");
}

void loop() {
  lcd.setCursor(0, 1);
  lcd.print(millis() / 1000);
}

Вот результат (потенциометр работает идеально):

Дисплей включен, но пуст

, 👍1

Обсуждение

Первым шагом может быть очистка кода в loop(), чтобы вы могли сузить проблему. Просто выполните действия в setup(), чтобы они выполнялись только один раз. После того, как вы получите там текст, вы можете перейти к более сложным действиям. Однако следует отметить, что платы Wemos рассчитаны на 3,3 В, а ЖК-дисплеи обычно на 5 В. Однако не похоже, что вы меняете уровень., @jose can u c


3 ответа


0

Три возможности (из вашего описания невозможно быть более точным):

  1. Дисплей не подключен к контактам, указанным в скетче.
  2. Дисплей не принимает сигналы 3,3 В при работе от 5 В.
  3. Дисплей не работает при питании от 3,3 В.

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

Вы можете:

  1. Используйте осциллограф или логический анализатор, чтобы убедиться, что используются правильные контакты,
  2. Попробуйте запитать дисплей от 3,3 В, если сейчас он питается от 5 В.
  3. Попробуйте запитать дисплей от 5 В, если сейчас он питается от 3,3 В.

Если он питается от 5 В, вы можете рассмотреть возможность добавления некоторого преобразования логического уровня, чтобы усилить сигналы ввода-вывода от Wemos до 5 В.

,

2

Вы делаете это на wemos d1 mini, не так ли?

Тогда вы не включаете файлы заголовков, Вы проверили, что в «LiquidCrystal.h» есть определения распиновки wemos?

Ваш ЖК-дисплей в порядке, n wemos тоже, просто ваша конфигурация неверна.

Проверьте их и обновите здесь.

,

2

Несмотря на то, что это старый вопрос, я столкнулся с точно такой же проблемой.
Проблема в том, что нумерация контактов на wemos D1 не такая, как на arduino.
Я следовал руководству по жидкокристаллическому arduino, но изменил нумерацию контактов на

const int rs = 12, en = 13, d4 = 14, d5 = 4, d6 = 5, d7 = 16;

Теперь, по крайней мере у меня, дисплей работает как надо

,

thx, или можно определить так: const int rs = D6, en = D7, d4 = D5, d5 = D2, d6 = D1, d7 = D0;, @To Kra