Ардуино и дисплей покупателя - vfd как подключить/управлять
Добавлено: Чт июн 02, 2022 21:44:23
Тема создана для обмена опытом ..
Сюда складываем скетчи и документацию..
Для начала Wincor nixdorf VA63 сам индикатор futaba 2*20 vfd
за совсем копейки 200₽ на Авито Москва с rs232 от жадности пять штук.. их там больше сотни со слов продавца - налетай покупай живопись!! ( c usb интерфейсом плата совсем другая кому нужно в здешней барахолке тоже есть
) чтобы такой запустить
= снял мелкосхему sp232 нафиг ( наверное можно и оставить) в площадку на 9 ногу впаял провод от ардуины от TX.. но этого оказалось не достаточно
- потребовалось поставить центральную из 5 возможных перемычку !! JP3 дабы установить принудительно Parity off
ВОТ ВЕДЬ ГАДЫ
и все заработало в лучшем виде
ps -- если пинцетом замкнуть кранную левую со стороны индикатора если смотреть, а вообще это jp5 "перемычку" и подать питание - запускается внутренний тест самого индикатора проверки сегментов
// буковки отправляем как строчками так и цифирьками в хексе ASCII
#include <SoftwareSerial.h>
SoftwareSerial vfd(255,2,0); // This is required, to start an instance of an vfd (TX at pin D2)
// можно поменять на любой кроме некоторых смотря какя плата.
void setup() {
vfd.begin(9600); // Start the vfd at 9600 baud
vfd.write(0x1b); // выбор кодовой страницы рус - но печатать из под ардуино
vfd.write(0x52); // сможет только после обработки кодером из cp1251 в cp866
vfd.write(0x35);
delay (100); // подождем вдруг ему нужно время осознать
}
void CLS () { // очистка экрана
vfd.write(0x1b);
vfd.write(0x5b);
vfd.write(0x32);
vfd.write(0x4a);
}
void set_cursor (int str, int col) { // установить курсор
// строка , колонка
str = str + 0x30;
col = col + 0x30;
vfd.write(0x1b);
vfd.write(0x5b);
vfd.write(str);
vfd.write(0x3b);
vfd.write(col);
vfd.write(0x48);
}
void loop() {
CLS ();
set_cursor (1,4);
vfd.print("HELLO "); // можно печатать строкой
vfd.write(0x20); // space // можно передавать букавки кодами символов
vfd.write(0x57); // W
vfd.write(0x4F); // O
vfd.write(0x52); // R
vfd.write(0x4c); // L
vfd.write(0x44); // D
vfd.write(0x20); // space
delay (5000); // подождеми посмотрим
set_cursor (2,0);
vfd.print("the quick brown fox");
delay (5000); // подождеми посмотрим
set_cursor (2,0);
vfd.print("jumps over the lazy");
delay (5000); // подождеми посмотрим
set_cursor (2,0);
vfd.print(" dog ");
delay (5000); // подождеми посмотрим
}
К сожалению набор команд этого дисплея очень бедный - в лёгкую нет возможности прописать свои символы в память..вот это по настоящему трабла.. очень хочется..
Так же нет сдвига автоматического символов как у других дисплеев бывает - по этому к
тереть и ставить курсор заново.
Дока пдф гуглится моментом по этому аттачить нет смысла..
Про перемычки упоминание их функций удалось обнаружить в доке другого 4х строчного индикатора ,этой конторы va66
На гитхаюе нашлась либа с классами
https://github.com/MrTransistorsChannel/NixdorfVFD
Возможно она была сделана для usb версии .. в функции софтваре сериал включена инверсия.. для 232 версии этот параметр другой - дефолтный - нет инверсии.
Так что пора пилить часики
Сюда складываем скетчи и документацию..
Для начала Wincor nixdorf VA63 сам индикатор futaba 2*20 vfd
за совсем копейки 200₽ на Авито Москва с rs232 от жадности пять штук.. их там больше сотни со слов продавца - налетай покупай живопись!! ( c usb интерфейсом плата совсем другая кому нужно в здешней барахолке тоже есть
= снял мелкосхему sp232 нафиг ( наверное можно и оставить) в площадку на 9 ногу впаял провод от ардуины от TX.. но этого оказалось не достаточно
- потребовалось поставить центральную из 5 возможных перемычку !! JP3 дабы установить принудительно Parity off
ВОТ ВЕДЬ ГАДЫ
ps -- если пинцетом замкнуть кранную левую со стороны индикатора если смотреть, а вообще это jp5 "перемычку" и подать питание - запускается внутренний тест самого индикатора проверки сегментов
Спойлер
// Скетч тестовый выводит на VFD-дисплей BA63 ля FUTABA хело ворд,и тест ангельскаго шрифта про лису и собаку в разных строчках.// буковки отправляем как строчками так и цифирьками в хексе ASCII
#include <SoftwareSerial.h>
SoftwareSerial vfd(255,2,0); // This is required, to start an instance of an vfd (TX at pin D2)
// можно поменять на любой кроме некоторых смотря какя плата.
void setup() {
vfd.begin(9600); // Start the vfd at 9600 baud
vfd.write(0x1b); // выбор кодовой страницы рус - но печатать из под ардуино
vfd.write(0x52); // сможет только после обработки кодером из cp1251 в cp866
vfd.write(0x35);
delay (100); // подождем вдруг ему нужно время осознать
}
void CLS () { // очистка экрана
vfd.write(0x1b);
vfd.write(0x5b);
vfd.write(0x32);
vfd.write(0x4a);
}
void set_cursor (int str, int col) { // установить курсор
// строка , колонка
str = str + 0x30;
col = col + 0x30;
vfd.write(0x1b);
vfd.write(0x5b);
vfd.write(str);
vfd.write(0x3b);
vfd.write(col);
vfd.write(0x48);
}
void loop() {
CLS ();
set_cursor (1,4);
vfd.print("HELLO "); // можно печатать строкой
vfd.write(0x20); // space // можно передавать букавки кодами символов
vfd.write(0x57); // W
vfd.write(0x4F); // O
vfd.write(0x52); // R
vfd.write(0x4c); // L
vfd.write(0x44); // D
vfd.write(0x20); // space
delay (5000); // подождеми посмотрим
set_cursor (2,0);
vfd.print("the quick brown fox");
delay (5000); // подождеми посмотрим
set_cursor (2,0);
vfd.print("jumps over the lazy");
delay (5000); // подождеми посмотрим
set_cursor (2,0);
vfd.print(" dog ");
delay (5000); // подождеми посмотрим
}
Так же нет сдвига автоматического символов как у других дисплеев бывает - по этому к
тереть и ставить курсор заново.
Дока пдф гуглится моментом по этому аттачить нет смысла..
Про перемычки упоминание их функций удалось обнаружить в доке другого 4х строчного индикатора ,этой конторы va66
На гитхаюе нашлась либа с классами
https://github.com/MrTransistorsChannel/NixdorfVFD
Возможно она была сделана для usb версии .. в функции софтваре сериал включена инверсия.. для 232 версии этот параметр другой - дефолтный - нет инверсии.
Так что пора пилить часики