아날로그-디지털 변환기 (ADC)를 어떻게 연결할 수 있습니까?


22

Rasbperry Pi에서 ADC 옵션을 찾고 있습니다. 지금까지 가능한 것이 무엇인지 궁금합니다. 물론 쉽고 저렴합니다.


무엇을 위해 필요합니까?
Jivings

@Jivings, 나는 상대적으로 낮은 샘플 속도로 할 수있는 몇 가지 프로젝트를 생각하고 있습니다.
John La Rooy

답변:


15

AdafruitMPI3008 ($ 3.75) -SPI 인터페이스가있는 8 채널 10 비트 ADC를 사용하여 mp3 파일의 볼륨을 제어하는 ​​방법 에 대한 유용한 자습서 를 제공하지만 모든 아날로그-디지털 프로젝트를위한 좋은 출발점을 제공해야합니다.


1
Arduino와 PICAXE는 모두 잘못된 솔루션입니다.
Alex Chamberlain

Arduino가 잘못된 해결책이라는 데 동의하지 않습니다. Arduino는 USB를 사용하고 MCP3008은 SPI를 사용합니다. Arduino는 모두 즉시 장착 가능하며 즉시 사용할 수 있습니다. 반면 MCP3008은 일부 액세서리가 필요합니다. MCP3008은 저렴하지만 필요한 모든 것을 추가 할 때 (GPIO 브레이크 아웃, 브레드 보드 장착) 비용 차이가 예상만큼 크지 않습니다. Arduino를 실험하고 빠르게 돌고 싶다면 대체로 탁월한 옵션이지만 영구 설치를 원한다면 MCP3008이 가장 잘 작동한다는 데 동의합니다.
Dan B

8

ADS1115

ADS1113, ADS1114 및 ADS1115 는 초소형 무연 QFN-10 패키지 또는 MSOP-10 패키지로 제공되는 16 비트 분해능의 정밀 아날로그-디지털 변환기 (ADC)입니다. ADS1113 / 4 / 5는 정밀성, 성능 및 구현 편의성을 염두에두고 설계되었습니다. ADS1113 / 4 / 5에는 온보드 기준 및 발진기가 있습니다. 데이터는 I²C 호환 직렬 인터페이스를 통해 전송됩니다. 4 개의 I²C 슬레이브 주소를 선택할 수 있습니다. ADS1113 / 4 / 5는 2.0V ~ 5.5V 범위의 단일 전원 공급 장치에서 작동합니다.

먼저 I²C 모듈이로드되어 있는지 확인해야합니다 . 다음으로 아래와 같이 ADS1115를 연결하십시오. ADDR이 연결된 핀에 따라 4 가지 다른 주소가 가능합니다. 즉, 총 16 개의 채널을 단일 I²C 버스에 연결할 수 있습니다.

GND = 0x48, VDD = 0x49, SDA = 0x4A, SCL = 0X4B

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

마지막 변환 결과는 다음과 같습니다.

# i2cget -y 0 0x49 0 w
0x0000

아직 변환이 수행되지 않았으므로 기본값 0x0000이 여기에 반환됩니다. 이제 설정 레지스터를 살펴 보겠습니다

# i2cget -y 0 0x49 1 w
0x8385

LSB가 첫 번째이므로 0b1000010110000011

AIN0에서 싱글 엔드 변환을하고 싶습니다. 따라서 비트 [14:12]를로 작성해야합니다 0b100. 즉0b1100010110000011

# i2cset -y 0 0x49 1 0xC385 w
# i2cget -y 0 0x49 0 w
0xa30b

LSB가 첫 번째이므로 10 진수 2979와 같습니다.


1
이 패키지 유형은 핀 크기 / 간격 때문에 작업하기가 조금 더 어렵지 않습니까? 특히 내 손재주를 제한하는 관절염 나 같은 사람 (합니다.
스티브 Robillard

@SteveRobillard, 예, 그들은 작업하기 어렵지만 생각보다 쉽습니다. MSOP의 경우 배율, 플럭스, 솔더 심지 및 우수한 납땜 스테이션을 갖는 데 도움이됩니다. 포지셔닝에 만족할 때까지 약간의 땜납으로 MSOP의 한 모서리를 고정 할 수 있습니다. 작은 크기는 회로의 노이즈를 줄이는 데 도움이되므로 시도해 볼 가치가 있습니다. 놀랄 수도 있습니다.
John La Rooy

1

원하는 용도로 높은 비트 전송률이나 해상도를 요구하지 않는 한 Arduino를 사용할 수 있습니다. Arduinos는 지원을위한 거대한 커뮤니티가 있고 잠시 동안 주변에 있었고 USB를 통한 통신은 GPIO 가 없기 때문에 좋습니다 .

다음은 Simon Monk의 블로그 게시물에 대한 링크 와 함께 Python으로 Raspberry Pi에서 Arduino와 통신하는 방법에 대한 지침입니다.

또한 Arduino에 대해 들어 본 적이없는 경우 (아마도 바위 아래에서 살았을 때) 여기 소개 페이지 와 아날로그 입력 의 초보자 수준에 대한 링크가 있습니다.


0

Arduino를 사용하는 것과 비슷하지만 RPi UART에 연결된 PICAXE 장치는 어떻습니까? 이것은 더 작고 훨씬 저렴합니다. 나에게 Arduino는 실제 요구에 따라 정상에 보입니다.


0

한 달 또는 두 달 안에 (아프리카로 배송으로 인해) WiringPi 사이트를 지원하는 wirepi 를 갖춘 I2C PCF8591 보드를받을 수 있으며 보드는 3.3v (일반적으로) Amazon Amazon 링크 에서 WaveShare 버전을 얻었습니다. 읽었을 때, PCF8591은 꽤 좋지만 실제로 보드를 내 앞에 놓을 때까지 좋은지 아닌지를 말할 수 없다


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