VFD-дисплей FUTABA M202MD10D (Arduino)

Вакуумно-люминесцентный индикатор (ВЛИ), или катодолюминесцентный индикатор (КЛИ) (vacuum fluorescent display (VFD) — электровакуумный прибор, элемент индикации, работающий по принципу электронной лампы.

ВЛИ могут быть сегментными, матричными, мнемоническими, комбинированными.

Вакуумно-люминесцентный индикатор представляет собой электровакуумный триод прямого накала с множеством покрытых люминофором анодов. Параметры лампы подобраны таким образом, чтобы она могла работать при низких анодных напряжениях — от 9 до 27 В.

VFD-дисплей FUTABA M202MD10D может отображать ASCII символs в 2 строки (20 знаков в 1 строке) каждый символ в виде матрицы 5х7 пикселей. Напряжение питания VFD-дисплея 5 В, но некоторые модели аналогичных дисплеев могут иметь питание от 5 до 15 В.

Управление VFD-дисплея осуществляется при помощи интерфейса UART, для этого используется библиотека SoftwareSerial позволяет реализовать последовательный интерфейс на любых других цифровых выводах Arduino с помощью программных средств, дублирующих функциональность UART. Библиотека позволяет программно создавать несколько последовательных портов, работающих на скорости до 115200 бод. Для устройств, работающих с инвертированным сигналом, в библиотеке предусмотрен соответствующий параметр, включающий инвертирование.

К сожалению мне не удалось найти документацию на VFD-дисплей FUTABA M202MD10D, поэтому часть информации взята с похожего VFD-дисплея.

Управление дисплеем состоит очень простое и состоит из нескольких регистров:

Ниже показан скетч демонстрирующий работу дисплея:

#include <SoftwareSerial.h>
SoftwareSerial serial(3, 2);//RX,TX

void setup() {
  serial.begin(9600);
  VFD_reset();
  VFD_brig(1);// 0-5
}

void loop() { 
  VFD_cursor(0,0);
  VFD_print_str("RCL-RADIO.RU");
  VFD_cursor(1,0);
  VFD_print_num(1234567890);
  VFD_cursor(1,12);
  VFD_print_float(1.2569,3);
  VFD_cursor(0,15);
  VFD_character(0x15, 0b011000100, 0b00111001, 0b11110111, 0b00001001, 0b00000000);// addr = 0x15-0x1E
  delay(200);
}

void VFD_reset(){serial.write(0x1F);}
void VFD_clear(){serial.write(0x0D);}
void VFD_cursor(byte st, byte sim){serial.write(0x10);serial.write(st*20+sim);}
void VFD_print_str(char*data){serial.print(data);}
void VFD_print_num(long data){serial.print(data);}
void VFD_print_float(float data, byte z){serial.print(data,z);}
void VFD_brig(byte br){
 serial.write(0x04);
 switch(br){
  case 0: serial.write(byte(0x00));
  case 1: serial.write(0x20);
  case 2: serial.write(0x40);
  case 3: serial.write(0x60);
  case 4: serial.write(0x80);
  case 5: serial.write(0xFF);
  }
}

void VFD_character(byte addr, byte m1,byte m2, byte m3, byte m4, byte m5){
  serial.write(0x03);
  serial.write(addr);// 0X15-0X1E
  serial.write(byte(m1));
  serial.write(byte(m2));
  serial.write(byte(m3));
  serial.write(byte(m4));
  serial.write(byte(m5));
  serial.write(addr);
  }

В скетче используются несколько основных функций:

  • VFD_reset() — рестарт, очистка дисплея
  • VFD_clear() — очистка дисплея (функция не поддерживается M202MD10D)
  • VFD_cursor(0,0) —  устанавливает курсор в позицию (0 столбец, 0 строка)
  • VFD_print_str() — вывод String
  • VFD_print_num() — вывод числа long, int, byte
  • VFD_print_float() — вывод числа float
  • VFD_brig() — задает яркость дисплея (0-5) (функция не поддерживается M202MD10D)
  • VFD_character() — вывод пользовательских символов, доступны адреса 0X15-0X1E

Вывод пользовательских символов имеет свою особенность в данном дисплее, одно знакоместо представляет собой матрицу 5х7 пикселей. В дисплеях LCD1602 для этого используется 8 байт по 5 бит (5х8 пикселей), но в дисплее M202MD10D (и аналогичных) для вывода пользовательского символа используется 5 байт по 8 бит, поэтому каждый байт (8 пикселей) содержит несколько (полных и неполных) строк.

Я не указываю распиновку подключения дисплея, она может отличаться у разных моделей, но она достаточно проста, это +5 В, GND, RX и TX.

При подключении дисплея учитывайте что ток потребления может достигать 1,3 А, поэтому питание платы Arduino и дисплея должны быть разделенными.

Estrategias Generación Z deporte

Добавить комментарий

Войти с помощью: