python树莓派红外反射传感器


Posted in Python onJanuary 21, 2019

本文实例为大家分享了python树莓派红外反射传感器的程序,供大家参考,具体内容如下

1、工具

rpi3,微雪ARPI600,Infrared Reflective Sensor

2、基本原理

Infrared Reflective Sensor 输出数字和模拟信号

模拟信号通过ARPI600上的AD转换芯片TLC1543进行转换

TLC1543通信使用rpi的GPIO口,模拟SPI,进行模拟信号输入端口选择,和输出读取

程序通过读取DOUT判断与障碍物接近和远离

在接近障碍物时读取AD转换数值

3、连接实物

python树莓派红外反射传感器

4、python程序(根据ARPI600提供程序修改)

#!/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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之有容乃大的list(2)
Sep 15 Python
python连接oracle数据库实例
Oct 17 Python
Python中使用Inotify监控文件实例
Feb 14 Python
理解Python中的绝对路径和相对路径
Aug 30 Python
Python基于高斯消元法计算线性方程组示例
Jan 17 Python
Python采集代理ip并判断是否可用和定时更新的方法
May 07 Python
python+mysql实现教务管理系统
Feb 20 Python
利用python计算windows全盘文件md5值的脚本
Jul 27 Python
使用python绘制温度变化雷达图
Oct 18 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
May 09 Python
python中有函数重载吗
May 28 Python
python小白学习包管理器pip安装
Jun 09 Python
python实现自动解数独小程序
Jan 21 #Python
python 将对象设置为可迭代的两种实现方法
Jan 21 #Python
python 实现敏感词过滤的方法
Jan 21 #Python
python执行精确的小数计算方法
Jan 21 #Python
详解安装mitmproxy以及遇到的坑和简单用法
Jan 21 #Python
python dict 相同key 合并value的实例
Jan 21 #Python
关于python之字典的嵌套,递归调用方法
Jan 21 #Python
You might like
yii添删改查实例
2015/11/16 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
php正则修正符用法实例详解
2016/12/29 PHP
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
jQuery 幻灯片插件(带缩略图功能)
2011/01/24 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
详解nodeJS之二进制buffer对象
2017/06/03 NodeJs
详解vue-cli中配置sass
2017/06/21 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
2018/03/02 Javascript
关于jquery layui弹出层的使用方法
2018/04/21 jQuery
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
2018/08/08 Javascript
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
JavaScript Image对象实现原理实例解析
2020/08/26 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
python实现根据窗口标题调用窗口的方法
2015/03/13 Python
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
Python正则表达式使用经典实例
2016/06/21 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
2017/06/16 Python
python使用matplotlib画饼状图
2018/09/25 Python
pygame游戏之旅 调用按钮实现游戏开始功能
2018/11/21 Python
python模糊图片过滤的方法
2018/12/14 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
python基于K-means聚类算法的图像分割
2019/10/30 Python
Django-migrate报错问题解决方案
2020/04/21 Python
PyCharm+PyQt5+QtDesigner配置详解
2020/08/12 Python
美国杂志订阅折扣与优惠网站:Magazines.com
2016/08/31 全球购物
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
三万活动总结
2014/04/28 职场文书
IT工程师岗位职责
2014/07/04 职场文书
个人主要事迹材料
2014/08/26 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
动画《新网球王子 U-17 WORLD CUP》希腊队PV公开
2022/04/02 日漫