HDSP-2133 (Hewlett Packard)


Připojení k Arduinu

Pin HDSP-2133Název pinu HDSP-2133Pin 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-2133 DEMO *** MORE DISPLAYS ON CTVRTKY.CZ/SBIRKA-DISPLEJU-LED  ";
  scrollDisplay(intro);
}


Demo video


Leave a Reply