Как заставить модуль I2C (для 1602 и 2004) работать с ЖК-дисплеем 1601 на Arduino Micro
Я новичок в Arduino и хочу собрать коробку с кнопками. Когда я покупал детали, я не следил за характеристиками модуля I2C. Когда я попытался напечатать что-нибудь на ЖК-дисплее, ничего не произошло (в ретроспективе это логично). Я бы не хотел покупать новый ЖК-дисплей.
Как заставить ЖК-дисплей работать с модулем I2c?
ЖК-экран — http://cdn-reichelt.de/documents/datenblatt/A500/DEM16101SYH.pdf
Модуль I2C — http://mantech.co.za/datasheets/products/lcd2004-i2c .pdf
подключено правильно (VCC к 5 В, GND к GND, SDA к SDA и SCL к SCL)
Я использовал код "Hello World" Пример, включенный в библиотеку LiquidCrystal_I2C, но с некоторыми изменениями:
//YWROBOT
//Совместимость с Arduino IDE 1.0
// Версия библиотеки: 1.1
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,1); //вместо LiquidCrystal_I2C lcd(0x27,20,4);
void setup()
{
lcd.init(); // инициализируем ЖК-дисплей
lcd.init();
// Вывести сообщение на ЖК-дисплей.
lcd.backlight();
lcd.setCursor(3,0);
lcd.print("Hello, world!");
lcd.setCursor(2,0); // вместо lcd.setCursor(2,1);
lcd.print("Ywrobot Arduino!");
lcd.setCursor(0,0); //вместо lcd.setCursor(0,2);
lcd.print("Arduino LCM IIC 2004");
lcd.setCursor(2,0); //вместо lcd.setCursor(2,3);
lcd.print("Power By Ec-yuan!");
}
void loop()
{
}
@Chritzeltopf, 👍0
Обсуждение1 ответ
Добро пожаловать, Критцелопф! Да, по определению I2C требуются подтягивающие резисторы. Ваша ссылка на драйвер показывает, что они не включены, и нет схемы, указывающей на обратное. Шина I2C управляется полупроводниковыми устройствами с открытым коллектором/стоком. Эта конфигурация потянет линию на низкий уровень, но не будет подавать в нее какой-либо ток, за исключением, возможно, некоторой утечки. Когда выходы устройства I2C отключены, шина подтягивается к высокому уровню или переводится в рецессивное состояние с помощью подтягивающих резисторов. Когда одно или несколько устройств включаются, шина теперь находится в доминирующем состоянии или на низком уровне. Эта конфигурация позволяет включать и выключать что угодно, не повреждая другие устройства на шине. Мне нравится, когда подтягивание составляет 4,7 К для 5 В и около 3,3 К для 3 В 3 В.
Некоторые модули поставляются с подтяжками, которые постоянно подключены, другие выбираются с помощью перемычек и т. д. Это НЕ A0 - A? перемычки, которые являются линиями выбора адреса. Я всегда проверяю модули, чтобы определить, включены ли подтягивания, и настраиваю другие сопротивления, чтобы получить соответствующее значение, иногда даже удаляя их.
Так что я должен попробовать еще раз с "pinMode(2, INPUT_PULLUP)"; pinMode(3, INPUT_PULLUP) ;, @Chritzeltopf
Библиотека, которую я использую, не позволяет этого, поскольку она программирует их так, как хочет. Он не сообщает, он просто делает. Самый безопасный и, скорее всего, работающий — это использовать рекомендуемые внешние резисторы. Как только вы заработаете, попробуйте свою идею подтягивания. Помните, что они находятся где-то в диапазоне от 30 до 50 тыс., @Gil
- NodeMCU с RFID RC522 и LCD-модулем интерфейса I2C вместе
- ЖК-дисплей I2C отображает странные символы
- Экран LCD 16*02 I2C показывает только первый напечатанный символ
- Sainsmart LCD 2004 - проблема с библиотекой LiquidCrytal_I2C, не удается скомпилировать
- Что означают цифры позади lcd (0x27)?
- ATtiny85 I2C ЖК
- Документы по использованию i2C LCD с библиотекой Newliquidcrystal_1.3.5
- 16/2 arduino I2C ЖК-дисплей не загорается?
Привет @Chritzeltopf, добро пожаловать в Stack Overflow. Если вы отредактируете свой вопрос, включив в него код, который вы пробовали, какой тип ЖК-дисплея вы подключаете и как вы его подключили, кто-то может вам помочь. В противном случае мы знаем о том, что вы делаете, еще меньше, чем вы сами., @romkey
Извините :(, я думал, что предоставленной информации будет достаточно для вопроса. Добавил информацию :), @Chritzeltopf
Да, это одна линия. Это проблема, @Chritzeltopf
какие соединения вы сделали? ... модуль I2C передает 8 бит данных на ЖК-модуль ... сигналы E, R/S и RE на ЖК-дисплей должны генерироваться Arduino, @jsotola
@VE7JRO ничего не происходит, @Chritzeltopf
@jsotola, что именно ты хочешь знать? Я действительно не понимаю?, @Chritzeltopf
Как насчет этой библиотеки, просто чтобы проверить, сможете ли вы заставить ее работать с простым скетчем? https://github.com/AlexMartin17/Arduino-LCD-библиотека-16x1, @VE7JRO
Добро пожаловать! Вы упомянули, как вы его подключили, но схема всегда лучше. Куда вы поместили подтягивающие резисторы и вернуло ли сканирование I2C правильный порт?, @Gil
@Gil Мне нужны подтягивающие резисторы на выводах SDA и SCL, чтобы использовать модуль I2C? Скетч сканирования I2C, который я использовал, не работал (адрес не был напечатан в серийном номере), поэтому я предполагаю, что модуль I2C не связывался с ЖК-дисплеем?, @Chritzeltopf
Я думаю, мы только что нашли вашу проблему. Это случается часто, я вижу это несколько раз в неделю. Продолжайте хорошую работу., @Gil