python 크 랜 베 리 파 적외선 반사 센서
2062 단어 python크 랜 베 리 파이센서
1.도구
rpi 3,미 설 ARPI 600,적외선 반사 센서
2.기본 원리
Infrared Reflective Sensor 출력 디지털 및 아 날로 그 신호
아 날로 그 신 호 는 ARPI 600 에 있 는 AD 변환 칩 TLC 1543 을 통 해 변환 된다.
TLC 1543 통신 은 rpi 의 GPIO 포트 를 사용 하여 SPI 를 모 의 신호 입력 포트 선택 과 출력 읽 기 를 합 니 다.
프로그램 은 DOUT 를 읽 어서 장애물 과 접근 하고 멀리 떨 어 진 것 을 판단 합 니 다.
장애물 에 접근 할 때 AD 변환 수 치 를 읽 습 니 다.
3.실물 연결
4.python 프로그램(ARPI 600 제공 프로그램 에 따라 수정)
#!/usr/bin/python
# -*- coding:utf-8 -*-
import RPi.GPIO as GPIO
import time
Clock = 16
Address = 20
DataOut = 21
DOUT = 17
def ADC_Read(channel):
value = 0;
for i in range(0,4):
if((channel >> (3 - i)) & 0x01):
GPIO.output(Address,GPIO.HIGH)
else:
GPIO.output(Address,GPIO.LOW)
GPIO.output(Clock,GPIO.HIGH)
GPIO.output(Clock,GPIO.LOW)
for i in range(0,6):
GPIO.output(Clock,GPIO.HIGH)
GPIO.output(Clock,GPIO.LOW)
time.sleep(0.001)
for i in range(0,10):
GPIO.output(Clock,GPIO.HIGH)
value <<= 1
if(GPIO.input(DataOut)):
value |= 0x01
GPIO.output(Clock,GPIO.LOW)
return value
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(Clock,GPIO.OUT)
GPIO.setup(Address,GPIO.OUT)
GPIO.setup(DataOut,GPIO.IN,GPIO.PUD_UP)
GPIO.setup(DOUT,GPIO.IN)
lastdata = 2
try:
while True:
data = GPIO.input(DOUT)
if lastdata and (lastdata == 1):
continue
if data == 0:
print 'Near the Obstacles'
print 'AD: %d ' % ADC_Read(6)
if data == 1:
print 'Far the Obstacles'
lastdata = data
time.sleep(0.1)
except:
GPIO.cleanup()
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.