Оглавление:

ЖК-дисплей 5 В с Arduino Due 3,3 В I2C: 5 шагов
ЖК-дисплей 5 В с Arduino Due 3,3 В I2C: 5 шагов

Видео: ЖК-дисплей 5 В с Arduino Due 3,3 В I2C: 5 шагов

Видео: ЖК-дисплей 5 В с Arduino Due 3,3 В I2C: 5 шагов
Видео: Текстовые LCD дисплей на контроллере HD44780, Уроки Arduino 2024, Июль
Anonim
ЖК-дисплей 5 В с Arduino Due 3.3V I2C
ЖК-дисплей 5 В с Arduino Due 3.3V I2C

Этот пост призван объяснить более простой способ использования Arduino Due (или другой платы 3,3 В) с популярным ЖК-дисплеем 16x2 с модулем адаптера I2C.

Первоначальная проблема заключается в том, что ЖК-дисплею требуется 5 В для правильной работы подсветки, но контакты SCL и SDA должны работать при 3,3 В для связи с Arduino Due, не причиняя вреда. Чтобы решить эту проблему, я нашел два варианта:

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

Другой способ, который я нашел, - это просто отсоединить 2 подтягивающих резистора в «рюкзаке адаптера I2C» от ЖК-дисплея. Помимо того, что он намного проще, у него есть другие преимущества, которые объясняются в сравнении в конце. Этот метод является основным в этой публикации

Запасы

Arduino Due

ЖК-дисплей 16x2 с адаптерным модулем I2C

Паяльник

Паяльный насос или фитиль для пайки

Пинцет

Шаг 1: источник решения

Решение было изобретено не мной, я видел довольно хорошее предложение и объяснение на форуме Arduino по ссылке ниже, которую я воспроизведу в этом посте.

forum.arduino.cc/index.php?topic=553725.0

Ответ от: david_prentice

Я не смог найти ни одного полного руководства в Интернете, и, поскольку это очень распространенная проблема, я пытаюсь подробно представить решение здесь, засвидетельствовать, что оно действительно работает, и добавить информацию, которая могла бы смягчить некоторый скептицизм по поводу ее результатов.

Шаг 2: объяснение

Устройства

Для работы связи I2C требуются подтягивающие резисторы, подключенные к контактам SDA и SCL. Это потому, что устройства устанавливают эти контакты только в НИЗКИЙ уровень во время связи. Чтобы представить ВЫСОКИЙ, он должен только не отправлять НИЗКИЙ, и благодаря подтягиваниям он переходит в ВЫСОКИЙ. (это понимание будет очень важно позже)

ЖК-дисплей «Рюкзак I2C» имеет два подтягивающих резистора 4K7, которые удовлетворяют требованиям I2C. Но поскольку они подключены к Vcc, если вы используете 5 В, они потянут SDA и SCL до 5 В.

Если вы посмотрите на таблицу, то увидите, что, в отличие от других плат, Due уже имеет встроенные подтягивающие резисторы 1K5 на основных выводах SDA, SCL, которые подтягивают их к напряжению 3,3 В.

Тесты

  • Дисплей LCD -> Arduino
  • Земля -> Земля
  • Vcc -> 5 В
  • ПДД -> ПДД
  • SCL -> SCL

Если вы просто подключите ЖК-дисплей к Due (следуя схеме выше), подтяжки 1k5 (или 1k0) Due, подключенные к 3,3 В, и подтяжки ЖК-дисплея 4K7, подключенные к 5 В, приведут к незанятым линиям I2C при 3,7 В (3,6 В с 1к0). Это нехорошо, поскольку в таблице данных Due указано максимальное напряжение 3,6 В для линий ввода-вывода.

При тестировании этого сценария только с ЖК-дисплеем я получил 3, 56 В. Добавив модуль EEPROM к тем же SDA и SCL, он поднялся до 3,606 В. В обоих случаях все работало нормально, но они далеки от идеального напряжения. уровни с учетом оговоренного максимума 3,6 В.

