사용 가능한 아날로그 (입력) 핀 수를 어떻게 연장합니까?


26

멀티플렉서를 사용하여 Arduino에서 디지털 핀 수를 확장하는 방법을 이미 알고 있습니다.

가지고있는 아날로그 입력 채널 수를 늘리고 싶습니다. 한 가지 해결책은 다른 Arduino를 슬레이브로 추가하는 것입니다.

아날로그 입력 채널 수를 늘리려면 어떻게해야합니까? (일부 MUXing 및 ADC가 관련된 것으로 가정합니다). 답변을 작성하기가 너무 복잡하면 회로 / 코드의 일반적인 개요도 좋습니다.

하드웨어 솔루션이 너무 나쁘면 제안을 선호하지만 제안을 보호하기 위해 열려 있습니다.


답변:


32

이미 디지털 멀티플렉서 칩에 익숙하다면 좋은 소식입니다! 아날로그 신호에도 사용할 수 있습니다.

http://playground.arduino.cc/Learning/4051

기본 전제는 디지털 신호 멀티플렉싱과 정확히 같습니다. 4051 칩을 "레인 체인저"로 사용하고 칩에게 스위칭하도록 지시 한 레인의 신호를 읽습니다. 4051은 arduino에서 3 개의 디지털 핀과 1 개의 추가 아날로그 (또는 디지털) 핀을 사용하여 최대 8 레인의 입력을 생성합니다. 일부 멀티플렉서는 체인 가능하므로 arduino 자체에서 신호를 계속 가져갈 필요없이 8 개의 신호를 상당히 쉽게 추가 할 수 있습니다.

이는 디지털 신호에 대해 이미 알고있는 기술과 동일합니다. 읽은 채널을 디지털 대신 아날로그 핀에 연결 한 다음 이진 상태를 순환하여 아날로그 값을 읽으십시오.

나는 당신을 위해 애니메이션 GIF를 만들었습니다.

여기에 이미지 설명을 입력하십시오


3
링크가 질문에 대답하는 동안 조금 더 자세히 설명해 주시겠습니까? 회로에 대해 짧게 쓰시겠습니까? (링크 만 답변은 네트워크에서 권장하지 않습니다 )
Manishearth

괜찮아. 답변이 확장되었습니다.
Steve Cooley

3
하나의 설명, 당신이 언급 한 4051은 디지털 mux가 아닌 아날로그 mux입니다. 출력 및 입력 드라이버가 선형 응답을 위해 설계되지 않았기 때문에 이것을 달성 할 수없는 디지털 mux가 있기 때문에 귀하의 답변에서 명확하게 설명하겠습니다. 아마도 아날로그 mux를 연결하면 mux의 특성에 따라 신호에 영향을 줄 수 있다는 점에 주목할 가치가 있습니다.
naven87

1
아날로그 mux는 선택하기가 쉽지 않다는 점에 주목할 필요가 있습니다. 디자이너는 전압 스윙 (대부분 opamp와 같은 공급 범위 내에서만 작동), 대역폭, ON 저항, 누화 등을 고려해야합니다. 전압 스윙은 가장 큰 잠재력입니다. 쇼 스토퍼.
Mister Mystère

또한 디지털 핀을 사용하여 센서에 전원을 공급할 수 있으므로 VCC를 감지하고 동일한 아날로그를 공유하기 위해 하나의 디지털 핀을 켜면됩니다.
Ciasto piekarz

10

Arduino의 ATmega 칩 자체는 아날로그 MUX를 사용하고 있음을 기억해야합니다. Uno 기반 (ATmega328) 칩에는 단일 ADC 만 있습니다. 6 개의 아날로그 입력은 실제로 하나의 ADC에 연결되는 MUX입니다.

그렇기 때문에 한 번에 하나의 아날로그 입력 만 읽을 수 있습니다.

아날로그 입력을 확장 할 때이 모든 MUXing을 수행하는 데 걸리는 시간과 애플리케이션에 추가 외부 ADC가 필요한지 여부를 고려해야합니다.


1

이것을 고려하십시오 : Arduino와 직렬 통신으로 ATtiny 85를 추가하면 Rx, Tx에 2 핀을 사용하며 아날로그로 사용할 수있는 3 개의 핀이 더 있습니다. 이 aay 당신은 자신의 프로토콜을 개발할 수 있습니다, ATtiny는 알고리즘을 처리하고 처리 된 정보를 Arduino에 보낼 수 있습니다. 매우 저렴합니다. 나는 그것을 시도했습니다.

좋은 날

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.