HDSP-2131 (Hewlett Packard)

HDSP-2131


Připojení k Arduinu

Pin HDSP-2131Název pinu HDSP-2131Pin Arduino
1CLS5V
2CLK
3WRA1
4CE10
5RSTA0
6RD11
7
8
9
10
11D00
12D11
13D22
14D33
15NC
16Vdd5V
17GND (SUPPLY)GND
18GND (LOGIC)GND
19D44
20D55
21D66
22D77
23
24
25
26
27FL5V
28A0A2
29A1A3
30A2A4
31A3A5
32A45V

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(200);
  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(0);
    digitalWrite(CE, LOW);
    delay(0);
    digitalWrite(WR, LOW);
    delay(0);
    digitalWrite(WR, HIGH);
    delay(0);
    digitalWrite(CE, HIGH);
    //delay(5);
  }
}

void scrollDisplay(char *words)
{
  char buffer[8];
  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(300);
    i++;
  }
}

void loop()
{
  char intro[] = "      *** HDSP-2131 DEMO *** MORE DISPLAYS ON CTVRTKY.CZ/SBIRKA-DISPLEJU-LED  ";
  scrollDisplay(intro);
}


Demo video


Leave a Reply