이번에는 여러 입력값을 받아서 적은 출력값을 내도록 하는 (74164나 595와는 반대의) 실험을 해보겠습니다. 스마트 어항 제어기 하나로 3개의 어항을 모니터링 하려니 INPUT 핀이 매우 모자르기에 집에 있는 74151, 74138, 4053B 를 갖고 INPUT Multiplexing 실험을 해보도록 하겠습니다.

 Input / Output 이 모두 되어 Multiplexing / Demultiplexing 이 되고, Analog IN/OUT 이 된다고 하니 한번 모두 해보도록 하겠습니다.

CD4053B

CD4053B 는 " triple 2-Channel multiplexer having three separate digital control inputs, A, B, and C, and an inhibit input." 이라고 되어있다. 즉 2채널의 INPUT/OUTPUT 을 3개 갖고있고, 이를 A,B,C 를 통해서 선택할 수 있는거다.

4015B 는 가장 많이 쓰는녀석인데, 8 채널의 INPUT 중 1개를 A,B,C 로 선택해서 입출력할 수 있고, 8개의 채널을 1개의 핀으로 읽거나 쓸 수 있어, 총 4개의 핀만 있으면 8개를 읽거나 쓸 수 있는겝니다.

4052B 는 4채널 씩 X 와 Y 로 나누어 A,B 로 입출력할 수 있고, 2개의 핀 + 2개의 핀(A,B) 총 4개 핀으로 입출력이 가능한겁니다. 

4053B 는 위에서 얘기했듯이 3개의 핀으로 입출력이 오고 3개의 핀(A,B,C)으로 선택을 하니까 총 6개의 핀으로 6개의 입출력을 하게됩니다. 이걸 쓰느니 그냥 6개 입력이나 출력을 그냥 해버리면 되니 아두이노에서는 그닥 쓸모가 없어보입니다. 그래서인지 예제도 거의 안나옵니다. 4051B 만 예제가 나오지요..ㅠㅠ 


위 마지막 4053B 를 갖고 실험해보기로 한다.

빨간색 박스가 각각 a,b,c 이고, a, b, c 에는 각각 x 와 y 의 2개의 채널이 있다. 스위치 처럼 되어있으며, ax, ay 의 IN/OUT 은 14번 핀으로 OUT/IN 되고, bx, by 의 IN/OUT 은 15번 핀 으로 OUT/IN 된다. cx, cy 도 마찬가지이다.

INH는 HIGH 인 경우 칩의 동작을 멈추게 합니다.

VEE 와 VSS 는 모두 GND 로 연결합니다.

VDD 는 5V 에 연결해주면 되고, A, B, C 는 Arduino 로 연결합니다.

허용전류는 10mA 이므로 입력이나 출력전류를 잘 계산하도록 합니다.


 위 그림은 4053B 의 기능도인데, 이를 보면, A,B,C 시그널에 의해 각 x,y 중 하나를 선택해서 IN/OUT 을 OUT/IN 으로 연결해주는것을 알 수 있습니다. 


푸시 스위치 입력받기  (디지털 입력)

 푸시 스위치를 입력받아 보겠습니다. 그런데 푸시스위치를 이런 방식으로 읽어들이는것은 바람직하지 않겠네요. 동시에 푸시스위치를 여러 개 누를게 아니라면 좋지 않습니다. 

 왜냐하면, 예를 들어 100ms 씩 채널의 INPUT 을 READ 한다고 가정할 때 10개의 버튼 입력값을 읽어들일 때 제일 마지막 버튼이 눌렸지 체크하는데 까지 걸리는 시간은 1초가 됩니다. 물론 4053B 는 3개 채널 그룹으로 병렬로 READ 할 수 있으니 이것보다는 짧겠네요. 하지만, 여전히 바람직하지는 않겠어요.

 이보다는 405X 시리즈는 INPUT 시그널을 스위칭 해가면서 READ 할 때 사용하거나 출력할 때 사용하는게 더 낫겠다는 생각입니다.

 그래도 아래와 같이 한번 해봅니다.



센서 입력받기  (아날로그 입력)


더많은 입력받기 (Shift Register 응용)

 2043B 의 INH 를 활용하면 더 많은 204XB 들을 연결하여 더 많은 입력을 받아 SELECT 할 수 있습니다. 이제 그 진가가 발휘되는거죠.


위 예시는 2051B 입니다만, 2053B 도 그대로 응용할 수 있습니다.






반응형
블로그 이미지

Good Joon

IT Professionalist Since 1999

,