python树莓派红外反射传感器
作者:bspbspace 发布时间:2022-12-05 16:11:47
标签:python,树莓派,传感器
本文实例为大家分享了python树莓派红外反射传感器的程序,供大家参考,具体内容如下
1、工具
rpi3,微雪ARPI600,Infrared Reflective Sensor
2、基本原理
Infrared Reflective Sensor 输出数字和模拟信号
模拟信号通过ARPI600上的AD转换芯片TLC1543进行转换
TLC1543通信使用rpi的GPIO口,模拟SPI,进行模拟信号输入端口选择,和输出读取
程序通过读取DOUT判断与障碍物接近和远离
在接近障碍物时读取AD转换数值
3、连接实物
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()
来源:https://blog.csdn.net/bspbspace/article/details/51661289


猜你喜欢
- 1.在浏览器搜索python.org,如下图选择第一个2.进入python官网,选择dowload然后选择windows如下图:3.选择py
- Base64是一种用64个字符来表示任意二进制数据的方法。用记事本打开exe、jpg、pdf这些文件时,我们都会看到一大堆乱码,因为二进制文
- python中的os.mkdir和os.makedirs的使用区别以及如何查看某个模块中的某些字母开头的属性方法1 os.mkdir的使用o
- 大数据时代在编程可能需要用到一些文本内容,不可能全部写到代码里,不好更改,用户也不方便使用所以需要用到我们的数据库来保存这些数据,直接更改数
- Entity Framework 4.0 也可以支持大名鼎鼎的MySql,这篇POST将向展示如何实现EF+MyS
- 技术背景对于一些连续运行或者长时间运行的Python程序而言,如服务器的后端,或者是长时间运行的科学计算程序。当我们涉及到一些中途退出的操作
- 在pycharm中,可以通过venv来建立工程,运行等等。但是一旦把这个工程文件夹拿到其他地方运行,而且不是在venv环境中运行,就有可能遇
- 常用快捷键全部快捷键1、编辑(Editing)2、查找/替换(Search/Replace)3、运行(Running)4、调试(Debugg
- 前言爬虫和反爬虫日益成为每家公司的标配系统。爬虫在情报获取、虚假流量、动态定价、恶意攻击、薅羊毛等方面都能起到很关键的作用,所以每家公司都或
- <html> 题:<br /> 有n个直线最多可以把一个平面分成多少个部分<br /><br /&
- 介绍今天有个不正经的需求,就是要快速做一个restful api的性能测试,要求测试在海量作业数据的情况下客户端分页获取所有作业的性能。因为
- 在ASP中,也能让XML发挥其优点。例如像.NET那样写一个XML配置文件,在程序中读取,或者将一些数据量不大又经常访问的数据写入到XML中
- 认证登录django.contrib.auth中提供了许多方法,这里主要介绍其中的三个:1 authenticate(**cre
- 在SQL Server数据库中,主要是通过角色来继承相关的权限。但是,这个权限继承很容易造成权限上的冲突。如现在有个销售员账户SALE1,有
- PYTHON是一门动态解释性的强类型定义语言:编写时无需定义变量类型;运行时变量类型强制固定;无需编译,在解释器环境直接运行。动态和静态静态
- 硬件平台:SUN Ultra Enterprise 3000 操作系统:Solaris 2.5(中文简体) 磁盘:4.2GB 内存:256M
- 一般来说,一个真正的、完整的站点是离不开数据库的,因为实际应用中,需要保存的数据很多,而且这些数据之间往往还有关联,利用数据库来管理这些数据
- 在准备学习python的PyQt5库时会遇到pyqt5-tools安装失败的情况。其中一种可能是版本不适配。Pycharm弹出显示:安装软件
- 分布式编程的难点在于:1.服务器之间的通信,主节点如何了解从节点的执行进度,并在从节点之间进行负载均衡和任务调度;2.如何让多个服务器上的进
- 目录一、前言二、使用1.vue2和vue3的不同2.页面某些数据不需要缓存3.动态设置keepAlive属性4.使用include,excl