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

내장 ADC 없는 라즈베리 파이에서 아날로그 센서 측정하기

배경

라즈베리 파이에는 내장 아날로그 입력이 없지만, 그렇다고 아날로그 센서를 읽을 수 없는 것은 아닙니다. 몇 개의 저항과 커패시터를 조합해 간단한 스텝 응답 기법을 사용하면 저항을 측정할 수 있습니다. 이는 포텐셔미터, 포토레지스터, 서미스터 등에 이상적입니다.

이 접근법은 Adafruit 튜토리얼과 Raspberry Pi Cookbook에서 대중화되었으며, 커패시터가 임계값을 넘어 충전되는 데 걸리는 시간을 측정합니다. 라즈베리 파이의 GPIO 핀은 전압이 ~1.65V를 초과하는 순간을 감지해 연결된 가변 저항의 저항값을 추론할 수 있습니다.

필요한 것들

파이썬 코드

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

# 핀 할당
A_PIN = 18  # 커패시턴스 방전/충전 제어
B_PIN = 23  # 전압 임계값 감지

def discharge():
    GPIO.setup(A_PIN, GPIO.IN)
    GPIO.setup(B_PIN, GPIO.OUT)
    GPIO.output(B_PIN, False)
    time.sleep(0.005)

def charge_time():
    GPIO.setup(B_PIN, GPIO.IN)
    GPIO.setup(A_PIN, GPIO.OUT)
    count = 0
    GPIO.output(A_PIN, True)
    while not GPIO.input(B_PIN):
        count += 1
    return count

def analog_read():
    discharge()
    return charge_time()

try:
    while True:
        print(analog_read())
        time.sleep(1)
except KeyboardInterrupt:
    GPIO.cleanup()

스크립트 실행 시 다음과 유사한 출력이 나옵니다:

$ sudo python pot_step.py
101
210
101
623
435
367
728
610
512
314
317
0

포텐셔미터 노브를 돌리면 판독값이 대략 10~170 사이로 변동하며 가변 저항을 반영합니다.

작동 원리

이 기법은 RC 충전 곡선에 의존합니다. 커패시터가 가변 저항과 연결되면 전압이 지수적으로 상승합니다. GPIO 핀은 커패시터 전압이 입력 임계값(~1.65V)을 초과하면 논리 HIGH로 인식합니다. 루프 반복 횟수로 측정된 경과 시간은 저항과 직접적 상관관계가 있습니다: 저항이 낮을수록 충전이 빨라 더 작은 카운트값이 나옵니다.

파이에 아날로그-디지털 컨버터가 없기 때문에 이 타이밍 방식이 그런 한계를 우회해 다양한 아날로그 센서를 비용 효율적이고 신뢰성 있게 읽는 방법을 제공합니다.

제조공정

  1. 라즈베리 파이와 DS18B20을 이용한 전문적인 온도 모니터링
  2. 라즈베리 파이용 콤팩트 DHT 온습도 브레이크아웃: ATtiny85와 DHT22/DHT11
  3. DS1820 원와이어 온도 센서를 라즈베리 파이 GPIO로 연결하는 방법
  4. 라즈베리 파이에 센서 데이터 통합하기: GPS 및 MPU-9150 IMU 실전 가이드
  5. HC-SR04 초음파 거리 센서를 라즈베리 파이 3에 연결하는 완벽 가이드
  6. 단일 GPIO 핀으로 라즈베리 파이에서 아날로그 센서 측정하기
  7. 라즈베리 파이 포토셀 로깅 & 알림 시스템 – 파이썬으로 저전력 조도 센서 만들기
  8. 자바 ME 8로 라즈베리 파이 IoT 구축: 1부 – GPIO 센서 연동
  9. 라즈베리 파이로 리니어 홀 센서 읽기: 자바 가이드 & ADC0832 통찰
  10. 라즈베리 파이 GPIO로 버튼 눌림 읽기 – 단계별 가이드