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解析树及树的遍历
Feb 03 Python
Python yield 使用方法浅析
May 20 Python
python机器学习之决策树分类详解
Dec 20 Python
Python实现GUI学生信息管理系统
Apr 05 Python
python操作excel文件并输出txt文件的实例
Jul 10 Python
python实现梯度下降算法
Mar 24 Python
Python面向对象程序设计之继承、多态原理与用法详解
Mar 23 Python
配置python的编程环境之Anaconda + VSCode的教程
Mar 29 Python
Python Selenium截图功能实现代码
Apr 26 Python
什么是python的自省
Jun 21 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
python判断变量是否为列表的方法
Sep 17 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的5个入手程序
2006/11/23 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
2014/10/22 PHP
PHP经典面试题集锦
2015/03/19 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
javascript 特殊字符串
2009/02/25 Javascript
一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)
2010/06/02 Javascript
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
javascript实现回到顶部特效
2015/05/06 Javascript
javascript中字体浮动效果的简单实例演示
2015/11/18 Javascript
详解AngularJS中module模块的导入导出
2015/12/10 Javascript
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
js选项卡的制作方法
2017/01/23 Javascript
React Native实现地址挑选器功能
2017/10/24 Javascript
去掉vue 中的代码规范检测两种方法(Eslint验证)
2018/03/21 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
2018/11/14 Javascript
Mint UI组件库CheckList使用及踩坑总结
2018/12/20 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
判断“命令按钮”是否被鼠标单击详解
2019/07/31 Javascript
Python中__init__和__new__的区别详解
2014/07/09 Python
Python实现根据IP地址和子网掩码算出网段的方法
2015/07/30 Python
Python操作Access数据库基本步骤分析
2016/09/19 Python
python 将json数据提取转化为txt的方法
2018/10/26 Python
python PrettyTable模块的安装与简单应用
2019/01/11 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
QML用PathView实现轮播图
2020/06/03 Python
python 绘制场景热力图的示例
2020/09/23 Python
美国最佳在线航班预订网站:LookupFare
2019/03/26 全球购物
法律专业应届本科毕业生求职信
2013/10/25 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
印刷技术专业自荐信
2014/09/18 职场文书
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
2015年留守儿童工作总结
2015/05/22 职场文书
爱岗敬业先进典型事迹材料(2016推荐版)
2016/02/26 职场文书