В данном материале будет рассказано, как подключить любой неизвестный вакуумно-люминесцентный дисплей (он же вакуумно-люминесцентный индикатор или VFD) с последовательным интерфейсом к микроконтроллеру Arduino, при этом на дисплее будет отображаться текст с последовательного монитора.

Для начала нам нужно подключить устройство к источнику питания. Для большинства микросхем на платах таких дисплеев напряжение питания должно быть 5В. В нашем случае мы используем вот такой индикатор.

Проще и безопаснее всего было припаять шнуры питания непосредственно к контакту 4 (Gnd) и контакту 6 (Vcc) микросхемы MC 34063. После подключения источника питания на дисплее появляется основная информация, и нас больше всего интересует скорость передачи данных, которая в данном случае составляет 4800.
Далее нам нужно выяснить, как этот дисплей будет взаимодействовать с Arduino. Почти каждый последовательный дисплей имеет микросхему драйвера/приемника RS-232. Конкретно в данном случае это SIPEX SP232 ACP. Документация показывает, что TTL-вход в схему – это контакт 11. Нам также нужно закоротить контакты 14 и 13, то есть контакты передачи данных и получения данных. Теперь нам нужно подключить выход TX от Arduino к входу TTL микросхемы MAX232 под номером 11. В этом случае все, что мы увидим в последовательном мониторе Arduino, будет отображаться на дисплее VFD.
В данном примере мы собрали простую метеостанцию на основе датчика BMP180, которая также содержит часы реального времени DS3231. Схема подключения компонентов представлена далее.

Информация в последовательном мониторе должна быть в одну строку и не длиннее 40 символов. Мы реализуем это в коде с помощью команд Serial.print и Serial.println и с комбинацией пробелов. Код программы приведен далее.
#include <Wire.h>
#include <SFE_BMP180.h>
#include <DS3231.h>
SFE_BMP180 bmp180;
DS3231 rtc(SDA, SCL);
int Altitude = 713;
void setup() {
Serial.begin(4800);
rtc.begin();
//rtc.setDOW(WEDNESDAY);
//rtc.setTime(17, 47, 0);
//rtc.setDate(3, 7, 2021);
bool success = bmp180.begin();
if (success) {
Serial.println("BMP180 init success");
}
}
void loop() {
char status;
double T, P;
bool success = false;
status = bmp180.startTemperature();
delay(1000);
if (status != 0) {
status = bmp180.getTemperature(T);
if (status != 0) {
status = bmp180.startPressure(3);
if (status != 0) {
delay(status);
status = bmp180.getPressure(P, T);
if (status != 0) {
int comp = bmp180.sealevel(P, Altitude);
Serial.print(" ");
Serial.print(comp);
Serial.print(" hPa");
Serial.print(" * ");
Serial.print(T);
Serial.print(" C ");
Serial.print(rtc.getDateStr());
Serial.print(" ");
Serial.println(rtc.getTimeStr());
}
}
}
}
}
Наконец, устройство может быть установлено в подходящую коробку из ПВХ толщиной 5 мм и обклеено цветной бумагой или окрашено.


© digitrode.ru