Hardware | 레트로 led 글자판 HPDL-1414 사용기 - 1

|

1. 인류의 문명


인류의 문명 발달, 그 이전 인간의 진화에서 가장 큰 변화는 "" 이었다고 합니다.

위험을 피하고, 주위 환경을 살피며, 좋은 상대를 고르는... 수정체같은 이 "눈" 은 확실히 다른 인체 기관과 다른 부분이 있습니다.


눈으로 보는게 중요한 것은 "생존" 에 필수 이며, 현대에 와서는 "기호" 로 바뀌는 것 같습니다.

그래서인지 요즈음, 레트로 LED 에 관심이 굉장이 많아졌습니다.



어렸을 적에 멋져 보였던 기계들에서 사용되었기 때문에 그런 것일까요?




2. HPDL-1414


레트로 LED 들은 요즘도 팔지만, 더 이상 생산을 하지 않는다던지, 수요가 없어서 희소가치가 높아져 있습니다.

그래서 다들 비쌉니다. 아시죠? 제가 1만원 이상 되는거 사기 어렵다는거. (직장인의 비애)


나중에 구입하게 되면 사용기를 올리겠지만,

현재 구할 수 있는 레트로 LED 중에서는 HPDL-1414 가 가장 저렴하지 않은가 합니다.


낼름 구입해 봤습니다.


* 1pcs X HPDL-1414 HPDL1414 Four character smart digital display. Digital Tube. Free Shipping

https://www.aliexpress.com/item/32920650954.html



요즘 알리 배송은 예전만큼 느리지 않습니다.



일단 두 개 구입했습니다.



인터넷에서 돌아다니는 사진과는 조금 다른 제품 마무리 입니다만, 나름 예쁩니다.



예전부터 말레이시아에서 이런 류의 부품들이 많이 생산되는 것 같습니다.

다만, 여기에 말레이시아라고 쓰여 있지만, 정말 그런지는 아무도 모르죠.



각 표시창이 볼록하게 되어 있어서, 가시성을 높여주는 모양입니다.



회로 chip 은 수지로 막혀 있네요. 카피품이면 chip 이 다르겠지만, 동작은 오리지널과 차이 없는 듯 합니다.





3. 사양


인터넷에서 스켄 버전이 있지만, 가장 깔끔한 사양서 PDF 를 발견하게 되어, 일반 사양서와 함께, 여기에 공유해 봅니다.


dl1414-4-char-magnified-led-display-siemens.pdf

HPDL-1414.pdf


사양서 대로라면, 아래 캐릭터를 표현할 수 있습니다.





4. 연결


I2C 통신이나 컨트롤러가 없기 때문에, HIGH/LOW 특성으로 단순 표시를 시도해 봅니다.

아직 이쪽 지식이 많이 않은지라, 아래 사이트의 소스를 그대로 사용했습니다.


* HPDL-1414 Test

http://psyclesam.blogspot.com/2013/03/hpdl-1414-test.html


연결은 다음과 같습니다.


-----------------------------------------
| HPDL-1414 |  function  | Arduino Nano |
-----------------------------------------
|     1     | Data Input |      D5      |
|     2     | Data Input |      D4      |
|     3     |  WR Wrtie  |      D10     |
|     4     |Digit Select|      D9      |
|     5     |Digit Select|      D8      |
|     6     |     VCC    |      5V      |
|     7     |     GND    |      GND     |
|     8     | Data Input |      D0      |
|     9     | Data Input |      D1      |
|     10    | Data Input |      D2      |
|     11    | Data Input |      D3      |
|     12    | Data Input |      D6      |
-----------------------------------------


소스는 다음과 같습니다.


const int dTime = 25;  // delay beteewn digit writes
const int lTime = 250; // delay between loops
const int cMin = 33;   // start Decimal Ascii value 32(space) to 95 (underscore) 
const int cMax = 95;   // start Decimal Ascii value 32(space) to 95 (underscore)


void setup() {
  DDRD = DDRD | B11111111; // set direction bits for pins 7-0
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
}

void loop() {
  int asciiDec = cMin;
  while(asciiDec < cMax)  {
    // loop ascii set
    PORTD = (asciiDec);
    delay(1);                // wait for a ms 
    digitalWrite(8, HIGH);   // 8=A0 9=A1 select digit HH=3 LH=2 HL=1 LL=0
    digitalWrite(9, HIGH);   // 8=A0 9=A1 select digit HH=3 LH=2 HL=1 LL=0
    delay(1);                // wait for a ms    
    digitalWrite(10, LOW);   // Write pin Low
    delay(1);                // wait for a ms
    digitalWrite(10, HIGH);  // Write Pin High
    delay(dTime);            // delay between characters ms seconds

    PORTD = (asciiDec);
    delay(1);                // wait for a ms 
    digitalWrite(8, LOW);    // select digit
    digitalWrite(9, HIGH);   // select digit
    delay(1);                // wait for a ms
    digitalWrite(10, LOW);   // Write pin Low
    delay(1);                // wait for a ms
    digitalWrite(10, HIGH);  // Write Pin High
    delay(dTime);            // delay between characters ms seconds

    PORTD = (asciiDec);
    delay(1);                // wait for a ms 
    digitalWrite(8, HIGH);   // select digit
    digitalWrite(9, LOW);    // select digit
    delay(1);                // wait for a ms
    digitalWrite(10, LOW);   // Write pin Low
    delay(1);                // wait for a ms
    digitalWrite(10, HIGH);  // Write Pin High
    delay(dTime);            // delay between characters ms seconds  

    PORTD = (asciiDec);
    delay(1);                // wait for a ms 
    digitalWrite(8, LOW);    // select digit
    digitalWrite(9, LOW);    // select digit
    delay(1);                // wait for a ms
    digitalWrite(10, LOW);   // Write pin Low
    delay(1);                // wait for a ms
    digitalWrite(10, HIGH);  // Write Pin High
    delay(dTime);            // delay between characters ms seconds

    asciiDec++;              // increment character
    delay(lTime);            // loop delay ms seconds
  }

}




5. 동작


이미 검증하신 분을 그대로 따라 했더니만, 힘들지 않게 간단하게 표시를 시켜볼 수 있었습니다.



4개 LED 에 동일한 글짜를 표시하고, 바로 다음 글짜로 옮겨가는 단순한 구동입니다.



동영상도 올려 봅니다.

이 레트로 LED 의 매력을 느낄 수 있죠?



확대 스코프로 안을 들여다 봤습니다.

금으로 된 bonding 이랑, 발광하는(?) 소자들이 보입니다.



발광하게 되면 이렇게 보여요. 신기.





6. Reference


이번에는 간단한 동작만을 따라해 봤지만, 아래 두 사이트를 참고하여 좀더 다양한 표시 방법에 도전해 보겠습니다.

특히 I2C 를 통한 통신이 되면 편하게 문자를 표시할 수 있을것 같네요.


* Alphanumeric LED Displays Revisited

http://paul.zawada.us/2011/12/alphanumeric-led-displays-revisited.html



* Arduino Snippets: DL1414 LED Character Display

https://softsolder.com/2012/12/07/arduino-snippets-dl1414-led-character-display/


참고로, 추가 2개 더 구입함...


And