Как подключить 37-контактный TFT-дисплей 240x320 к Arduino Nano?
У меня есть старый TFT-дисплей (извлеченный из плеера MP5), и я не могу понять, как подключить его к Arduino Nano. Помогите, пожалуйста. Вот технический паспорт TFT: http://read.pudn.com/downloads137/sourcecode/embed/586271/Varitronix-2.8-lcd/vl-ps-cog-t280mbqi-041.pdf Спасибо.
@Windows Nuke, 👍0
1 ответ
Лучший ответ:
Nano не является хорошим выбором для управления этим экраном. Вам нужно, чтобы почти все контакты Nano были подключены к одному экрану, и их недостаточно, чтобы включить сенсорный экран. И это когда вы не используете последовательный порт Arduino (контакты TX/RX) для связи с ПК.
Вам необходимо подключить:
- 16 контактов данных
- /CS-контакт
- /RS-контакт
- /WR-контакт
- Опционально вывод RD или привязать его к 3,3 В
- /СБРОС штифта
И все это нужно сместить на уровень 3,3 В.
Вам необходимо подать 3,3 В на VCC1/2 и VCI. Светодиод A подключается к 5 В (так как он имеет большую токовую нагрузку, чем 3,3 В), а каждый вывод светодиода Kx через подходящий резистор (возможно, 220 Ом) — к земле.
Для сенсорного экрана контакты X- и Y- должны быть подключены к цифровому контакту ввода-вывода, а контакты X+ и Y+ — к аналоговым контактам ввода-вывода, которые также могут использоваться как цифровые контакты ввода-вывода (то есть не A6/A7 на платах, где они есть).
А затем вам нужно получить или написать программное обеспечение для управления ILI9320 через 16-битный интерфейс.
Управлять интерфейсом достаточно просто:
Изначально:
- Установить /CS HIGH
- Установить /WR HIGH
- Установите /RD HIGH (если не привязан к 3,3 В)
- Установить/СБРОСИТЬ ВЫСОКИЙ
- Короткая задержка
- Установить /СБРОСИТЬ НИЗКИЙ
- Короткая задержка
- Установить/СБРОСИТЬ ВЫСОКИЙ
Затем для передачи группы 16-битных слов:
- Установить /CS LOW
- Установите значение для записи на 16 выводах данных
- Импульс /WR НИЗКИЙ, затем ВЫСОКИЙ
- Повторите с пункта 2 для каждого слова
- Установить /CS HIGH
Ознакомьтесь с техническим описанием ILI9320, чтобы узнать, как управлять чипом, или используйте существующий код библиотеки (поддерживает ли его uTFT или u8glib?).
Для сенсорного экрана это случай установки Y- LOW и Y+ HIGH, а X- и X+ на INPUT, затем считывание аналогового значения из X+. Повторите с X-, установите LOW и X+ на HIGH, и оба Y установите на INPUT, и считывание аналогового значения из Y+.
Вы также можете получить лучшие результаты, прочитав несколько инвертированных настроек:
- Y- = НИЗКИЙ, Y+ = ВЫСОКИЙ, X- = ВХОД, Читать X+.
- Y- = ВЫСОКИЙ, Y- = НИЗКИЙ, X- = ВХОД, Читать X+.
- Вычтите второе показание из 1023
- Добавить первое и (измененное) второе чтение
- Разделите на два.
- Повторите для показаний X-/X+ от Y+.
Вы также можете снять несколько показаний и усреднить их, чтобы уменьшить шум и немного стабилизировать выходные данные.
И, конечно, вдобавок ко всему, вам нужно найти способ подключения к разъему с шагом 0,5 мм. Обычно используется гнездо FPC с шагом 0,5 мм, что означает печатную плату с одним из них. Вы можете найти для него адаптер на 37 контактов, но 37 контактов — это не распространенный формат. Обычно 50 контактов более распространены для размещения более общего интерфейса, включая контакты M0-M2, которые позволяют вам выбирать тип интерфейса, а также 18-битную шину данных для обеспечения полного интерфейса RGB6/6/6 и даже тактирования без буфера необработанных данных дисплея для очень высокоскоростных обновлений дисплея микроконтроллерами, которые поддерживают такой интерфейс.
- Низкая частота обновления 1,8-дюймового TFT-дисплея
- Как сделать собственный символ на ЖК-дисплее TFT? (128x128)
- Аппаратный SPI Arduino NANO не работает
- Проблема с получением значений с экрана Nextion на Arduino
- Меню не меняется при нажатии кнопки TFT 128 x 128
- avrdude ser_open() can't set com-state
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Какое максимальное энергопотребление Arduino Nano 3.0?