Так что да, есть шанс, что он будет работать так же, как и мой, без каких-либо изменений. Но уровень напряжения все еще далек от идеала, и некоторые несоответствия на подтяжке Due или LCD могут привести к тому, что оно превысит предел 3,6 В. (Было бы желательно, по крайней мере, перед тем, как тщательно проверить потенциометром 20K или 100K, какое наименьшее сопротивление между 5 В и выводами SCL / SDA, прежде чем они достигнут 3,6 В, хотя остальная часть решения намного безопаснее и, вероятно, проще)

Решение

Предлагаемое решение состоит в том, чтобы просто удалить подтягивающие резисторы из рюкзака с ЖК-дисплеем, которые пытаются подтянуть линию до 5 В. Затем останутся только подтягивающие резисторы Due на плате, подтягивающие линии SCL и SDA к 3,3 В.. Он работал отлично, поддерживая на холостом ходу напряжение около 3,262 В!

Связи остаются прежними:

  • ЖК-дисплей -> Arduino
  • Земля -> Земля
  • Vcc -> 5 В
  • ПДД -> ПДД
  • SCL -> SCL

Если вам интересно, не подтягивает ли ЖК-дисплей линию к 5 В для представления ВЫСОКОГО уровня при обмене данными, помните, что на I2C устройства подтягивают линии только к НИЗКОМУ, представляя ВЫСОКИЙ сигнал, когда он не создает помех, который будет составлять 3,3 В от Подтягивания на борту Дуэ.

Кроме того, 3,3 В достаточно для рюкзака I2C, чтобы рассматривать его как сигнал HIGH.

Шаг 3: Определите и удалите резисторы

Определите и удалите резисторы
Определите и удалите резисторы
Определите и удалите резисторы
Определите и удалите резисторы

На изображении выше красным цветом показаны подтягивающие резисторы, которые я нашел в своем модуле.

Идентифицировать

Поскольку рюкзак адаптера LCD I2C может отличаться, резисторы могут быть разных конфигураций. Для определения подтягивающих резисторов можно использовать мультиметр с проверкой целостности цепи. Каждый подтягивающий резистор должен иметь один конец, подключенный к выводу SCL или SDA, а другой конец - к Vcc.

В моем случае на плате было три резистора 4K7 (472 в коде SMD). Только двое из них удовлетворяли вышеуказанным требованиям, указывая на то, что это именно те подтягивания, которые мы искали!

В качестве дополнительной меры предосторожности (если по какой-то причине они не были 4K7) я также протестировал другие резисторы и подтвердил, что ни один из них не удовлетворяет требованиям для подтягивания.

Удалять

Теперь все, что вам нужно сделать, это избавиться от них! Будет проще, если у вас есть паяльная помпа или фитиль для пайки и пинцет.

Шаг 4: Сравнение решений

Двунаправленный логический преобразователь уровня (LLC)

Плюсы:

Не требует паяльного оборудования или навыков

Минусы:

Рекламируйте больше кабелей и LLC в список компонентов вашего списка

Соединения Мессье с дополнительными компонентами

Чуть дороже

Отпаяйте подтягивающие резисторы ЖК-дисплея

Плюсы:

Более чистый конечный результат

Вероятно, вы сможете сделать это сразу, не дожидаясь LLC

Особенно хорошо, если вы хотите уменьшить количество компонентов и сложность сборки в сложном проекте или который вы хотите воспроизвести

Минусы:

Изменяет схему ЖК-дисплея (если вы хотите, чтобы он был «готов к использованию» с Uno, уже имея подтяжки 4K7, вы можете отменить изменения, перепаяв их)

Шаг 5: Заключительные соображения

Я надеюсь, что это руководство проливает свет на эту проблему совместимости и некоторые из ее возможных решений.

Если у вас есть какие-либо идеи по улучшению, более подробные объяснения, новые решения или обнаружены какие-либо ошибки в сообщении, сообщите мне в комментариях!:)

Рекомендуемые: