HDSP-210x
Připojení k Arduinu
Pin HDSP-2206 | Název pinu HDSP-2206 | Pin Arduino |
---|
1 | RST | A0 |
2 | FL | 5V |
3 | A0 | A2 |
4 | A1 | A3 |
5 | A2 | A4 |
6 | A3 | A5 |
7 | NC | – |
8 | NC | – |
9 | NC | – |
10 | A4 | 5V |
11 | CLS | 5V |
12 | CLK | – |
13 | WR | A1 |
14 | Vdd | 5V |
15 | GND | GND |
16 | GND | GND |
17 | CE | 10 |
18 | RD | 11 |
19 | D0 | 0 |
20 | D1 | 1 |
21 | NC | – |
22 | NC | – |
23 | D2 | 2 |
24 | D3 | 3 |
25 | D4 | 4 |
26 | D5 | 5 |
27 | D6 | 6 |
28 | D7 | 7 |
Zdrojový kód pro Arduino
/*
Original code www.josvandijken.nl
Based on the code from: Matt Joyce < matt at nycresistor.com >
Mark Tabry
*/
int RST = A0;
int WR = A1;
int CE = 10;
int RD = 11;
int AD0 = A2;
int AD1 = A3;
int AD2 = A4;
int AD3 = A5;
int D0 = 0;
int D1 = 1;
int D2 = 2;
int D3 = 3;
int D4 = 4;
int D5 = 5;
int D6 = 6;
int D7 = 7;
int incomingByte = 0;
void setup()
{
pinMode(RST , OUTPUT);
pinMode(WR , OUTPUT);
pinMode(CE , OUTPUT);
pinMode(RD , OUTPUT);
pinMode(AD0 , OUTPUT);
pinMode(AD1 , OUTPUT);
pinMode(AD2 , OUTPUT);
pinMode(AD3 , OUTPUT);
pinMode(D0 , OUTPUT);
pinMode(D1 , OUTPUT);
pinMode(D2 , OUTPUT);
pinMode(D3 , OUTPUT);
pinMode(D4 , OUTPUT);
pinMode(D5 , OUTPUT);
pinMode(D6 , OUTPUT);
pinMode(D7 , OUTPUT);
digitalWrite(CE, HIGH);
digitalWrite(WR, HIGH);
resetDisplay();
}
void resetDisplay()
{
digitalWrite(RST, LOW);
delayMicroseconds(1);
digitalWrite(RST, HIGH);
delayMicroseconds(150);
digitalWrite(AD3, HIGH);
}
void writeDisplay(char *input)
{
for (int i = 0; i < 8; i++)
{
digitalWrite(AD0, (1 & i) != 0 ? HIGH : LOW);
digitalWrite(AD1, (2 & i) != 0 ? HIGH : LOW);
digitalWrite(AD2, (4 & i) != 0 ? HIGH : LOW);
PORTD = input[i];
delay(1);
digitalWrite(CE, LOW);
delay(1);
digitalWrite(WR, LOW);
delay(1);
digitalWrite(WR, HIGH);
delay(1);
digitalWrite(CE, HIGH);
delay(1);
}
}
void scrollDisplay(char *words)
{
char buffer[9];
int i = 0;
while (words[i] != 0)
{
boolean blank = false;
for (int j = 0; j < 8; j++)
{
if ( !blank && words[i + j] == 0 )
{
blank = true;
}
if ( blank )
{
buffer[j] = ' ';
}
else
{
buffer[j] = words[i + j];
}
}
buffer[8] = 0;
writeDisplay(buffer);
delay(200);
i++;
}
}
void loop()
{
char intro[] = " HDSP-2206 DEMO ";
scrollDisplay(intro);
}
Demo video