Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05
Время от времени вы сталкиваетесь с интересными деталями на ebay, от друзей или просто в магазинах подержанных вещей. Одним из примеров этого был огромный вакуумно-флуоресцентный дисплей Noritake Itron 40 x 2, выпущенный в 1994 году (или ранее), который был передан клиенту.
Первоначально это выглядело довольно сложным, однако, потратив некоторое время, были найдены таблицы данных, и было обнаружено, что у него простой последовательный интерфейс - и после небольшой работы мы заставили его работать, так что читайте дальше, если вас интересуют классические VFD. или иметь аналогичный блок.
Шаг 1:
Скорость передачи последовательного интерфейса определяется перемычками на печатной плате.
Шаг 2:
Таким образом, сравнение приведенной выше таблицы с перемычками на нашем модуле дает нам скорость передачи данных 19200 бит / с без четности. Отлично - мы можем легко создать такое соединение с микроконтроллером с последовательным выходом и логическими уровнями 5В; для наших примеров мы будем использовать Arduino-совместимую плату.
Шаг 3:
Подключить VFD просто - посмотрите на белые перемычки с меткой CN2, как показано ранее. Контакт 1 составляет 5 В (вам нужен внешний источник питания, который может обеспечивать до 700 мА), контакт 2 - цифровой контакт 7 Arduino, а контакт 3 - Arduino и GND источника питания.
Мы используем Arduino D7 с программным последовательным интерфейсом вместо TX, чтобы на дисплее не отображался мусор при загрузке скетча. Затем нужно просто отправить текст на дисплей, например, вот небольшой демонстрационный набросок:
// Работа с модулями VFD Noritake Itron - модель CU40026SCPB-T20A #include SoftwareSerial VFD (6, 7); // RX, TX
установка void ()
{VFD.begin (19200); }
пустой цикл ()
{VFD.print ("Привет, мир. Это ЧРП Noritake"); // Вы можете выдавать текст do {} while (1); }
Шаг 4:
Что приводит к следующему…
Шаг 5:
Если вам не нравится цвет или яркость изображения, попробуйте немного Perspex поверх - например …
Шаг 6: Управление дисплеем
На этом этапе вам понадобится технический паспорт. Как вы видели ранее, писать текст очень просто - просто используйте функции.print. Однако вы можете захотеть отправить отдельные символы, а также специальные команды для управления аспектами отображения. Они указаны в таблице данных - см. Таблицы «Программные команды» и «Символьные шрифты».
Если вам нужно отправить отдельные команды - например, «очистить дисплей», который равен 0x0E, используйте команду.write, например:
VFD.write (0x0E); // очистить дисплей
Некоторые команды имеют формат управляющих кодов (помните их?), Поэтому вам нужно отправить ESC, а затем следующий байт, например, чтобы изменить яркость на 50%:
VFD.write (0x1B); // ESC VFD.write (0x4C); // яркость VFD.write (0x40); // 50% яркости
Вооружившись этими знаниями и таблицами данных, теперь вы можете выполнять все команды. Согласно паспорту, можно изменить шрифты, однако независимо от того, какую аппаратную перемычку или команду мы пробовали, он не сдвинется с места от японского шрифта катакана. Ваш экран может отличаться. Если вы используете функцию «приоритетной записи экрана», обратите внимание на таблицу данных в отношении увеличенного времени «занятости», отложив последующие записи на дисплей на миллисекунду.
Шаг 7: Собираем все вместе
Вместо того, чтобы объяснять каждую возможную команду, я поместил общие в документированные функции в демонстрационном эскизе ниже, за которым следует короткое видео, показывающее работу эскиза.
// Работа с модулями VFD Noritake Itron - модель CU40026SCPB-T20A // John Boxall 2013
#включают
SoftwareSerial VFD (6, 7); // rx, tx
установка void ()
{VFD.begin (19200); // установить скорость программного последовательного порта resetVFD (); VFDclearsceen (); // VFD.write (0x12); // режим вертикальной прокрутки (включен)}
недействительным resetVFD ()
// выполняет программный сброс контроллера VFD {VFD.write (0x1B); // ESC VFD.write (0x49); // сброс программного обеспечения}
void VFDnewline ()
// перемещает курсор в начало следующей строки {VFD.write (0x0D); // возврат каретки VFD.write (0x0A); // перевод строки}
void VFDclearsceen ()
// перемещает курсор в верхний левый угол и очищает дисплей {VFD.write (0x0E); // очистить дисплей VFD.write (0x0C); // подача формы - курсор в верхний левый угол}
void VFDbrightness (целое количество)
// устанавливает яркость VFD - 25/50/75/100% // использует последовательности ESC {switch (amount) {case 25: VFD.write (0x1B); // ESC VFD.write (0x4C); // яркость VFD.print (0); // 25% перерыв яркости; case 50: VFD.write (0x1B); // ESC VFD.write (0x4C); // яркость VFD.write (0x40); // 50% яркости; case 75: VFD.write (0x1B); // ESC VFD.write (0x4C); // яркость VFD.write (0x80); // 75% перерыв яркости; case 100: VFD.write (0x1B); // ESC VFD.write (0x4C); // яркость VFD.write (0xC0); // 100% яркость}}
void VFDchars ()
// пробегаем символы для выбранного шрифта {for (int i = 21; i <256; i ++) {VFD.write (0x16); // подчеркивание курсора вне VFD.write (i); задержка (100); }}
void moveCursor (позиция в байтах)
// перемещает курсор - верхняя строка 0 ~ 39, нижняя строка 40 ~ 79 // режим вертикальной прокрутки должен быть отключен, если используется {VFD.write (0x1B); // ESC VFD.write (0x48); // перемещаем курсор VFD.write (position); // место нахождения }
пустой цикл ()
{VFD.write (0x16); // подчеркивание курсора вне VFD.print ("Hello, world - line one."); // Вы можете выдать текст delay (1000); VFDnewline (); VFD.print ("Привет, мир - строка вторая."); задержка (1000); VFDclearsceen (); VFDbrightness (25); VFD.print («*** яркость 25% ***»); задержка (1000); VFDclearsceen (); VFDbrightness (50); VFD.print («*** яркость 50% ***»); задержка (1000); VFDclearsceen (); VFDbrightness (75); VFD.print («*** яркость 75% ***»); задержка (1000); VFDclearsceen (); VFDbrightness (100); VFD.print («*** 100% яркость ***»); задержка (1000); VFDclearsceen ();
VFDchars ();
VFDclearsceen ();
для (int я = 0; я <80; я ++) {VFD.write (0x16); // подчеркивание курсора за пределами moveCursor (i); VFD.print ("X"); задержка (100); moveCursor (i); VFD.print (""); } VFDclearsceen (); }
Мы надеемся, что вы нашли это интересным и полезным.
Этот пост предоставлен pmdway.com - все для производителей и любителей электроники с бесплатной доставкой по всему миру.
Рекомендуемые:
Повторное использование старых аккумуляторов мобильных телефонов: 10 шагов (с изображениями)
Повторно используйте старые батареи мобильного телефона: повторно используйте старые батареи мобильного телефона. Недавно я использовал использованные аккумуляторные батареи для телефонов в нескольких проектах после того, как обнаружил на eBay замечательный маленький модуль. Модуль поставляется с литий-ионным зарядным устройством, а также регулятором напряжения, позволяющим увеличивать
Повторное использование старых светодиодных рождественских украшений путем их ремикширования: 7 шагов
Повторное использование старых светодиодных рождественских украшений путем их ремикширования: три года назад я купил довольно отвратительное рождественское украшение в магазине Pound (то есть долларовом магазине) во время распродаж после сезона. Это был неутешительный "NOEL". знак, который был подсвечен недостаточным количеством светодиодов с питанием от батареи
Использование более 4 двигателей - объединение нескольких моторных щитов: 3 шага
Использование более 4 двигателей - объединение нескольких моторных щитов: управляемое вибротактильное сенсорное устройство замены и усиления (https: //www.instructables.com/id/Vibrotactile-Sens …) показывает способ создания устройства, которое переводит сенсорное восприятие. вход в вибрационные раздражители. Эти вибрационные раздражители п
Повторное использование старого телефона и старых динамиков в качестве СТЕРЕО: 4 шага
Повторно используйте старый телефон и старые динамики в качестве СТЕРЕО: превратите пару старых динамиков и старый смартфон в стереосистему с радио, подкастами для воспроизведения mp3 и интернет-радио, используя несколько общих компонентов, которые в общей сложности стоят менее 5 евро! Итак, у нас есть коллекция смарт-карт 5-10 летней давности
Использование модулей часов реального времени DS1307 и DS3231 с Arduino: 3 шага
Использование модулей часов реального времени DS1307 и DS3231 с Arduino: мы продолжаем получать запросы о том, как использовать модули часов реального времени DS1307 и DS3231 с Arduino из различных источников - так что это первая из двух частей руководства о том, как их использовать. Для этого руководства по Arduino у нас есть два модуля часов реального времени