首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    BH1750光照传感器超详细攻略(从原理到代码讲解,看完你就懂了)

    之所以写这篇文章,原因有两个。 一是:有个师弟跟我说我发布的文章都偏向于工作者,能不能写一些大学生能用到的东西,我想了一下,确实是,我写的文章大多是我在工作中总结出来的心得,对于初学者来说确实有点难以理解。 二是:我觉得这个光照传感器很多大学生都能用到,但是网上的教程虽多却也不一定能够帮助大家深入了解这款传感器。大家更多的是看完攻略之后能够驱动,但是其实并不了解它的工作原理,想要在光照传感器的基础上增加别的功能也无从下手。 所以,我觉得我还是有必要写一篇更加详细更加深入的攻略来帮助大家理解。我觉得能驱动一个芯片和会驱动一个芯片是不一样的,如果你学会了如何去驱动一个芯片,那么换了别的类似的芯片你也能够得举一反三。不然的话你每次换一个芯片都只能去找人家写好的代码。 好了,废话不多说了,BH1750的讲解马上开始。(注:请一定要从头到尾看下去,粗略看一下也行,因为内容是环环相扣的,一直看,一直爽!!!) 我再多说一句,就一句,真的,接下来我讲的所有代码以及相关的所有文件都可以免费发给你们,链接在文章底部,自己去下载吧。

    03

    张高兴的 .NET Core IoT 入门指南:(三)使用 I2C 进行通信

    I2C 总线(Inter-Integrated Circuit Bus)是设备与设备间通信方式的一种。它是一种串行通信总线,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展[1]。I2C 总线包含两根信号线,一根为信号线 SDA ,另一根为时钟线 SCL 。总线上可以挂载多个设备,以 7 位 I2C 地址为例,总线上最多可以挂载 27 - 1 个设备,即 127 个,地址 0x00 不用(类似于网络中的广播地址)。I2C 还包括一个子集叫 SMBus (System Management Bus),是 1995 年由 Intel 提出的[2]。为什么说是子集,是因为 SMBus 是 I2C 的简化版,电气特性和传输速率等方面上略有不同。下图展示了一个 I2C 主设备和三个 I2C 从设备的示意图,总线上只能有一个主设备,而通常情况下你的主机(如 Raspberry Pi,Arduino)就是主设备,传感器为从设备。

    03

    树莓派I2C接口技术及Python SMBus串行I2C EEPROM应用编程

    文章目录 一、I2C接口技术 1.I2C总线系统组成 2.I2C总线的状态及信号 3.I2C总线基本操作 4.启动和停止条件 5.I2C总线数据传输格式 二、I2C总线上拉电阻的估算与选取 三、树莓派与AT24C02接口实验电路及Python SMBus串行I2C EEPROM应用编程 1.启动RPi串行I2C接口及安装Python SMBus库 2. 树莓派与AT24C02 EEPROM接口实验电路 3. Python SMBus库函数介绍 4. 使用I2C Tools及Python SMBus读写AT24C02 EEPROM 一、I2C接口技术 I2C接口是嵌入式系统中常用的网络接口之一,它采用串行通信方式将MCU/传感器连接到系统总线,通过主机/从机的方式协调工作。 I2C/IIC(Inter-Integrated Circuit)总线是由PHILIPS公司于1982年针对MCU/传感器等应用需求而研制的一种两线式串行总线,用于连接MCU及传感器等设备。 I2C总线的主要特点如下: (1)I2C总线最主要的优点是其简单性和有效性。 (2)由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。 (3)I2C总线的长度可高达25英尺(约7.6m),并且能够以标准模式100Kbps的传输速率支持40个组件。新一代I2C总线还支持高速模式400Kbps传输。 (4)I2C总线的另一个优点是支持多主控(multi-mastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号传输和时钟频率。当然,在任何时间点上只能有一个主控。 1. I2C总线系统组成 I2C总线协议包含两层协议:物理层和数据链路层。 在物理层,I2C总线仅使用了两条信号线:一个是串行数据线SDA (Serial DAta line),它用于数据的发送和接收;另一个是串行时钟线SCL (Serial Clock Line)构成的串行总线,它用于指示何时数据线上是有效数据,即数据同步。MCU与被控IC之间、IC与IC之间进行双向传送,I2C标准模式最大传送速率为100kbps,I2C快速模式最大传输速率为400kbps。 在数据链路层,每个连接到I2C总线上的设备都有唯一的地址,设备的地址由系统设计者决定。在信息的传输过程中,I2C总线上并接的每一设备既是主设备(或从设备)又是发送器(或接收器),这取决于它所要完成的功能。 由I2C总线所构成的系统可以有多个I2C节点设备,并且可以是多主系统,任何一个设备都可以为主I2C;但是任一时刻只能有一个主I2C设备,I2C具有总线仲裁功能,以保证系统正确运行。主I2C设备发出时钟信号、地址信号和控制信号,选择通信的从I2C设备并控制收发。I2C总线要求:(1)各个节点设备必须具有I2C接口功能;(2)各个节点设备必须共地;(3)两根信号线必须接上拉电阻Rp。如图1所示。  图1 多I2C设备接口示意图 2. I2C总线的状态及信号 (1)空闲状态 SCL和SDA均处于高电平状态,即为总线空闲状态(空闲状态为何是高电平的道理很简单,因为它们都接上拉电阻)。 (2)占有总线和释放总线 若想让器件使用总线应当先占有它,占有总线的主控器向SCL线发出时钟信号。数据传送完成后应当及时释放总线,即解除对总线的控制(或占有),使其恢复成空闲状态。 (3)启动信号[S] 启动信号由主控器产生。在SCL信号为高时,SDA产生一个由高变低的电平变化,产生启动信号。 (4)结束/停止信号[P] 当SCL线高电平时,主控器在SDA线上产生一个由低电平向高电平跳变,产生停止信号。启动信号和停止信号的产生见图2所示。  图2 启动信号和停止信号的产生 (5)应答/响应信号[A/NA] 应答信号是对字节数据传输的确认。应答信号占1位,数据接收者接收1字节数据后,应向数据发出者发送一个应答信号。对应于SCL第9个应答时钟脉冲,若SDA线仍保持高电平,则为非应答信号(NA/ACK)。低电平为应答,继续发送;高电平为非应答,结束发送。 (6)控制位信号[R/nW] 控制位信号占1位,IIC主机发出的读写控制信号,高为读、低为写(对IIC主机而言)。控制位(或方向位)在寻址字节中给出。 (7)地址信号 地址信号为从机地址,占7位,称之为“寻址字节”(见表1)。 表1 寻址字节  下面对表1中的各字段进行说明。 器件地址(DA3-DA0):DA3-DA0是I2C总线接口器件固有的地址编码,由器件生产厂家给定,如AT24C××I2C总线EEPROM器件的地址为1010等。 引脚地址(A2、A1、A0):引脚地址由I2C总线接口器件的地址引脚A2、A1、A0的高低来确定,接高电平者为1,接地者为0。 读写控制位/方向位(R/n W):R/nW为1表示主机读,R/nW为0表示主机

    02

    ov7725摄像头人脸识别_监控摄像头图像倒置怎么办

    前言: 摄像头的工作原理大致为:景物通过镜头(LENS)生成的光学图像投射到图像传感器表面上,然后转为电信号,经过A/D[1] (模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理,再传输给其他显示硬件就可以显示看到图像了 我要讲解的是0V7725摄像头,带FIFO缓存,以及通过STM32F103MCU进行控制,在采用ILI9341控制器芯片的液晶屏(分辨率240*320)上显示。 我会分两大板块介绍: 第一是摄像头图像数据采集的过程 第二是图像数据在液晶屏上显示的过程 摄像头图像数据采集 以下是要讲的几个小点: 0.OV7725的摄像头结构 1.摄像头(实际上是图像传感器在采集)采集图像获得图像数据(是怎么样获得彩色信息数据的呀这个我比较关心与好奇)是怎样的一个过程。 2.摄像头(从硬件电路上讲是0V7725芯片在传输数据)将数据传输给FIFO(起数据缓冲的作用)的过程是个什么样的过程。 3.(由数字电路基础知,硬件电路上传输数据是需要时钟的)通过什么时序,该时序又是什么样的。 5.然后根据程序讲解,引脚间的连接与配置。 6.然后根据程序讲解ov7725的芯片初始化过程。 0>OV7725摄像头的结构: 晶振、板载电路、镜头、FIFO存储器(AL422B芯片)、CMOS数字图像传感器(Ov7725CMOS感光芯片)、DSP数字算法处理芯片(用于处理采集到的图像数据) 结构功能介绍: CMOS图像传感器:首先什么是CMOS图像传感器,CMOS图像传感器通常由像敏单元阵列、行驱动器、列驱动器、时序控制逻辑、AD转换器、数据总线输出接口、控制接口等几部分组成,这几部分通常都被集成在同一块硅片上。其工作过程一般可分为复位、光电转换、积分、读出几部分。 我们采用的该Ov7725图像传感器的像素30万,分辨率:480*640支持使用 VGA 时序输出图像数据,也支持QVGA时序输出240*320(本实验为了妥协FIFO的存储量,只能存储一帧该分辨率大小的图形,而且我们的屏幕也是240*320的显示分辨率),输出图像的数据格式支持 YUV(422/420)(这个后面会介绍)、 YCbCr422(这个后面会介绍) 以及 RGB565 格式。它还可以对采集得到的图像进行补偿,支持伽玛曲线、 白平衡、饱和度、色度等基础处理(这些处理为什么明明不懂我还要说,因为程序配置时你会发现一些莫名其妙的配置,我们虽然不用,但是我们要配成不用,所以那些莫名其妙的程序就是对此的配置) DSP数字算法处理芯片:这个部分就是OV7725芯片中的结构,单独提出来知识为了便于我们对结构的理解。 FIFO存储器:接收图像传感器传过来的图像数据。

    04

    “Array[*] of *”灵活的可变数组:满足可变需求的完美选择

    西门子 TIA(Totally Integrated Automation)平台是一种面向工业自动化的软件平台,可以实现工业控制系统的设计、开发、测试和调试等一系列工作。其中,Array[*]of *是 TIA 平台中的一种数据类型,表示一个可变长度的数组。其中,[*]表示数组的长度可以是任意值,固定表达方式为[1..20]。而*表示数组中的元素类型的可以是任何类型。例如,可以定义一个 Array[*] of INT 类型的数组,表示一个可变长度的整数数组。在程序中,可以通过索引来访问数组中的元素,例如 Array[0]表示数组中的第一个元素,Array[1]表示数组中的第二个元素,以此类推。当然也可以通过索引来给数组中的元素赋值,例如:Array[2]:=1;Array[3]:=33。

    03

    蓝桥杯单片机必备知识—–(11)EEPROM

    由于EPROM操作的不便,后来出的主板上BIOS ROM芯片大部分都采用EEPROM(Electrically Erasable Programmable ROM,电可擦除可编程ROM)。EEPROM的擦除不需要借助于其它设备,它是以电子信号来修改其内容的,而且是以Byte为最小修改单位,不必将资料全部洗掉才能写入,彻底摆脱了EPROM Eraser和编程器的束缚。EEPROM在写入数据时,仍要利用一定的编程电压,此时,只需用厂商提供的专用刷新程序就可以轻而易举地改写内容,所以,它属于双电压芯片。借助于EEPROM芯片的双电压特性,可以使BIOS具有良好的防毒功能,在升级时,把跳线开关打至“on”的位置,即给芯片加上相应的编程电压,就可以方便地升级;平时使用时,则把跳线开关打至“off”的位置,防止CIH类的病毒对BIOS芯片的非法修改。所以,仍有不少主板采用EEPROM作为BIOS芯片并作为自己主板的一大特色。 IIC.H添加

    02
    领券