Test run of VFD display using Arduino

Among my electronics junk I found a VFD (Vacuum Fluorescent Display) display and wanted to make sure it still works and can be used in projects. It’s a 16T202DA1E display manufactured by Samsung.

16T202DA1E_hello_world

It can replace standard HD44780 based liquid crystal display out of the box. First of all it only requires 5V supply. Voltage step up circuit for lighting fluorescent display is already on board. Controller accepts same commands as any 2×16 LCD does. The pin-out of display is as follows:

16T202DA1E_vfd_pinout

Display can be connected either in 8-bit or 4-bit mode. Probably biggest advantage of using VFD is its high contrast and crisp view. Lots of hobbyists prefer using them in high end projects like audio amplifiers or message panels. But these benefits require some sacrifice – they simply draw more power. If 2×16 LCD draws about 2-3mA then this adequate VFD requires between 130mA and 200mA of current. So this doesn’t look attractive when talking about battery operated gadgets.

Here is a simple test using Arduino. Code is already available in samples category. All is needed to connect display to proper pins and give it a go.

16T202DA1E_arduino

* LCD RS pin to digital pin 12

* LCD Enable pin to digital pin 11

* LCD D4 pin to digital pin 5

* LCD D5 pin to digital pin 4

* LCD D6 pin to digital pin 3

* LCD D7 pin to digital pin 2

* LCD R/W pin to ground

It gives a “hello world” message on first line and counts seconds on second line of display.

So where you want more brightness and don’t afraid of bigger power consumption then it’s a great choice.

Arduino code:

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}

Leave a Reply

Your email address will not be published. Required fields are marked *