라즈베리 파이 ADC

Raspberry Pi는 내장 아날로그 입력 핀이 없기 때문에 포텐셔미터, 서미스터, 가스 센서와 같은 아날로그 센서의 값을 직접 읽을 수 없습니다. 이 문제를 해결하기 위해 아날로그-디지털 변환기(ADC)를 사용합니다. 이 튜토리얼에서는 Raspberry Pi로 ADS1115 ADC 모듈을 사용하여 아날로그 센서 값을 읽는 방법을 보여줍니다.

이 튜토리얼에서는 다음을 다룹니다:

준비물

1×라즈베리 파이 5 아마존
1×ADS1115 ADC 모듈 아마존
1×Analog sensor (e.g., Potentiometer, Light sensor, Water sensor)
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) 라즈베리 파이용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) 라즈베리 파이 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
1×(추천) 라즈베리 파이용 HDMI 터치 스크린 모니터 아마존
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

ADS1115 모듈 이해하기

ADS1115는 4채널을 갖춘 16비트 ADC로, I2C (Inter-Integrated Circuit)를 사용하여 라즈베리 파이와 통신합니다. 이는 아날로그 신호(0-3.3V)를 읽고 16비트의 해상도를 제공합니다.

ADS1115 모듈은 4개의 아날로그 입력 채널을 가지고 있어, 최대 4개의 다른 아날로그 센서를 동시에 하나의 ADS1115 모듈에 연결할 수 있습니다. 이를 통해 단일 ADC 모듈을 사용하여 여러 센서 값을 동시에 측정할 수 있습니다.

ADS1115 핀아웃

ads1115 adc 모듈 핀아웃
Pin Name Description
VDD Power supply (3.3V or 5V)
GND Ground
SCL I2C clock (connect to Raspberry Pi GPIO3)
SDA I2C data (connect to Raspberry Pi GPIO2)
A0-A3 Analog input channels
ADDR I2C address selection
ALERT/RDY Alert/Ready output (optional)

Raspberry Pi에 ADS1115 배선하기

ADS1115 Pin Raspberry Pi Pin
VDD 3.3V (Pin 1)
GND GND (Pin 6)
SCL GPIO3 (Pin 5)
SDA GPIO2 (Pin 3)

다음은 Raspberry Pi, ADS1115 모듈 및 다양한 아날로그 센서를 연결하는 여러 예입니다:

  • 라즈베리 파이, ADS1115 모듈 및 가변 저항기 간의 배선
라즈베리 파이 가변저항 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

  • 라즈베리 파이, ADS1115 모듈, 및 광 센서 간의 배선
라즈베리 파이 광 센서 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

  • 라즈베리 파이, ADS1115 모듈 및 수위 센서 간의 배선
라즈베리 파이 수위 센서 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

  • 라즈베리 파이, ADS1115 모듈, 토양 수분 센서 간의 배선
라즈베리 파이 토양 수분 센서 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

배선 구성을 간단하고 체계적으로 만들기 위해, Raspberry Pi용 스크루 터미널 블록 실드 사용을 권장합니다. 이 실드는 아래와 같이 더욱 안정적이고 관리하기 쉬운 연결을 제공합니다:

라즈베리 파이 screw terminal block shield

앞서 언급한 바와 같이 ADS1115 모듈은 최대 네 개의 아날로그 센서를 동시에 연결할 수 있습니다. 이 튜토리얼에서는 하나의 센서를 사용하는 방법을 설명하지만, 여러 센서에 맞게 쉽게 조정할 수 있습니다.

라즈베리 파이에서 ADC 사용하는 방법

  • Raspberry Pi에 Raspbian 또는 다른 Raspberry Pi 호환 운영 체제가 설치되어 있는지 확인하세요.
  • Raspberry Pi가 PC와 같은 로컬 네트워크에 연결되어 있는지 확인하세요.
  • 라이브러리를 설치해야 하는 경우 Raspberry Pi가 인터넷에 연결되어 있는지 확인하세요.
  • Raspberry Pi를 처음 사용하는 경우, 라즈베리 파이 - 소프트웨어 설치을 참조하십시오.
  • Linux 및 macOS에서는 내장된 SSH 클라이언트를 사용하거나 Windows에서는 PuTTY를 사용하여 PC를 Raspberry Pi에 SSH로 연결합니다. PC를 Raspberry Pi에 SSH로 연결하는 방법을 참조하세요.
  • Raspberry Pi 구성 도구를 열기 위해 다음 명령을 실행합니다:
sudo raspi-config
  • 인터페이싱 옵션 > I2C로 이동하여 I2C 인터페이스를 활성화합니다.
  • Raspberry Pi를 재부팅합니다:
sudo reboot
  • SSH를 통해 PC를 Raspberry Pi에 다시 연결하세요.
  • RPi.GPIO 라이브러리가 설치되어 있는지 확인하세요. 설치되어 있지 않다면 다음 명령어를 사용하여 설치하세요:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Raspberry Pi 터미널에서 다음 명령어를 실행하여 Adafruit_ADS1x15 라이브러리를 설치합니다:
sudo pip install Adafruit-ADS1x15

아날로그 값을 읽는 파이썬 사용법

  • Python 스크립트 파일 adc_read.py를 생성하고 다음 코드를 추가하세요:
/* * 이 라즈베리 파이 코드는 newbiely.kr 에서 개발되었습니다 * 이 라즈베리 파이 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/raspberry-pi/raspberry-pi-adc */ import time import Adafruit_ADS1x15 # Create an ADS1115 ADC object adc = Adafruit_ADS1x15.ADS1115() while True: analog_value = adc.read_adc(0, gain=1) # Read from channel 0 print(f"Analog Value: {analog_value}") time.sleep(1)
  • 파일을 저장하고 터미널에서 다음 명령을 실행하여 Python 스크립트를 실행하세요:
python3 adc_read.py

모든 것이 올바르게 연결되었다면, 터미널에 아날로그 값이 출력되는 것을 볼 수 있습니다.

코드 설명:

  • Adafruit_ADS1x15 라이브러리는 I2C 통신을 초기화합니다.
  • ADS1115 객체는 지정된 채널에서 16비트 ADC 값을 읽습니다.
  • 스크립트는 아날로그 값을 매초 계속 읽고 출력합니다.

결론

ADS1115와 같은 ADC를 사용하면 Raspberry Pi가 아날로그 센서와 인터페이스하여 그 기능을 확장할 수 있습니다. 이 튜토리얼에서는 I2C 통신을 사용하여 ADS1115를 연결하고 아날로그 데이터를 읽는 방법을 보여주었습니다. 이제 다양한 프로젝트에 다른 아날로그 센서를 통합할 수 있습니다!

아래는 Raspberry Pi를 다양한 아날로그 센서와 연결하고 사용하는 방법을 설명하는 포괄적인 튜토리얼입니다.

관련 튜토리얼