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实现simhash算法实例
Apr 25 Python
简介Python中用于处理字符串的center()方法
May 18 Python
详解Python if-elif-else知识点
Jun 11 Python
python3 拼接字符串的7种方法
Sep 12 Python
详解Python 4.0 预计推出的新功能
Jul 26 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
Oct 24 Python
Python用5行代码实现批量抠图的示例代码
Apr 14 Python
pytorch 限制GPU使用效率详解(计算效率)
Jun 27 Python
利用Python实现斐波那契数列的方法实例
Jul 26 Python
python判断元素是否存在的实例方法
Sep 24 Python
python调用摄像头的示例代码
Sep 28 Python
Python os和os.path模块详情
Apr 02 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
php中设置index.php文件为只读的方法
2013/02/06 PHP
通过PHP简单实例介绍文件上传
2015/12/16 PHP
一个简单的php路由类
2016/05/29 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
2017/06/06 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
2014/06/09 Javascript
Nodejs极简入门教程(一):模块机制
2014/10/25 NodeJs
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
JavaScript数据类型检测代码分享
2015/01/26 Javascript
JavaScript获得页面base标签中url的方法
2015/04/03 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
AngularJS创建自定义指令的方法详解
2016/11/03 Javascript
js实现上下左右弹框划出效果
2017/03/08 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
详解javascript中的变量提升和函数提升
2018/05/24 Javascript
Angular4 组件通讯方法大全(推荐)
2018/07/12 Javascript
Vue 路由 过渡动效 数据获取方法
2018/07/31 Javascript
vue移动端微信授权登录插件封装的实例
2018/08/28 Javascript
JavaScript中的连续赋值问题实例分析
2019/07/12 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
Django实现图片文字同时提交的方法
2015/05/26 Python
python中日志logging模块的性能及多进程详解
2017/07/18 Python
python 监听salt job状态,并任务数据推送到redis中的方法
2019/01/14 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
python3实现单目标粒子群算法
2019/11/14 Python
Python求解正态分布置信区间教程
2019/11/20 Python
python如何快速拼接字符串
2020/10/28 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
Charles & Keith欧盟:新加坡时尚品牌
2019/08/01 全球购物
2015年小学重阳节活动总结
2015/07/29 职场文书
学者《孟子》名人名言
2019/08/09 职场文书