一、介绍

   该传感器实际上是一个光敏电阻,它随着光强的变化而改变其电阻,它可以用来制作光控开关。


二、组件

★Raspberry Pi主板*1

★树莓派电源*1

★40P软排线*1

★PCF8591模数转换器模块*1

★光敏传感器模块*1

★面包板*1

★跳线若干

三、实验原理

  随着光强度的增加,光敏电阻的电阻将降低,因此输出电压降低。由光敏电阻收集的模拟信号通过PCF8591转换为数字信号。然后将这些数字信号传输到树莓派并打印在屏幕上。

  光敏电阻传感器有两个LED指示灯。PWR-LED是电源指示灯。DO-LED是数字输出指示灯,当光弱时熄灭,DO输出高电平;当光强时灯亮,DO输出低电平。而判定光强弱的临界值可以通过旋转中间蓝色元件上的十字螺丝调节。

四、实验步骤

  第1步: 连接电路。

树莓派 T型转接板 PCF8591模块
SDA SDA SDA
SCL SCL SCL
5V 5V VCC
GND GND GND
声音传感器模块 T型转接板 PCF8591模块
AO * AIN0
DO G17 *
VCC 5V VCC
GND GND GND

  第2步: PCF8591模块采用的是I2C(IIC)总线进行通信的,但是在树莓派的镜像中默认是关闭的,在使用该传感器的时候,我们必须首先允许IIC总线通信。

  第3步: 开始编程。这里先编写一个PCF8591.py库文件,后面再编写一个python程序引入这个库文件。
  PCF8591.py库文件就是PCF8591模块的程序,单独编写是为了便于重用。在这个脚本中,我们使用了一个放大器用于模拟输入和一个LED灯用于模拟输出,模拟输入不能超过3.3V!
  该程序也可以单独运行,用于测试3个电阻模块的功能。需用短路帽连接AIN0和INPUT0(电位计模块),连接AIN1和INPUT1(光敏电阻模块),以及连接AIN2和INPUT2(热敏电阻模块)。
  连接LED灯,AIN0(模拟输入0)端口用于接收来自电位计模块的模拟信号,AOUT(模拟输出)用于将模拟信号输出到双色LED模块,以便改变LED的亮度。
  PCF8591的详细内容请查看树莓派基础实验12:PCF8591模数转换器实验。

#!/usr/bin/env python
#------------------------------------------------------
#
#       您可以使用下面语句将此脚本导入另一个脚本:
#           “import PCF8591 as ADC”
#
#   ADC.Setup(Address)  # 查询PCF8591的地址:“sudo i2cdetect -y 1”
# i2cdetect  is  a  userspace  program to scan an I2C bus for devices.
# It outputs a table with the list of detected devices on the specified bus.
#   ADC.read(channal)   # Channal范围从0到3
#   ADC.write(Value)    # Value范围从0到255
#
#------------------------------------------------------
#SMBus (System Management Bus,系统管理总线)
import smbus   #在程序中导入“smbus”模块
import time# for RPI version 1, use "bus = smbus.SMBus(1)"
# 0 代表 /dev/i2c-0, 1 代表 /dev/i2c-1 ,具体看使用的树莓派那个I2C来决定
bus = smbus.SMBus(1)         #创建一个smbus实例#在树莓派上查询PCF8591的地址:“sudo i2cdetect -y 1”
def setup(Addr):global addressaddress = Addrdef read(chn): #channelif chn == 0:bus.write_byte(address,0x40)   #发送一个控制字节到设备if chn == 1:bus.write_byte(address,0x41)if chn == 2:bus.write_byte(address,0x42)if chn == 3:bus.write_byte(address,0x43)bus.read_byte(address)         # 从设备读取单个字节,而不指定设备寄存器。return bus.read_byte(address)  #返回某通道输入的模拟值A/D转换后的数字值def write(val):temp = val  # 将字符串值移动到temptemp = int(temp) # 将字符串改为整数类型# print temp to see on terminal else comment outbus.write_byte_data(address, 0x40, temp) #写入字节数据,将数字值转化成模拟值从AOUT输出if __name__ == "__main__":setup(0x48) #在树莓派终端上使用命令“sudo i2cdetect -y 1”,查询出PCF8591的地址为0x48while True:print '电位计   AIN0 = ', read(0)   #电位计模拟信号转化的数字值print '光敏电阻 AIN1 = ', read(1)   #光敏电阻模拟信号转化的数字print '热敏电阻 AIN2 = ', read(2)   #热敏电阻模拟信号转化的数字值tmp = read(0)tmp = tmp*(255-125)/255+125
# 125以下LED不会亮,所以将“0-255”转换为“125-255”,调节亮度时灯不会熄灭write(tmp)time.sleep(2)

  若想深入学习模/数转换等模电知识,强烈推荐以下书籍,国外大学最经典模电教程,比国内教程生动有趣更易懂。扫码购买或者点击下面的链接。

《模拟电子基础》点击购买:https://u.dangdang.com/OIVk

  第4步: 编写控制程序。打印在屏幕上的有两个数据:GPIO.input(DO) 是数字输出信号,光强输出低电平,光弱输出高电平,而光强弱判定的临界值可以通过旋转十字螺丝调整;ADC.read(0)是光敏传感器的模拟信号输出,通过PCF8591A/D转换后得到的0~255的值,光强值低,光弱值高。

