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将多个文本文件合并为一个文本的代码(便于搜索)
Mar 13 Python
python实现将汉字保存成文本的方法
Nov 16 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
Apr 05 Python
pyinstaller参数介绍以及总结详解
Jul 12 Python
python如何使用jt400.jar包代码实例
Dec 20 Python
python全局变量引用与修改过程解析
Jan 07 Python
对tensorflow 中tile函数的使用详解
Feb 07 Python
python使用gdal对shp读取,新建和更新的实例
Mar 10 Python
python如何写try语句
Jul 14 Python
python中函数返回多个结果的实例方法
Dec 16 Python
python3读取文件指定行的三种方法
May 24 Python
用python修改excel表某一列内容的操作方法
Jun 11 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计算两个日期相差天数的方法
2015/03/14 PHP
JavaScipt基本教程之JavaScript语言的基础
2008/01/16 Javascript
在html页面中包含共享页面的方法
2008/10/24 Javascript
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
JQuery对id中含有特殊字符的转义处理示例
2013/09/06 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
Jquery给基本控件的取值、赋值示例
2014/05/23 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
JS正则表达式完美实现身份证校验功能
2017/10/18 Javascript
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
详解json串反转义(消除反斜杠)
2019/08/12 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
实现vuex原理的示例
2020/10/21 Javascript
使用js获取身份证年龄的示例代码
2020/12/11 Javascript
使用python检测手机QQ在线状态的脚本代码
2013/02/10 Python
Python遍历指定文件及文件夹的方法
2015/05/09 Python
讲解Python中fileno()方法的使用
2015/05/24 Python
教大家玩转Python字符串处理的七种技巧
2017/03/31 Python
Python设计模式之代理模式简单示例
2018/01/09 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
Python笔记之代理模式
2019/11/20 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
canvas烟花特效锦集
2018/01/17 HTML / CSS
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
英国伦敦的睡衣品牌:Asceno
2019/10/06 全球购物
心理健康课教学反思
2014/02/13 职场文书
公司寄语大全
2014/04/10 职场文书
公务员试用期满考核材料
2014/05/22 职场文书
2014年科技工作总结
2014/11/26 职场文书
八年级上册语文教学计划
2015/01/22 职场文书