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中解析XML数据的方法
Oct 15 Python
Python中的日期时间处理详解
Nov 17 Python
使用Python操作excel文件的实例代码
Oct 15 Python
[原创]python爬虫(入门教程、视频教程)
Jan 08 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
python实现批量nii文件转换为png图像
Jul 18 Python
解决Python设置函数调用超时,进程卡住的问题
Aug 08 Python
python函数不定长参数使用方法解析
Dec 14 Python
tensorflow的计算图总结
Jan 12 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
Mar 19 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
Jan 07 Python
python opencv人脸识别考勤系统的完整源码
Apr 26 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 读取文件乱码问题
2010/02/20 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
2013/02/16 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
详解Window7 下开发php扩展
2015/12/31 PHP
php自动提交表单的方法(基于fsockopen与curl)
2016/05/09 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
2017/02/17 PHP
Laravel框架实现的rbac权限管理操作示例
2019/01/16 PHP
PHP面向对象程序设计之构造方法和析构方法详解
2019/06/13 PHP
用于自动添加Digg This!按钮的JavaScript
2006/12/23 Javascript
javascript 面向对象 function类
2010/05/13 Javascript
JavaScript验证Email(3种方法)
2015/09/21 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
jQuery选择器实例应用
2017/01/05 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
JS Thunk 函数的含义和用法实例总结
2020/04/08 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
[55:47]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第三局
2016/02/27 DOTA
收集的几个Python小技巧分享
2014/11/22 Python
python获取本机外网ip的方法
2015/04/15 Python
Python基于scrapy采集数据时使用代理服务器的方法
2015/04/16 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
python 并发编程 多路复用IO模型详解
2019/08/20 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
中学自我评价
2014/01/31 职场文书
党员承诺书范文
2014/05/19 职场文书
常务副总经理任命书
2014/06/05 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
工作检讨书大全
2015/01/26 职场文书
提取视频中的音频 Python只需要三行代码!
2021/05/10 Python
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL