Skip to content
- 라즈베리파이에서 아날로그 센서 값 읽기
- ADC(Analog Digital Converter)인 MCP3008 칩 필요
- CNDI 모듈에는 MCP3008이 내장되어 있어 Analog 0~7에 아낱로그 센서를 연결하면 됨
- 라즈베리파이와 MCP3008은 SPI 통신을 통해 값을 주고 받음
- SPI 통신 설정 : sudo raspi-config 를 통해 SPI 활성화
- sudo raspi-config
- Interfacing Options 선택
- Enable 선택 후 Enter -> Enable됬다는 메시지가 나오면 ESC
- spidev 모듈 설치
- sudo apt-get install python-dev
- git clone git://github.com/Gadgetoid/py-spidev.git
- cd py-spidev
- sudo python3 setup.py install
- spidev 모듈 등록
- sudo vi /etc/modules
- 소스 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
import spidev import time spi = spidev.SpiDev() spi.open(0, 0) spi.max_speed_hz = 1350000 def analog_read(channel): r = spi.xfer2([1, (8 + channel) << 4, 0]) adc_out = ((r[1]&3) << 8) + r[2] return adc_out while True: reading = analog_read(0) voltage = reading * 5 / 1024 #사용전압이 5volt이기 때문에 5 print("Reading = %d\tVoltage=%f\t" % (reading, voltage)) time.sleep(3) |
error: Content is protected !!