Тема посвящена обзору и подключению дисплея IEE ARGUS 03100-08-256N (ALPHANUMERIC PLASMA DISPLAY 32X8), а так же его вероятных аналогов:
- OKAYA RU-32-8RDC1A
OKAYA RU-32-8RDC1-2
SIEMENS GWE:000000227033
Дисплей приобрёл у seriy (объявление).
Дисплей позволяет вывести предварительно записанные в знакогенератор символы, имеет буфер на 256 символов.
Разрешение дисплея: 32 столбца на 8 строк.
Требуемые напряжения питания: +150В (150мА), -12В (100мА), +5В (1А). Дисплей требователен к качеству питания.
Интерфейс подключения: IDCC-34MR.
Распиновка и предзаписанные символы:
Принцип управления: установить управляющие пины в соответсттвующее состояние, задать начальный адрес на шине адреса А0..А7, записать адрес (AW), задать код символа на шине D0..D5, записать символ (CLOCK). Повторять последние два действия для вывода строки. Более подробно приведено в коде, ниже.
Дисплей состоит из 3 плат: плата плазменной панели, плата драйвера, плата управления.
Дисплей: вид спереди и сзади.
Плазменная панель RDMD573208BR-c (NIC E44246 Togoshi TS-5, M-0001-3)
Драйвер 05464-25118-02:
Плата управления 05464-24435-04-e:
Примеры работы с IEE ARGUS 03100-08-256N.
По параллельному интерфейсу, подключение к Arduino MEGA 2560.
Код:
Спойлер
Код: Выделить всё
// ALPHANUMERIC PLASMA DISPLAY 32X8
// OKAYA RU-32-8RDC1A
// OKAYA RU-32-8RDC1-2
// IEE ARGUS 03100-08-256N <- TESTED
// SIEMENS GWE:000000227033
//
// SERJSOCHI, 2024
//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// PARALLEL CONNECT TO ARDUINO MEGA 2560
//
// APD_PIN01 GND (connect to Arduino GND)
// APD_PIN02 GND (connect to Arduino GND)
// APD_PIN03 GND (connect to Arduino GND)
// APD_PIN04 GND (connect to Arduino GND)
// APD_PIN05 +5V_1A (EXTERNAL POWER! DO NOT 5V POWER SUPPLY FROM ARDUINO!)
// APD_PIN06 +5V_1A (EXTERNAL POWER! DO NOT 5V POWER SUPPLY FROM ARDUINO!)
#define APD_PIN07_READY 26
// APD_PIN08 Not connected
#define APD_PIN09_CL 28
#define APD_PIN10_CS 29
#define APD_PIN11_WF 30
#define APD_PIN12_A1 31
#define APD_PIN13_A2 32
#define APD_PIN14_A3 33
#define APD_PIN15_A5 34
#define APD_PIN16_A0 35
#define APD_PIN17_A4 36
#define APD_PIN18_AW 37
#define APD_PIN19_A7 38
#define APD_PIN20_A6 39
#define APD_PIN21_D5 40
#define APD_PIN22_WR 41
#define APD_PIN23_BL 42
#define APD_PIN24_RS 43
#define APD_PIN25_D0 44
#define APD_PIN26_D1 45
#define APD_PIN27_D2 46
#define APD_PIN28_D3 47
#define APD_PIN29_UL 48
#define APD_PIN30_D4 49
// APD_PIN31 -12V
// APD_PIN32 -12V
// APD_PIN33 No pin
// APD_PIN34 +150V_150mA
//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// MAIN
void APD_gotoXY(unsigned char posX, unsigned char posY){
if (posX > 31) posX = 31;
if (posY > 7) posY = 7;
unsigned char newPos = posX + posY*32;
digitalWrite(APD_PIN16_A0, bitRead(newPos, 0));
digitalWrite(APD_PIN12_A1, bitRead(newPos, 1));
digitalWrite(APD_PIN13_A2, bitRead(newPos, 2));
digitalWrite(APD_PIN14_A3, bitRead(newPos, 3));
digitalWrite(APD_PIN17_A4, bitRead(newPos, 4));
digitalWrite(APD_PIN15_A5, bitRead(newPos, 5));
digitalWrite(APD_PIN20_A6, bitRead(newPos, 6));
digitalWrite(APD_PIN19_A7, bitRead(newPos, 7));
digitalWrite(APD_PIN18_AW, LOW);
digitalWrite(APD_PIN18_AW, HIGH);
}
void APD_writeChar(unsigned char APD_SYMBOL, boolean APD_UNDERLINE = 0) {
if (APD_SYMBOL == '_') APD_UNDERLINE = 1;
digitalWrite(APD_PIN25_D0, bitRead(APD_SYMBOL, 0));
digitalWrite(APD_PIN26_D1, bitRead(APD_SYMBOL, 1));
digitalWrite(APD_PIN27_D2, bitRead(APD_SYMBOL, 2));
digitalWrite(APD_PIN28_D3, bitRead(APD_SYMBOL, 3));
digitalWrite(APD_PIN30_D4, bitRead(APD_SYMBOL, 4));
digitalWrite(APD_PIN21_D5, bitRead(APD_SYMBOL, 5));
digitalWrite(APD_PIN29_UL, APD_UNDERLINE);
}
void APD_clearScreen(){
digitalWrite(APD_PIN24_RS, LOW);
delay(10);
digitalWrite(APD_PIN24_RS, HIGH);
}
void APD_showChar(unsigned char APD_SYMBOL, boolean APD_UNDERLINE = 0){
APD_writeChar(APD_SYMBOL, APD_UNDERLINE);
digitalWrite(APD_PIN09_CL, HIGH);
digitalWrite(APD_PIN09_CL, LOW);
}
void APD_showString(String APD_STRING, boolean APD_UNDERLINE = 0, boolean wideFont = 1) {
APD_STRING.toUpperCase();
byte str_len = APD_STRING.length();
byte arrayPointer = 0;
digitalWrite(APD_PIN11_WF, wideFont);
while (str_len)
{
APD_writeChar(APD_STRING[arrayPointer], APD_UNDERLINE);
digitalWrite(APD_PIN09_CL, HIGH);
digitalWrite(APD_PIN09_CL, LOW);
--str_len;
++arrayPointer;
}
}
void setup() {
pinMode(APD_PIN07_READY, INPUT);
pinMode(APD_PIN09_CL, OUTPUT);
pinMode(APD_PIN10_CS, OUTPUT);
pinMode(APD_PIN11_WF, OUTPUT);
pinMode(APD_PIN12_A1, OUTPUT);
pinMode(APD_PIN13_A2, OUTPUT);
pinMode(APD_PIN14_A3, OUTPUT);
pinMode(APD_PIN15_A5, OUTPUT);
pinMode(APD_PIN16_A0, OUTPUT);
pinMode(APD_PIN17_A4, OUTPUT);
pinMode(APD_PIN18_AW, OUTPUT);
pinMode(APD_PIN19_A7, OUTPUT);
pinMode(APD_PIN20_A6, OUTPUT);
pinMode(APD_PIN21_D5, OUTPUT);
pinMode(APD_PIN22_WR, OUTPUT);
pinMode(APD_PIN23_BL, OUTPUT);
pinMode(APD_PIN24_RS, OUTPUT);
pinMode(APD_PIN25_D0, OUTPUT);
pinMode(APD_PIN26_D1, OUTPUT);
pinMode(APD_PIN27_D2, OUTPUT);
pinMode(APD_PIN28_D3, OUTPUT);
pinMode(APD_PIN29_UL, OUTPUT);
pinMode(APD_PIN30_D4, OUTPUT);
digitalWrite(APD_PIN09_CL, LOW);
digitalWrite(APD_PIN10_CS, LOW);
digitalWrite(APD_PIN11_WF, HIGH);
digitalWrite(APD_PIN12_A1, LOW);
digitalWrite(APD_PIN13_A2, LOW);
digitalWrite(APD_PIN14_A3, LOW);
digitalWrite(APD_PIN15_A5, LOW);
digitalWrite(APD_PIN16_A0, LOW);
digitalWrite(APD_PIN17_A4, LOW);
digitalWrite(APD_PIN18_AW, HIGH);
digitalWrite(APD_PIN19_A7, LOW);
digitalWrite(APD_PIN20_A6, LOW);
digitalWrite(APD_PIN21_D5, LOW);
digitalWrite(APD_PIN22_WR, HIGH);
digitalWrite(APD_PIN23_BL, HIGH);
digitalWrite(APD_PIN24_RS, HIGH);
digitalWrite(APD_PIN25_D0, LOW);
digitalWrite(APD_PIN26_D1, LOW);
digitalWrite(APD_PIN27_D2, LOW);
digitalWrite(APD_PIN28_D3, LOW);
digitalWrite(APD_PIN29_UL, LOW);
digitalWrite(APD_PIN30_D4, LOW);
APD_clearScreen();
APD_gotoXY(0,0);
APD_showString("ALPHANUMERIC PLASMA DISPLAY 32X8", 1);
APD_gotoXY(0,1);
APD_showString("PARALLEL CONNECT TO ARDUINO MEGA");
APD_gotoXY(3,4);
APD_showString("REGULAR and ");
APD_showString("UNDERLINE", 1);
APD_showString(" TEXT");
APD_gotoXY(0,6);
APD_showString("When string length more than 32,text continues on the next line.");
APD_gotoXY(3,2);
APD_showString("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
APD_gotoXY(2,3);
APD_showString("@[\\]^_ !\"#$%&'()*+,-./:;<=>?");
APD_gotoXY(11,5);
APD_showString("0123456789");
}
void loop() {
}
Код:
Спойлер
Код: Выделить всё
// ALPHANUMERIC PLASMA DISPLAY 32X8
// OKAYA RU-32-8RDC1A
// OKAYA RU-32-8RDC1-2
// IEE ARGUS 03100-08-256N <- TESTED
// SIEMENS GWE:000000227033
//
// SERJSOCHI, 2024
//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// I2C CONNECT TO HW-061 PCF8574 MODULE (REMOVE JUMPER!)
//
// APD_PIN01 GND (connect to Arduino GND)
// APD_PIN02 GND (connect to Arduino GND)
// APD_PIN03 GND (connect to Arduino GND)
// APD_PIN04 GND (connect to Arduino GND)
// APD_PIN05 +5V_1A (EXTERNAL POWER! DO NOT 5V POWER SUPPLY FROM ARDUINO!)
// APD_PIN06 +5V_1A (EXTERNAL POWER! DO NOT 5V POWER SUPPLY FROM ARDUINO!)
// APD_PIN07_READY
// APD_PIN08 Not connected
#define APD_PIN09_CL P0
// APD_PIN10_CS GND (connect to Arduino GND)
// APD_PIN11_WF +5V_1A
// APD_PIN12_A1 GND (connect to Arduino GND)
// APD_PIN13_A2 GND (connect to Arduino GND)
// APD_PIN14_A3 GND (connect to Arduino GND)
// APD_PIN15_A5 GND (connect to Arduino GND)
// APD_PIN16_A0 GND (connect to Arduino GND)
// APD_PIN17_A4 GND (connect to Arduino GND)
#define APD_PIN18_AW P3
// APD_PIN19_A7 GND (connect to Arduino GND)
// APD_PIN20_A6 GND (connect to Arduino GND)
#define APD_PIN21_D5 P1
// APD_PIN22_WR +5V_1A
// APD_PIN23_BL +5V_1A
// APD_PIN24_RS +5V_1A
#define APD_PIN25_D0 P4
#define APD_PIN26_D1 P2
#define APD_PIN27_D2 P6
#define APD_PIN28_D3 P5
// APD_PIN29_UL GND (connect to Arduino GND)
#define APD_PIN30_D4 P7
// APD_PIN31 -12V
// APD_PIN32 -12V
// APD_PIN33 No pin
// APD_PIN34 +150V_150mA
//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// MAIN
#include "PCF8574.h" // PCF8574 library by Renzo Mischianti
PCF8574 pcf8574(0x27);
unsigned char APD_BUF_ARRAY[256];
unsigned char APD_BUF_POS = 0;
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void APD_gotoXY(unsigned char posX, unsigned char posY){
if (posX > 31) posX = 31;
if (posY > 7) posY = 7;
APD_BUF_POS = posX + posY*32;
}
void APD_writeChar(unsigned char APD_SYMBOL) {
pcf8574.digitalWrite(APD_PIN25_D0, bitRead(APD_SYMBOL, 0));
pcf8574.digitalWrite(APD_PIN26_D1, bitRead(APD_SYMBOL, 1));
pcf8574.digitalWrite(APD_PIN27_D2, bitRead(APD_SYMBOL, 2));
pcf8574.digitalWrite(APD_PIN28_D3, bitRead(APD_SYMBOL, 3));
pcf8574.digitalWrite(APD_PIN30_D4, bitRead(APD_SYMBOL, 4));
pcf8574.digitalWrite(APD_PIN21_D5, bitRead(APD_SYMBOL, 5));
pcf8574.digitalWrite(APD_PIN09_CL, LOW);
pcf8574.digitalWrite(APD_PIN09_CL, HIGH);
}
void APD_clearScreen(){
for (int i = 0; i < 256; i++) {
APD_BUF_ARRAY[i] = ' ';
}
}
void APD_putChar(unsigned char APD_SYMBOL){
APD_BUF_ARRAY[APD_BUF_POS] = APD_SYMBOL;
APD_BUF_POS++;
}
void APD_sendBuf(){
pcf8574.digitalWrite(APD_PIN18_AW, HIGH);
pcf8574.digitalWrite(APD_PIN18_AW, LOW);
for (int i = 0; i < 256; i++) {
APD_writeChar(APD_BUF_ARRAY[i]);
}
}
void APD_putString(String APD_STRING) {
APD_STRING.toUpperCase();
byte str_len = APD_STRING.length();
byte arrayPointer = 0;
while (str_len)
{
APD_putChar(APD_STRING[arrayPointer]);
--str_len;
++arrayPointer;
}
}
void setup() {
pcf8574.pinMode(APD_PIN09_CL, OUTPUT);
pcf8574.pinMode(APD_PIN18_AW, OUTPUT);
pcf8574.pinMode(APD_PIN25_D0, OUTPUT);
pcf8574.pinMode(APD_PIN26_D1, OUTPUT);
pcf8574.pinMode(APD_PIN27_D2, OUTPUT);
pcf8574.pinMode(APD_PIN28_D3, OUTPUT);
pcf8574.pinMode(APD_PIN30_D4, OUTPUT);
pcf8574.pinMode(APD_PIN21_D5, OUTPUT);
pcf8574.begin();
pcf8574.digitalWrite(APD_PIN09_CL, HIGH);
pcf8574.digitalWrite(APD_PIN18_AW, LOW);
pcf8574.digitalWrite(APD_PIN25_D0, LOW);
pcf8574.digitalWrite(APD_PIN26_D1, LOW);
pcf8574.digitalWrite(APD_PIN27_D2, LOW);
pcf8574.digitalWrite(APD_PIN28_D3, LOW);
pcf8574.digitalWrite(APD_PIN30_D4, LOW);
pcf8574.digitalWrite(APD_PIN21_D5, LOW);
APD_clearScreen();
APD_gotoXY(0,0);
APD_putString("ALPHANUMERIC PLASMA DISPLAY 32X8");
APD_gotoXY(1,1);
APD_putString("I2C CONNECT VIA HW-061 PCF8574");
APD_gotoXY(7,4);
APD_putString("REGULAR TEXT ");
APD_putString("ONLY");
APD_gotoXY(0,6);
APD_putString("When string length more than 32,text continues on the next line.");
APD_gotoXY(3,2);
APD_putString("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
APD_gotoXY(2,3);
APD_putString("@[\\]^_ !\"#$%&'()*+,-./:;<=>?");
APD_gotoXY(11,5);
APD_putString("0123456789");
APD_sendBuf();
}
void loop() {
}



