Processor

【라즈베리파이】 wiringPi Python : 아날로그 센서(조도 센서)

작성자 임베디드코리아 작성일26-02-20 00:37 조회99회 댓글0건
<* 조도 센선 실험 *>
◆ 조도센서는 SPI의 1채널을 이용하여 제어시키며,
    조도센서의 값이 100이하가 되었을 때 led의 불빛이 들어 오게 한다.

▶ mcp3008의 채널은 0~8번까지 있으며, 조도센서를 제어하기 위해  채널 1번을 사용하였고,
  채널 1번과 GPIO18핀 연결, mcp3008(CS/SHDN)은 라즈베리파이(SPI0 CS0)와 연결,
  mcp3008(Din)은 라즈베리파이(SPI0 SCLK)에 연결, mcp3008(Dout) 핀은 라즈베리파이(SPI0 MISO)에 연결,
    mcp3008(CLK) 핀은 라즈베리파이(SPI0 MOSI)에 연결한다.

--->>> 예제 : CDS_mcp3008.py  <<<----------------------------------
import spidev, time
import RPi.GPIO as GPIO

led = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(led,GPIO.OUT)
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(1)
    voltage = reading * 3.3/1024
    print("Reading=%d\tVoltage=%f"%(reading, voltage))
    time.sleep(1)
    if reading < 100:
        GPIO.output(led,GPIO.HIGH)
        print("LED ON")
    else :
        GPIO.output(led,GPIO.LOW)
        print("LED OFF")
-------------------------------------------------------------------------
 <결과>
>> 빛을 가리지 않았을 때는 100 이상의 값,  Voltage, LED OFF라는 문구가 출력
>> 빛을 가리게 되었을 때는 LED가 켜짐과 동시에 100이하의 값, Voltage, LED ON이라고 출력