라즈베리 파이 ADC
Raspberry Pi는 내장 아날로그 입력 핀이 없기 때문에 포텐셔미터, 서미스터, 가스 센서와 같은 아날로그 센서의 값을 직접 읽을 수 없습니다. 이 문제를 해결하기 위해 아날로그-디지털 변환기(ADC)를 사용합니다. 이 튜토리얼에서는 Raspberry Pi로 ADS1115 ADC 모듈을 사용하여 아날로그 센서 값을 읽는 방법을 보여줍니다.
이 튜토리얼에서는 다음을 다룹니다:
- ADS1115 모듈을 사용하여 아날로그 센서를 라즈베리 파이에 연결하는 방법.
- 아날로그 센서에서 값을 읽기 위해 라즈베리 파이를 프로그래밍하는 방법.
준비물
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 모듈 핀아웃](https://newbiely.kr/images/tutorial/ads1115-adc-module-pinout.jpg)
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 모듈 및 가변 저항기 간의 배선
![라즈베리 파이 가변저항 배선도](https://newbiely.kr/images/tutorial/raspberry-pi-potentiometer-wiring-diagram.jpg)
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- 라즈베리 파이, ADS1115 모듈, 및 광 센서 간의 배선
![라즈베리 파이 광 센서 배선도](https://newbiely.kr/images/tutorial/raspberry-pi-light-sensor-wiring-diagram.jpg)
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- 라즈베리 파이, ADS1115 모듈 및 수위 센서 간의 배선
![라즈베리 파이 수위 센서 배선도](https://newbiely.kr/images/tutorial/raspberry-pi-water-sensor-wiring-diagram.jpg)
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- 라즈베리 파이, ADS1115 모듈, 토양 수분 센서 간의 배선
![라즈베리 파이 토양 수분 센서 배선도](https://newbiely.kr/images/tutorial/raspberry-pi-soil-moisture-sensor-wiring-diagram.jpg)
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
배선 구성을 간단하고 체계적으로 만들기 위해, Raspberry Pi용 스크루 터미널 블록 실드 사용을 권장합니다. 이 실드는 아래와 같이 더욱 안정적이고 관리하기 쉬운 연결을 제공합니다:
![라즈베리 파이 screw terminal block shield](https://newbiely.kr/images/tutorial/raspberry-pi-screw-terminal-block-shield.jpg)
앞서 언급한 바와 같이 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 구성 도구를 열기 위해 다음 명령을 실행합니다:
- 인터페이싱 옵션 > I2C로 이동하여 I2C 인터페이스를 활성화합니다.
- Raspberry Pi를 재부팅합니다:
- SSH를 통해 PC를 Raspberry Pi에 다시 연결하세요.
- RPi.GPIO 라이브러리가 설치되어 있는지 확인하세요. 설치되어 있지 않다면 다음 명령어를 사용하여 설치하세요:
- Raspberry Pi 터미널에서 다음 명령어를 실행하여 Adafruit_ADS1x15 라이브러리를 설치합니다:
아날로그 값을 읽는 파이썬 사용법
- Python 스크립트 파일 adc_read.py를 생성하고 다음 코드를 추가하세요:
- 파일을 저장하고 터미널에서 다음 명령을 실행하여 Python 스크립트를 실행하세요:
모든 것이 올바르게 연결되었다면, 터미널에 아날로그 값이 출력되는 것을 볼 수 있습니다.
코드 설명:
- Adafruit_ADS1x15 라이브러리는 I2C 통신을 초기화합니다.
- ADS1115 객체는 지정된 채널에서 16비트 ADC 값을 읽습니다.
- 스크립트는 아날로그 값을 매초 계속 읽고 출력합니다.
결론
ADS1115와 같은 ADC를 사용하면 Raspberry Pi가 아날로그 센서와 인터페이스하여 그 기능을 확장할 수 있습니다. 이 튜토리얼에서는 I2C 통신을 사용하여 ADS1115를 연결하고 아날로그 데이터를 읽는 방법을 보여주었습니다. 이제 다양한 프로젝트에 다른 아날로그 센서를 통합할 수 있습니다!
아래는 Raspberry Pi를 다양한 아날로그 센서와 연결하고 사용하는 방법을 설명하는 포괄적인 튜토리얼입니다.
- 라즈베리 파이 - 토양 수분 센서 튜토리얼
- 라즈베리 파이 - 수위 센서 튜토리얼
- 라즈베리 파이 - 압력 센서 튜토리얼
- 라즈베리 파이 - 조도 센서 튜토리얼
- 라즈베리 파이 - 가변 저항기 튜토리얼