PDSP2112 (SIEMENS)


Připojení k Arduinu

Pin PDSP2112Název pinu PDSP2112Pin Arduino
1RSTA0
2FL5V
3A0A2
4A1A3
5A2A4
6A3A5
7
8
9
10NC
11CLS5V
12CLK I/O
13WRA1
14Vcc5V
15GNDGND
16GNDGND
17CE10
18NC
19D00
20D11
21
22
23D22
24D33
25D44
26D55
27D66
28D77

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[] = "       *** PDSP2112 DEMO *** MORE DISPLAYS ON CTVRTKY.INFO/SBIRKA-DISPLEJU-LED  ";
  scrollDisplay(intro);
}


Demo video


Leave a Reply