[아두이노] 스위치버턴으로 CD4511를 제어해 보자

IOT/아두이노|2019. 2. 17. 17:31

[아두이노] 스위치버턴으로 CD4511를 제어해 보자



지금까지 7 Segment LED를 제어하는데 필수적으로 아두이노를 사용했습니다. 하지만 이번에 아두이노 없이 4x스위치버턴으로 CD4511 칩의 입력값을 제어하여 그 결과를 7 Segment LED로 출력하는 실험입니다. 보다 쉽게 CD4511 칩 제어하는 원리를 이해하실 수 있을거에요.

1. 회로도 구성


  • 준비물 : CD4511 칩 1개, 7 Segment LED 1개, 저항 330옴 1개, 저항 10k옴 4개, 파워서플라이. DIP Switch SPST x 4
  • 내용 : CD4511 칩을 이용해서 7 Segment LED에 숫자를 출력하게 하자. 참고로 7 Segment LED(캐소드형)

지난 시간의 회로도에서 아두이노를 뺀 부분에 파워서플라이. DIP Switch SPST x 4를 연결한 회로도입니다.


2. 스위치버턴와 CD4511 칩의 동작 원리


스위치 버턴(DIP Switch SPST x 4)의 동작 원리는 지난 시간의 아두이노코딩에서 패턴을 생각하시면 됩니다.

int data[10][4]={
  {0,0,0,0}, //0
  {0,0,0,1}, //1
  {0,0,1,0}, //2
  {0,0,1,1}, //3
  {0,1,0,0}, //4
  {0,1,0,1}, //5
  {0,1,1,0}, //6
  {0,1,1,1}, //7
  {1,0,0,0}, //8
  {1,0,0,1}  //9
};

이렇게 2차배열변수로 패턴을 저장했었죠. 이 값은 8421(BCD) 코드값입니다.

0000 //0
0001 //1
0010 //2
0011 //3
0100 //4
0101 //5
0110 //6
0111 //7
1000 //8
1001 //9
....
1111 //F

이렇게 8421(BCD) 코드에서 0~9까지만 사용 합니다. 그리고 자세히 보시면 네자리로 구성되어 있는걸 보실거에요. 회로도에 보시면 4x스위치 버턴을 구성되어 있습니다. 여기서 눈치가 빠른분들은 아 8421 코드표랑 4x스위치버턴과 연관있지 않을까 생각하실 겁니다.
회로도의 스위치 버턴을 자세히 보시면 8421 코드표랑 4x스위치버턴을 일치시켰습니다. 그리고 4x스위치버턴의 방향이 전부 아래 방향으로 향하고 있는데 이상태는 전류가 차단 된 0V의 상태이고 버턴이 위로 향할때 CD4511 칩에 Vcc의 전류가 흘러 들어가 됩니다.

4x스위치 버턴의 위치에 따라 동작은 -

  • 0000 상태 : CD4511(7 Segment Decoder) 칩의 출력은 7 Segment LED의 0의 LED가 불이 들어오도록 출력
  • 0001 상태 : CD4511(7 Segment Decoder) 칩의 출력은 7 Segment LED의 1의 LED가 불이 들어오도록 출력

설명보다도 실제 가상시뮬레이터로 4x스위치 버턴을 한번 위아래로 8421 코그 값대로 1이면 위로 올리고 0이면 아래로 내리면서 스위치 버턴을 조작하시면 CD4511 칩의 입력신호에 따른 7 Segment LED로 어떻게 출력되는지 쉽게 확인할 수 있을꺼에요.

좀 더 CD4511(7 Segment Decoder) 칩의 출력 상태를 알고 싶다면 7 Segment LED 대신에 7개의 LED를 배치하여 정확히 CD4511(7 Segment Decoder) 칩의 7개의 출력 값들의 변화를 확인할 수 있습니다.

예)

0은 0000 => 출력값은 1111110 됩니다.

3. 결과


가상시뮬레이터에 회로도를 배치하는 과정과 결과가 어떻게 출력되는지 보여주는 영상입니다. 잘 모르셔도 그대로 따라서 회로도를 만들어 보시면 글을 읽는것보다 싶게 동작 원리가 이해가 되실 꺼에요.


마무리


여기서, 4x스위치 버턴을 통해 CD4511 칩을 제어하는 회로도를 소개하는 이유는 CD4511 칩의 입력신호에 대한 출력신호를 쉽게 이해하기 위해서 입니다. 그리고, 4x스위치 버턴을 통한 실제 수동 제어를 해보면서 이런 동작을 지난시간에 아두이노 코딩제어를 통해 7 Segment LED 숫자를 만든 것을 직접 수동제어를 통해 느끼게 하는게 목적이기도 합니다. 또한, 지난시간에 명령 로직 코딩을 통해 쉽게 0~9까지 출력했던 아두이노와 비교를 통해 현실의 동작을 프로그램화 하면 얼마나 편하게 제어가 되는지 보여줄려는 의도도 있지요.


댓글()