옵티컬 트랜지스터의 값을 Raspberry Pi2로 읽기

2678 단어 RaspberryPi

환경 정보


Raspberry Pi2 Model B
OS: Raspbian JESSIE
A/D 변환기: MCC3002
Python 2.7

의 목적


A/D 변환기를 이용하여 Raspberry Pi2의 SPI 광전 트랜지스터의 값을 얻어 날이 어두워진 후에 LED를 켜다

용어 설명


이른바 SPI 통신


직렬 외곽 인터페이스를 사용하는 이니셜을 SPI 통신이라고 하는데 소량의 바늘로 데이터를 교환하는 저속 인터페이스다.
네 개의 단자로 구성되어 있다.
SCK・・Serial Clock
MISO・・Master In Slave Out
MOSI・・Master Out Slave In
SS・Slave Select

이른바 A/D 변환


아날로그→디지털 변환, 아날로그는 연속값, 숫자는 정해진 시간의 스냅샷 값입니다.
전압의 변화 등 아날로그 값을 디지털 값으로 변환하는 칩을 A/D 변환기라고 한다.

전기회로


회로도를 준비할 수 없으니 사진을 참고하세요.

MCP 302의 연결 방법은 데이터 테이블을 참조합니다.

요점에 부합하다


프로그램을 기재하고 실행했지만 Vss 단자가 +(3.3V)와 연결되어 있어 GND에 연결되면 값을 얻을 수 있다는 이유로 수치가 완전히 변하지 않는 현상이 있었다.

절차.


pi-spidev 설치


pi-spidev는 파이톤에서 SPI를 이용하여 통신하는 파이톤 모듈입니다.다음 명령을 사용할 수 있습니다.
$ git clone git://github.com/doceme/py-spidev
$ cd py-spidev
$ sudo python setup.py install

데이터 취득 처리


파이톤에서의 구현은 GPIO와py-spidev를 이용하여 광전기 트랜지스터의 값이 10시보다 낮을 때 LED를 켜는 것을 실현했다.
다음은 실제 파이썬 프로그램입니다.

#!/usr/bin/env python
# Read the analog sensor value via MCP3002
# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO
import spidev
import time
import subprocess

def ledFlash(num):
    if num < 10:
        GPIO.output(LED , GPIO.HIGH)
    else:
        GPIO.output(LED , GPIO.LOW)
    return


GPIO.setmode(GPIO.BCM)
LED = 25
GPIO.setup(LED , GPIO.OUT)

# opne SPI device 0.0

spi = spidev.SpiDev()
spi.open(0 , 0)

try:
    while True:
        resp = spi.xfer2([0x68, 0x00]) ・・・ポイント①
        value = (resp[0] * 256 + resp[1]) & 0x3ff ・・・ポイント②
        print value
        ledFlash(value) ・・・ポイント③
        time.sleep(0.2)
except KeyboardInterrupt:
    spi.close()


GPIO.cleanup()


  • 시①
    MCP 302에 대한 입력 신호를 변환기로 사용하는 사양은 다음과 같습니다.
    CH0에서 0b01101000, 0b억0(이진법)
    CH1에서 취득 시 0b01111000, 0b억0(이진법)
    spidev.xfer2 방법에 상술한 16진수를 전달하고 있다.
  • 포인트 ②
    응답에서 응답(10비트) 받기
    ※ 여기서는 왜 이런 계산 공식인지 더 알아야 한다
  • 시 ③
    준비된 LED에 값을 매개 변수로 전달하는 깜박임 방법
    방법 내에서 값이 10 이하일 때 LED가 빛을 발한다.(방이 상당히 어둡기 때문에 보통 16-17의 값이기 때문에 10으로 설정하지만 여기서 빛을 발하고 싶은 한도값만 바꾸면 된다)
  • 참고 가치가 있는 보도


    방의 밝기를 얻는 광전기 트랜지스터 편
    나는 내 방의 온도를 잠그려고 했다.

    좋은 웹페이지 즐겨찾기