Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Во время работы над новым проектом я столкнулся с проблемой, когда я хотел управлять подсветкой и контрастностью ЖК-дисплея 1602 через Arduino, но дисплей действительно мерцал.
Шаг 1. Типичный вариант использования
В типичном случае использования контрастность дисплея регулируется с помощью переменного резистора в соответствии с таблицей данных. В таком случае через резистор мы можем отрегулировать напряжение, которое видно на выводе V0, и соответственно отрегулировать контраст. С Arduino лучшее, что мы можем вывести, - это ШИМ-сигнал с другим циклом, но, к сожалению, модуль не может это отображать.
Шаг 2. Код, использованный в примере
Прежде чем перейти к схеме, как мы можем это исправить, позвольте мне объяснить вам код, который я использую.
Первое, что нам нужно сделать, это включить библиотеку Liquid Crystal, чтобы мы могли подключиться к дисплею. Затем мы настраиваем ЖК-дисплей с контактами, к которым у нас подключен наш дисплей, и дополнительно определяем контакты, к которым у нас подключены контакты подсветки и контраста. Контакт управления контрастностью на дисплее - V0, и он подключен к контакту 6 на Arduino, а контакт управления подсветкой отмечен как A, и, поскольку это в основном светодиод, он подключен через резистор 220 Ом к контакту 10 на Arduino..
В функции настройки мы сначала устанавливаем яркость дисплея на максимум, а затем запускаем связь с ЖК-дисплеем. Чтобы убедиться, что он работает правильно, мы отображаем сообщение «hello world» и ждем около полсекунды, чтобы убедиться, что результат в порядке.
Очень часто, в зависимости от состояния вывода V0, вы можете столкнуться с проблемой отсутствия отображения ничего, даже если ожидание было другим. Причина этого - значение контраста булавки. Если контраст установлен слишком высоко, дисплей будет едва виден, поэтому нам нужно уменьшить его.
В разделе цикла кода мы сначала очищаем содержимое ЖК-дисплея, и, поскольку мы собираемся программно изменить контраст, мы отображаем текст, а в цикле мы обновляем вывод вывода и отображаем текущее значение на дисплее во второй строке.
Шаг 3. Реализация RC-фильтра нижних частот
Как видите, вроде работает, но дисплей весь мерцает. Причина этого в том, что дисплей ожидает фиксированное напряжение, но вместо этого получает сигнал ШИМ от Arduino. Чтобы исправить это, мы добавляем очень простой RC-фильтр нижних частот, чтобы выходное напряжение могло быть отфильтровано, и мы получили относительно стабильный выходной сигнал.
Фильтр нижних частот состоит из резистора 1 кОм, который с одной стороны подключен к контакту 6 на Arduino, а затем к V0 на дисплее. Конденсатор емкостью 10 мкФ подсоединен отрицательной стороной к земле, а положительный - к выводу V0. Резистор заряжает конденсатор импульсами ШИМ и, в зависимости от рабочих циклов, заряжается до разного напряжения.
Шаг 4. Программное управление подсветкой
Подобно тому, как мы устанавливаем контраст, мы можем сделать то же самое с выводом подсветки, но без необходимости добавления фильтра нижних частот, поскольку светодиод подсветки не виден при таком быстром включении и выключении.
Шаг 5: Наслаждайтесь
Я надеюсь, что этот очень простой трюк поможет вам в следующем проекте. Если вам понравилось это руководство, рассмотрите возможность подписаться на меня и подписаться на мой канал YouTube.
Попробуйте код на YouTube!
Ваше здоровье!