행복한 하루

[MicroPython] Raspberry Pi PICO를 이용하여 DC 전압 측정 센스 테스트(SZH-SSBH-043) - 1 본문

RaspberryPi/Raspberry Pi Pico

[MicroPython] Raspberry Pi PICO를 이용하여 DC 전압 측정 센스 테스트(SZH-SSBH-043) - 1

변화의 물결 2023. 5. 17. 17:14

 

 

안녕하세요. 

 

  이전 Arduino Nano IoT 33을 이용해서 DC 전압 측정 모듈을 테스트해 보았습니다.  Pico 소스를 적용하려고 하니 약간의 변경이 필요해서 변경된 부분에 대해서 공유드립니다.

 

  기본 SZH-SSBH-043 모듈을 이용한 전압 계산식 내용은 이전 글을 참조하시면 됩니다.

 

 

Arduino Nano IoT 33을 이용해서 DC 전압 측정 센서 테스트(SZH-SSBH-043)

안녕하세요. 배터리 패키지에서 잔량을 신호로 주는 것이 있으면 좋겠지만 그런 배터리 패키지는 고가이고 일반적인 충전지에서 전압을 기반으로 잔량을 확인하고 있다고 합니다. 그리고 SoC(Sta

remnant24c.tistory.com

1. Raspberry Pi PICO의 ADC 확인

  - ADC(Analog to Digital Converter)는 아날로그 전기신호를 디지털 전기 신호로 변환하는 전자회로입니다.

  - Raspberry Pi PICO 에는 12bit 해상도를 가지는 ADC 회로가 장착되어 있습니다. 여기서 해상도라고 하면 전압을 얼마 단위로 분해(표현)가 가능한지를 나타내는 것이라고 생각하면 됩니다.

 

  - 12bit는 4096 단계로 Ref 전압을 나눌 수 있습니다. 예를 들어, 분해능(Resolution)이 12bit이고 레퍼런스 전압이 3.3이면 3.3/4095 = 0.8mV이고 ADC핀에 0 ~ 3.3V의 아날로그 신호가 들어오면 0 ~ 4095 디지털 값으로 프로그램에서 받을 수 있습니다. 받은 디지털 값 곱하기 Conversion_factor(0.8mv)를  곱해주면 원래 들어온 전압을 구할 수 있습니다.

2. 연결 방법

  - ADC 0 핀에 전압측정 모듈 S핀을 연결하고 GND와 -를 연결합니다.

3. 소스 확인

  - 여기서, 확인해야 할 것이 PICO의 ADC 분해능력은 12bit인데 소스에서 ADC 읽을 때는 read_u16() 함수를 사용해서 분해능이 16비트인 것처럼 사용하고 있습니다. 처음에 저도 아무 생각 없이 사용했는데, 이 내용에 대해서 정리해 놓으신 분이 있어서 아래 “참고 사이트 2” 글을 참고하시면 됩니다.

 

  - 요약하면, 12비트는 맞는데 스케일 업해서 16비트처럼 해놓았다고 합니다. 스케일업 했다고 16비트처럼 읽을 수 있는 것이 아니라 중간중간 단위는 12비트 값에 맞게 매핑된다고 생각하면 될 듯합니다.

  - 아마 읽기 편한 단위이기도 하고 해상도 높은 보드 같이 호환이 될 수 있도록 하기 위해서가 아닐까 합니다.   

from machine import ADC
from utime import sleep
import time

volt_pin = ADC(26)

while True:

    input_vol = volt_pin.read_u16()
    Vin = (input_vol * 3.3) / 65535.0; # 3.3 is Ref voltage
    cal_vol = Vin / (7500.0/(30000.0+7500.0))

    print("\nInput Analog : ", input_vol)
    print("Voltage : ", cal_vol)

    sleep(1)

4. 작동 확인

  - 테스트기로 측정하면 12.91V로 나오는 배터리 값이 나오고 DC 측정 모듈을 통해서 얻은 값 평균을 보면 대략 12.89V 가 나왔습니다. 출력 화면으로 보면 오차가 0.2V인데, 조금 출렁이기도 해서 오차가 0.7V까지 될 수 있다고 봐야 할 것 같습니다. 그래서 보정하는 코드가 필요할 듯합니다.

 

감사합니다.

 

<참고 사이트>

1. 전압계산식 참조

https://remnant24c.tistory.com/457

2. 라즈베리파이 피코 내장 온도센서 사용하는 방법

https://diyver.tistory.com/192 

 

 

Comments