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字符串和文件操作常用函数分析
Apr 08 Python
Python实现曲线点抽稀算法的示例
Oct 12 Python
在PyCharm中批量查找及替换的方法
Jan 20 Python
详解Python循环作用域与闭包
Mar 21 Python
Python检测数据类型的方法总结
May 20 Python
对Python函数设计规范详解
Jul 19 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
Sep 06 Python
python实现差分隐私Laplace机制详解
Nov 25 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
May 11 Python
python基于pygame实现飞机大作战小游戏
Nov 19 Python
python读取图片颜色值并生成excel像素画的方法实例
Feb 19 Python
Python 流媒体播放器的实现(基于VLC)
Apr 28 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添加MySQL数据记录代码
2008/06/07 PHP
php实现求相对时间函数
2015/06/15 PHP
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
js图片卷帘门导航菜单特效代码分享
2015/09/10 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
2016/05/04 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
JavaScript实现计算多边形质心的方法示例
2018/01/31 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
vue动态改变背景图片demo分享
2018/09/13 Javascript
js使用cookie实现记住用户名功能示例
2019/06/13 Javascript
vue实现数据控制视图的原理解析
2020/01/07 Javascript
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
2015/05/16 Python
Python实现的求解最大公约数算法示例
2018/05/03 Python
详解Django中间件的5种自定义方法
2018/07/26 Python
Python 学习教程之networkx
2019/04/15 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
Django的models中on_delete参数详解
2019/07/16 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
Python的形参和实参使用方式
2019/12/24 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
python字符串拼接+和join的区别详解
2020/12/03 Python
Python用Jira库来操作Jira
2020/12/28 Python
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
运动鞋、足球鞋和慕尼黑球衣:Sport Münzinger
2019/08/26 全球购物
您熟悉ORM(Object-Relation Mapping)吗?请谈谈您所理解的ORM
2016/02/08 面试题
借款协议书
2014/04/12 职场文书
后备干部推荐材料
2014/12/24 职场文书
小学生光盘行动倡议书
2015/04/28 职场文书
婚庆开业庆典主持词
2015/06/30 职场文书
2019企业给员工的慰问信
2019/06/24 职场文书