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编程之多态用法实例详解
May 19 Python
解决Python 遍历字典时删除元素报异常的问题
Sep 11 Python
Python+Django搭建自己的blog网站
Mar 13 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
Mar 23 Python
分析python请求数据
Aug 19 Python
利用Python库Scapy解析pcap文件的方法
Jul 23 Python
python中如何实现将数据分成训练集与测试集的方法
Sep 13 Python
pytorch中的自定义数据处理详解
Jan 06 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
May 18 Python
Python爬取豆瓣数据实现过程解析
Oct 27 Python
pytorch中的numel函数用法说明
May 13 Python
Python基础之变量的相关知识总结
Jun 23 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
香妃
2021/03/03 冲泡冲煮
function.inc.php超越php
2006/12/09 PHP
php自定义urlencode,urldecode函数实例
2015/03/24 PHP
Laravel 5 框架入门(四)完结篇
2015/04/09 PHP
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
2016/05/16 Javascript
瀑布流的实现方式(原生js+jquery+css3)
2020/06/28 Javascript
jQuery动态生成Bootstrap表格
2016/11/01 Javascript
jQuery EasyUI window窗口使用实例代码
2017/12/25 jQuery
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
angular6开发steps步骤条组件
2019/07/04 Javascript
Vue父组件如何获取子组件中的变量
2019/07/24 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
[03:22]DAC最前线(第二期)—DOTA2亚洲邀请赛主赛场周边及线路探访
2015/01/24 DOTA
python实现的一个火车票转让信息采集器
2014/07/09 Python
利用pyinstaller或virtualenv将python程序打包详解
2017/03/22 Python
python利用rsa库做公钥解密的方法教程
2017/12/10 Python
pytorch numpy list类型之间的相互转换实例
2019/08/18 Python
python 实现矩阵按对角线打印
2019/11/29 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
python中K-means算法基础知识点
2021/01/25 Python
html5唤起app的方法
2017/11/30 HTML / CSS
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
枚举与#define宏的区别
2014/04/30 面试题
职业生涯规划书范文
2014/03/10 职场文书
护士2014年终工作总结
2014/11/11 职场文书
2014小学数学教师个人工作总结
2014/12/18 职场文书
地雷战观后感
2015/06/09 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书
2016中秋节广告语
2016/01/28 职场文书
《分数乘法》教学反思
2016/02/24 职场文书
JavaScript canvas实现流星特效
2021/05/20 Javascript
Go调用Rust方法及外部函数接口前置
2022/06/14 Golang