산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

MCP3008 ADC로 라즈베리 파이에서 아날로그 센서 읽기

라즈베리 파이에 아날로그 센서를 연결하는 건 GPIO 핀이 디지털만 지원하기 때문에 까다로울 수 있습니다. 저렴한 해결책은 MCP3008로, 8채널 10비트 아날로그-디지털 변환기로 파이 SPI 버스에 직결되며 추가 부품이 필요 없습니다.

이 가이드에서는 MCP3008을 라즈베리 파이에 배선하고, 조도 의존 저항(LDR)과 TMP36 온도 센서를 연결한 뒤, 간단한 파이썬 스크립트로 데이터를 읽는 과정을 안내합니다.

필요한 것

파이에서 SPI 활성화

SPI 인터페이스는 기본 비활성화돼 있습니다. 라즈베리 파이에서 SPI 인터페이스 활성화하기 단계를 따라 SPI를 활성화하고 spidev 파이썬 라이브러리를 설치하세요.

회로 연결

MCP3008은 파이 40핀 헤더의 GPIO 핀 4개가 필요합니다. 다음 핀 연결(핀 번호는 헤더 P1 번호 기준):

VDD 3.3V
VREF 3.3V
AGND GROUND
CLK GPIO11 (P1-23)
DOUT GPIO9 (P1-21)
DIN GPIO10 (P1-19)
CS GPIO8 (P1-24)
DGND GROUND

MCP3008의 CH0~CH7 핀 각각이 아날로그 입력이 됩니다. 아래 예제에서는 CH0를 LDR, CH1을 TMP36에 사용하며 나머지 6채널은 향후 센서용으로 비워둡니다.

조도 의존 저항 (LDR)

LDR 저항은 밝은 빛에서 약 10kΩ, 어둠에서 수 메가옴으로 올라갑니다. 10kΩ 저항과 전압 분배기를 구성하면 MCP3008은 조명 시 0V 근처, 어두울 때 3.3V 근처 전압을 읽습니다.

TMP36 온도 센서

TMP36은 3핀 아날로그 온도 센서입니다. 3.3V로 전원 공급하고 VOUT 핀을 읽습니다. 25°C에서 0.750V 출력, 선형 기울기 10mV/°C. 따라서 0°C는 0.500V, 100°C는 1.500V입니다.

파이썬으로 데이터 읽기

MCP3008은 0~1023 범위의 10비트 값을 출력하며 0V~3.3V에 선형 매핑됩니다. TMP36의 경우 약 -50°C~+280°C 온도 범위에 해당합니다.

아래는 spidev 라이브러리로 채널 0과 1을 읽는 최소 예제:

import spidev
import time

spi = spidev.SpiDev()
spi.open(0, 0)  # 버스 0, 디바이스 0
spi.max_speed_hz = 1350000

def read_channel(channel):
    # MCP3008 프로토콜: 시작 비트, 싱글/디프, 채널(3비트), 5더미 비트
    adc = spi.xfer2([1, (8 + channel) & 0x0F << 4, 0])
    data = ((adc[1] & 3) << 8) + adc[2]
    return data

while True:
    ldr_val = read_channel(0)
    temp_val = read_channel(1)
    temp_c = (temp_val * 3.3 / 1023) * 100 - 50  # °C 변환
    print(f'LDR: {ldr_val}, Temp: {temp_c:.2f}°C')
    time.sleep(1)

센서 레이아웃에 맞춰 채널 번호를 변경하세요. 스크립트는 LDR 원시 ADC 값과 계산된 섭씨 온도를 지속 출력합니다.

이 설정으로 포토다이오드, 압력 트랜스듀서, 습도 프로브 같은 추가 아날로그 센서를 CH2~CH7에 배선하고 파이썬 코드를 확장해 활용할 수 있습니다.

해피 해킹!

제조공정

  1. 5달러 I2C 센서로 라즈베리 파이 온도 로거 만들기
  2. 파이썬, SQLite, LabVIEW로 라즈베리 파이 온도 프로파일링 정밀 구현
  3. 라즈베리 파이 다중 DS18B20 1-와이어 센서 연결으로 정확한 온도 모니터링
  4. 라즈베리 파이 2에서 DS18B20으로 온도 읽기
  5. 라즈베리 파이와 DS18B20을 이용한 전문적인 온도 모니터링
  6. 라즈베리 파이에서 Maxim 1-Wire 센서와 DS2482 I2C 브리지로 온도 측정하기
  7. 라즈베리 파이와 TMP006 적외선 온도 센서: 파이썬 라이브러리 및 설정 가이드
  8. 라즈베리 파이와 파이썬으로 원격 온도 센서 만들기 – 단계별 가이드
  9. 라즈베리 파이로 서버실 정확한 온도 모니터링하기
  10. 라즈베리 파이 3와 PubNub로 원격 기상 모니터링하기