UCD is a 2x20 VFD (Vacuum Fluorescent Display) rear customer pole/top display designed for Touch Dynamic Point of Sale (POS) terminals.
This information allows the VFD to be used with any programmable serial interface, including Arduino micro-controllers.
The communication between controller and VFD is done through RS-232 serial communication.
The following table illustrates the pinout.
| Pin | Description | Pin | Description |
|---|---|---|---|
| 1 | 6 | ||
| 2 | Bridge to pin 3 | 7 | |
| 3 | Vin 12V @ 0.3A | 8 | Rx (RS-232) |
| 4 | GND | 9 | |
| 5 | 10 |
| Pin | Description | Pin | Description |
|---|---|---|---|
| 1 | 6 | Rx (RS-232) | |
| 2 | 7 | ||
| 3 | 8 | ||
| 4 | 9 | GND | |
| 5 | 10 | Vin 12V @ 0.3A |
| Setting | Default |
|---|---|
| Command Type | EPSON ESC/POS |
| Baud rate | 9600 |
| Data | 8 bit |
| Parity | None |
| Stop | 1 bit |
// ULTRA CUST DISPLAY - VFD
// Alejandro Zárate 16072026
// zarpli.com
#include <Arduino.h>
const byte VFD_DEMO[] = {0x02, 0x05, 0x44, 0x08, 0x03};
const byte VFD_GOTO[] = {0x1F, 0x24};
const byte VFD_CLEAR[] = {0x0C};
const byte VFD_VERSION[] = {0x02, 0x05, 0x56, 0x01, 0x03};
void VFD_clear() {
Serial1.write(VFD_CLEAR, sizeof(VFD_CLEAR));
}
void VFD_version() {
Serial1.write(VFD_VERSION, sizeof(VFD_VERSION));
}
void VFD_demo() {
Serial1.write(VFD_DEMO, sizeof(VFD_DEMO));
}
void VFD_gotoxy(uint8_t x, uint8_t y) {
Serial1.write(VFD_GOTO, sizeof(VFD_GOTO));
Serial1.write(x);
Serial1.write(y);
}
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial1.begin(9600);
}
void loop() {
static uint8_t i = 0; i++;
VFD_gotoxy(1,1);
Serial1.print("zarpli.com");
VFD_gotoxy(1,2);
Serial1.print("counter: " + String(i/100%10) + String(i/10%10) + String(i%10));
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
delay(500);
}