#!/usr/bin/env python
import PCF8591 as ADC
import RPi.GPIO as GPIO
import timeDO = 17
GPIO.setmode(GPIO.BCM)def setup():ADC.setup(0x48)GPIO.setup(DO, GPIO.IN)def loop():status = 1while True:print '#######################'print 'Digital output: ',GPIO.input(DO)  #光强输出低电平,光弱输出高电平print 'Value: ', ADC.read(0)   #光强值低,光弱值高print '#######################'time.sleep(0.5)if __name__ == '__main__':try:setup()loop()except KeyboardInterrupt: pass 

  

树莓派基础实验19:光敏传感器实验相关推荐

  1. 光敏传感器实验报告_光敏传感器光电特性测量实验分析报告.ppt

    思考题 1.光电效应有哪些分类? 光电效应可以分为外光电效应和内光电效应. 2.光敏电阻的物理基础是什么? 内光电效应. * * 光敏传感器的光电特性测量实验 实验简介 光敏传感器是将光信号转换为电信 ...

  2. 光敏传感器实验报告_光敏传感器实验论文-大物实验

    光敏传感器实验及探究 摘要: 光敏传感器是以光电器件作为转换元件的传感器.它可用于检测光量变化或直 接引起光量变化的非电量, 也可用于检测能转换成光量变化的其他非电量. 它首先把被测量 的变化转换成光 ...

  3. c语言光敏程序代码,ADC实验之光敏传感器

    ADC实验之光敏传感器 硬件连接 我们可以测量A的电位,进而测量光的强度,光强与A点电压的对应关系如下: 电流反应的光敏二极管的导通状态,光强与电流对应关系如下: 因此,我们可以得出ADC读取的电压值 ...

  4. ADC实验之光敏传感器

    ADC实验之光敏传感器 硬件连接 我们可以测量A的电位,进而测量光的强度,光强与A点电压的对应关系如下: 电流反应的光敏二极管的导通状态,光强与电流对应关系如下: 因此,我们可以得出ADC读取的电压值 ...

  5. 内部温度传感器和光敏传感器实验

    内部温度传感器 STM32F407 有一个内部的温度传感器,可以用来测量 CPU 及周围的温度(TA).该温度传感器在内部和 ADC1_IN16输入通道相连接,此通道把传感器输出的电压转换成数字值. ...

  6. stm32 adc输入电压范围_正点原子【STM32-F407探索者】第二十五章 光敏传感器实验...

    1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 本章我们将向大家介绍探索者 STM32F4 开发板自带的 ...

  7. STM32——光敏传感器实验-M4

    一.光敏传感器原理 1.光敏传感器简介 光敏传感器是最常见的传感器之一,它的种类繁多,主要有:光电管.光电倍增管.光敏电阻.光敏三极管.太阳能电池.红外线传感器.紫外线传感器.光纤式光电传感器.色彩传 ...

  8. STM32学习笔记(六 定时器及应用 4 光敏传感器实验 )

    一.光敏传感器简介 光敏传感器是最常见的传感器之一,它的种类繁多,主要有:光电管.光电倍增管.光敏电阻.光敏三极管.太阳能电池.红外线传感器.紫外线传感器.光纤式光电传感器.色彩传感器.CCD 和 C ...

  9. Arduin光敏传感器实验

    相关资料链接 链接:https://pan.baidu.com/s/1eE0rkaSJsKJMU_RUorS5OA 提取码:3ujh 1.1 项目介绍: 光敏传感器它对环境光线最敏感,S输出一个模拟信 ...

  10. 33_光敏传感器实验

    目录 光敏传感器简介 硬件接线图 实验源码 光敏传感器简介 光敏传感器简介 光敏传感器是最常见的传感器之一,它的种类繁多主要有:光电管.光电倍增管.光敏电阻.光敏三极管.太阳能电池.红外线传感器.紫外 ...

最新文章

  1. python语言必背代码-Python新手必须知道的25条知识点
  2. 江苏python工资一般多少_会计行业一般工资多少?
  3. Linux学习笔记(十九)文件压缩
  4. python rowspan_Python tkinter rowspan未正确调整元素大小
  5. VisualSVN Server更改SVN版本库存放路径的方法
  6. 『软件工程10』结构化系统分析:数据流图和字典案例分析
  7. HTML5七夕情人节表白网页制作【圣诞节3d相册】HTML+CSS+JavaScript 圣诞节3D相册代码表白制作
  8. C语言程序设计--教师信息管理系统
  9. Pyhon 登陆邮箱
  10. c语言字符串删除元音字母,C语言:写一函数,将两个字符串中的元音字母复制到另一个字符串,然后输出...
  11. SPI协议(一):读SPI_Flash(M25P16)设备ID
  12. 2020作为一个资深的Android开发者需要掌握哪些技能?
  13. 杰伦的《不能说的秘密》の细节 (详解)
  14. 谷歌浏览器本地HTML文件无法打开
  15. nginx 反向代理和正向代理区别
  16. 数据结构学习(一):入门
  17. 建设智慧路灯有哪些方面的优势
  18. 【Unity Shaders】Transparency —— 使用渲染队列进行深度排序
  19. remove () 函数
  20. 计算机硬盘休眠更改,win7不让硬盘进入休眠状态的方法步骤

热门文章

  1. 神经网络电子书,神经网络入门书
  2. 混音师的混音之道|处理母带和混音的差别?母带处理的真相(上)|MZD Studios
  3. Gradle下载失败的解决办法
  4. 12306 官网硬卧下铺的选择(亲测可用)
  5. 微信API接口访问慢
  6. WBS——工作分解结构
  7. 小米路由器mini刷lede_小米路由3刷LEDE/OpenWrt 固件
  8. Keil MDK 软件包(MDK5 Software Packs)离线下载方法
  9. 小红书用户画像分析_小红书报告
  10. c语言ip地址转16进制,点分十进制形式的ip地址转化为十六进制数