嗨,大家好,我们的交关系统,嗯,已经实现了远程的开关水阀的一个简单的功能。 在一个自动交关系统里面,还有一个部分是相当的重要,那就是传感器的那一部分。今天我这里准备了三个传感器, 第一个是一个土壤水分的传感器,第二个是一个软温度的一个传感器。嗯,这两个他的壳是我自己用胆子大的,然后在里面用的环氧素质进行风度, 因为这个是插到土里或者埋到土里,所以说用花油树枝加上那个壳保护起来,它不不进水吗?然后这个传感器它是一个适合 唯一的传感器,它可以监测光照,大气压和温湿度。我们今天的目的就是把这三个传感器的速上传到那我们的创口,然后呃实时的显示出来。今天我们用到的单品机是 usp 三二。 好的,我们一起来看我怎么操作的。好的,我们第一步需要把我们的传感器的线接到我们的 usp 三二上面, 这里我们就需要知道我们的 usb 三二,然后把他的 adc 的接口把它找到,然后把我们的传感器的模拟量信号线接到我们的 adc。 我们来查一下 esp 三二。 我们这个开发版的名叫第一 lay tail。 这里我们的突然湿度的嗯数据,突然温度的数据和大气 加温湿度,光照度的数据都已经可以显示到我们的窗口上面了。 我们可以看一下他那个数字的变化。这个 shy 们,这个是这个传感器,我们把它插到水里 啊,可以看到它的数值已经变化了,现在是百分之九十,百分之九十几十度, 然后拿起来,拿起来就 然后我们测试一下这个温度,土壤温度插到水里面,嗯,这个土壤温度是 这个 stmp, 这个是他的温度,嗯,在慢慢减小,慢慢减小。嗯,我们这个数据是没问题。然后就是这个, 我把它挡住,然后看这个最后一项,那个那个牛名,现在就四点几三点几打开, 明明就上传了五百斤。然后现在我们的传感器的数据已经可以窗口显示了,然后继续的话,我们就需要把它上传到 我们的红包测测平台上面去。好的,这期嗯,就到这里。下期我们来讲解一下如何让这些数据,嗯,把它显示到我们的平台上面去。好的,再见。
粉丝1400获赞5325

大家好,在画面中我们看到的是一块单片机,这可不是普通的单片机,如果你不认识他,他也依然是一块点三二单片机啊,上面连接光照传感器, 这是温湿度传感器,这是检测水浑浊度的着度传感器, 这是温度传感器,可以检测水的温度,这小东西还是蛮厉害,是不是? 这是水质 pa 传感器。接下来登录微信小程序查看数据,终于有会用的了。登录之后可以看到我们的设备列表,现在这个是水产业养殖项目,我们点击进去就可以看, 看到设备的名称,傣地等信息,我们可以查看实时数据, 每个小卡片将各个传感器的数值清晰的显示出来。谢谢前端开发人员,此时我想高歌一曲。 接下来我们演示一下数据的实时变化,我们将温度传感器放入有温度的水中, 然后可以观察小程序界面上的数据,变化不变变变变变变变变变变变变变变变变变变变变, 可以看到水温现在变成了二十八,举一反三。其他的传感器数据也是可以实时变化的,主要的系统功能就是这样,喜欢的关注我。

现在很多粉丝问我们这个语音模块怎么跟这些开发版单面机进行连接使用,问的最多的就是怎么写代码,有没有历程,有没有库,用什么软件开发。其实大家都不用太担心这些问题,这个是非常简单的,现在我们来解释一下 他是怎么用的。比如说我们平常用的这种红外传感器,人体传感器,他们在没有感应的时候,他们就输出个低电瓶,当有东西感应到了,挡住了,他们就会输出一个高电瓶, 我们用单电机读取他的 io 电瓶信号而已,就是读取他们的 io 高低电瓶,然后我们就知道他有感应到了 同样独 io 电瓶信号,其实他们这两个传感器用的代码是一样的,比如说还有呃震动传感器这些他们独 io 电瓶的那个代码都是一样的。大家能不能理解学硬件 读传感器的高低电瓶这个技能应该没有不会的吧?其实语音模块也是一样,他也是读高低电瓶的,比如说我们在里面设置一个词叫阿拉丁,然后设置他其中一个引脚,其中一个引脚输出啊,高电瓶通电的时候,他默认输出是低电瓶,当然我们识别到了, 当他识别到了这个词的时候,他就输出一个高电瓶,那其实跟这些传感器的用法是一样的,连代码都是一样的,就是读取 io 高低电瓶的那些代码, 然后他是怎么接线的呢?比如说这个语音模块,他也是有电源的,那就给他工作电源 vccngnd 接上啊五伏的电源,然后传感器你用哪个 io 跟他连接?比如说用 uni 三号角,三号角跟他连接,跟 a 二十五连接,那么当我们识别到这个词的时候, a 二十五就会说 输出这个高电瓶,然后这边三号角就会收到这个高电瓶,然后我们就进行用脑,再进行下一步的其他动作。这个要自己写程序,比如说控制这个电机打开,或者是个灯泡打开,或者是其他什么好玩的程序,大家都可以用这个模块去互动。 他不同于其他传感器,其他传感器出厂的时候他已经固定好了,遮挡的时候高电瓶,没遮挡的时候低电瓶。但是我们这个语音模块,你可以设置某一个词,让某一个引脚输出什么电瓶,输出高电瓶也可以,输出低电瓶也可以。既然就是这么简单,那就不用说用什么酷了,读电瓶信号根本就不需要酷。 至于他用什么软件开发是跟他没有关系,是你这个开发板是用什么软件读取高低电瓶,那你就用那个软件进行开发就可以了。除了用 l 电瓶跟他连接以外,其实他还支持用串口通信的, 大家如果学习过单片机的创口使用,那就可以了,他的创口跟常用的单片机创口用法是一模一样的。接线大家都学过,那我们就不用再说了,都是同样的连接方式,同样的代码。

大家好,欢迎收看普通科技单片机开发仪视频教程。上节课呢,我们已经讲了 ds 幺八 b 二零温度传感器的一个工作原理,我们知道了我们这个温度传感器呢它的一个特点,以及它的一个内部的一个结构, 还有就是他的一个温度的一个格式,以及我们的一些指令,还有他的一个时序。那么我们今天就要编写我们这个温度传感器的一个实验程序, 我们要实现什么功能呢?我们就是要通过我们开火板上面的幺八 b 二零这个接口呢来测取我们环境的一个温度,那么你就需要用那个温度传感器 ds 幺八 b 二零呢插到我们的开火板上面,对 印着你这个这个凸起的这个部分对应着我们板子的一个适应的凸起的部分,你只要对应对应这个适应的部分接的话,那么才能检测到我们的一个温度, 我们将我们读取的温度呢在我们数码管上面进行显示,那么下面我们就来编写一下这个程序, 同样的我们要编辑这个程序呢,我们在我们上节课车上节课的程序的基础上呢进行修改,我们复制一下这节课呢是实验十七 d s 幺八 b 二零 d s 幺幺八 b 二零,嗯度 玩感情, 我们打开这个工程, 打开工程以后呢我们编译一下,这是我们上级课讲的一方 plum 的一个实验程序,那么这里我们就不回顾了, 这节课呢,我们就来编辑一下我们的温度传感器 ds 幺八 b 二零的一个程序,那么同样的我们采用一个创建一个新文件的一个工程, 那么这个是 iphone c 的,我们不需要这个程序了,那么我们把它删掉,怎么了?删掉了,就刚才那种点击这个地方,然后呢在右键这里有个礼物 一撕拉就可以了,然后呢按键我们也不需要,数码管呢,我们是要的,因为我们要将我们的温度呢在我们数码管上面进行显示, 所以同样的我们要使用这个那个数码管的一个未选,还有就是他的一个断选的数据,那么这些我们先保留。同样的我们动态数码管要动态扫描显示呢,有一个延时时间,这个函数呢我们也使用,那么按键处理函数呢?我们把它删掉。 数据处理函数呢我们把它保留,那么这个显示函数呢?我们保留,那么这个地方我们就把它删掉了,然后呢我们就开始来创建我们的一个 温度的一个新文件,我们同样的按照上一节课讲的一个方法点击这个 new, 然后呢我们保存,点击这个保存,然后呢我们这节课是 ds 幺八 b 二零,然后呢我就点 mp 加色 命名为 m, 点 c, 创建个 c 文件保存,然后呢再创建一个点 h 文件, 点 h 文件,这样的话我们这个写的温度检测的程序呢,我们就可以在我们的这个 time 点 c 和 time 点 h 里面进行定义。 那么同样的我们写这个头文件的话,按照前面讲的方法还有个格式, if not define, 下划线 temp, 然后下划线再一个 h, 然后再这个 define, 这个格式呢大家可以记一下,然后呢最后是一个 m d five, 然后呢我们在 把我们的一个大面积的一个头文件呢包含进来啊,一击五二点 h, 那么包包括进来之后呢,我们就添加加我们 time 点 h 这个头文件呢添加到我们的 c 文件当中,包括进来 e m p 点 h 好投文件,包括进来之后呢, 我们这个新文件和头文件呢就已经写好,写好的话我们就要添加到我们这个工程,怎么来添加呢?双击这个双色光葫芦, 双击这个,然后就会弹出我们这个添加的一个文件,我们添加到,因为我们将我们的新文件呢保存在我们这个实验时期这个文件夹里面,然后呢我们点击这个,然后 再添加,然后关掉就可以添加进来了,这个时候就将我们这个创建的新文件呢添加到我们这个工程里面来了, 那么同样的我们要将我们的要在我们主函数里面调用我们这个 tem 点 c 里面的程序的话,那么我们要将我们这个头文件呢,在我们主函数里面这个 c 文件当中要调用,不然的话你不包括这个头文件的话,那么你调用这里的函数 就会报错。上一节课我们已经讲过,这里我们就不再重复了,那么接下来我们就来编写我们这个温度检测的一个程序。 那么首先因为我们前面讲这个温度传感器的实验的时候呢,我们已经给大家介绍了我们开花板上的一个原理图,这个是我们的开花板上的一个温度传感器的一个接 口,他的一个数据管角呢贴在我们的 p 三机口, p 三机口的话,所以我们这里要定义一个他的一个管角,那么怎么来定义呢?我们定义管角呢?前面都已经讲过很多遍,那么我们直接写了 yes psport urt, 我们假设我们这个温度传感器这个数据管角呢,我们就用这个名名字来代替,然后 p 三七用这个来代替我们这个数据口,这是未定义。那么这节课我们再给大家介绍一下,还有常见的一个 定义他的一些那个关键字怎么来定义,因为我们这个类型呢?我们前面讲教大家写的是这种类型,那个 我们写的是这个 type, 理发这个定义定义我们 u 八和 u e 十六为整形和无包的一个制服型。那么这节课呢,我们就来教一下大家怎么用那个条件 变异来定义我们的一个这个无符号致富型和无符号的一个整形。要使用到条件变异的话,前面我们已经给大家讲 c 源基础的时候给大家介绍过条件变异呢是这个衣服 notifi, 就跟我们刚才定义这个头文件是一样的, 如果没有定义这个意思就是如果没有定义这一个 on char, 如果没有定义 on char, 这个 on char 是什么呢?我们后面等一下会说,然后呢我们就定义我们的这个 on char, 然后呢定义是什么呢?定义是我们无符号的一个 g, n u, s i g, n e d, 无符号的一个字符写, 如果没有定义这个 on char, 那么我们就定义 on char 为我们的无符号字。不行,这就是这个格式。定义完了之后我们要 end if, 因为出现了 if not defy 的话,我们一定要跟着我们的一个 end if 才能结束。 同样的我们定义了这个 on 确的话,我们还要定义我们的一个 on int, 这个呢是定义我们的一个无符号的整形,我们直接复制,那么这就是如果没有定我们这个安逸特的话,那么就定义我们这个 unit 为我们的无符号整形。 所以在程序当中呢,我们可以使用,如果是要定一个变量无符号整形的变量,我们就可以通过 u i n t 这一个 符号来代替我们这一大串数字,那么这个方法呢,跟我们前面用这个方法是一样的,也就是说我们用 ues 六这个符号呢,就可以代代表我们这一个类型,这是类型的一个同定义,那么这也同样也是一个定义,这两种方法都可以使用, 那么这就是我们定义好了,你这里呢也可以不使用这个条件编译,这个条件编译呢就是说你没有定义这个的时候,他自动会给你进入这一条定义,如果你定义了这是这个了,那么就不需要进入这个了,所以这个是我们的 一个条件比较硬。然后呢我们在已经定了这个温度传感器的一个数据管角,那么我们就开始编写我们的一个温度的一个它的一个程序了。首先呢我们前面 介绍了他的一些初始化,还有读写持续的一些持续,那么我们今天就按照这个持续图呢来编写他的一个程序。 同样的在我们这个持续图里面呢,我们都看到了有他的有精确的一个延时,在单种线通线当中呢,他的一个延时时间是一定要 非常准确的,如果误差很大的话,那么单种线呢通信呢就会失败,所以我们这里呢还要定一个延时函数,这个延时函数呢我们给 大家写一下,这个以内一毫秒,我们定一个一毫秒,它的一个延时,那么里面我们设定一个参数,设定一个参数 y, 然后呢怎么写呢?这个大家先不用管,为什么这个是一毫秒,前面已经给大家介绍了怎么来测他用票仿真,怎么来测他的一个时间,大家可以按照那个方法来使用, 那么这里有个负循环,负循环的话,那么是 y 大于零,然后呢 y 减减,因为 y 呢是我们传递的一个参数,这个参数呢我们定义的它是一个无包整形,这个呢就是刚才我们定义的这个这 一条语句,将我们这个 uit 呢定义成无符号的一个整形数据,那么就定义了这个变量,这个变量的话呢我们让它传到这个破循环里面,假设我们这个 y 等于十呢,那么这个破循环就要循环十次, 循环十次的话就起到一个延时,同样的我们这里面还有一个不循环, x 等于一百一十,然后呢 x 大于零, x 减点, 这个延时呢是一毫秒的一个延时,那么你要延时十毫秒呢,你这个参数呢, y 就可以等于十,这个延时呢也是非常准确的,所以大家可以直接调用, 我们这里呢就不给大家计算为什么等于一毫秒,具具体的计算方法,可以按照我们前面讲解 led 闪烁的实验,它里面我们就已经讲解了怎么用我们的 q 呢,仿真我们的这个时间来计算它的一个时间,这里是我们那个延时一毫秒的一个函数,里面我们带了一个参数,这个参数呢可以改变我们这个延时时间。 接下来呢我们就写一下我们这个幺八 b 二零的一个初始化函数,我们要对我们幺八 b 二零测温呢,我们首先要对它进行初始化,那么怎么来初始化呢?我们首先写一下我们这个初始化的一个函数,因为初始化的话,这后面有我们的一个 温度传感器,一个返回,返回根据他的一个时间呢,我们可以知道你幺八 b 二零是否存在,如果存在的话,他这里是返回为零, 然后呢他这个有时间要求,如果不存在的话,我们要让他超时的时候就让他自动退出,我们不能让他一直在这循死循环判断。 所以呢我们这里还有一个让这个函数呢,让我们初始化函数有一个返回值,这个返回值呢,我们根据这个返回值就可以知道我们的温度传染器 插上我们开关板是否识别,如果初始化失败的话,表明我们这个温度传感器呢 是坏的,或者是没有插上我们这个调板,如果数字化成功,表明我们这个幺八变零呢是 ok 的。那么怎么来写这个函数呢?我们要有一个返回值,返回值呢可以是一,可以是零。 前面我们讲那个英方 plom 的时候也给大家介绍了,通常我们使用那个返回值一呢为他的一个数字化成功,然后呢返回值如果是零的话,就表明这个是失败的, 所以我们定一个字节的返回值,然后呢注册化程序呢,它的函数名我们命名为 b 幺八 b 二零 i n i t 初始化函数,初始化函数的话,我们这里面没有参数,那么怎么来写我们这个初始化呢?根据这个持续图,首先呢我们要将我们的数据线呢,这个数据线进行拉低,拉为低电频, 我们写一下,首先要让我们的数据线呢,这个数据线端口拉为机电瓶等于零,等于零的话 呢,我们这里还有延时四百八十微秒,这个时间范围是四百八到九百六微秒,所以我们这里呢利用了一个循环或循环微循环来等待,就是起到一个延时的作用。我们定一个那个变量, 第一个变量 i i 的话呢,我们让它循环,我们命一个粗值 i 等于七十, 那么能够让这个 i 呢不断的递减,递减的话让他在这里一直在这递减,起到延时的作用,那么这个延时时间多少呢?这个延时时间呢是六百四十,六百四十二微描,这是时间怎么计算呢?同样的 是使用仿真来计算,你也可以使用我们,因为他这个是微秒的吗?你也可以使用我们的光盘里面的一个软件,你定一个微秒, 或者是定一个五百微秒,六百微秒的一个延时函数,然后呢在这里延时一下就可以了,你也不需要在这里通过 vr 循环来延时,只不过我们这里使用 vr 循环,我们就不再取那个延时函数了。 然后呢延时六百四十二微秒,因为他的单位是微秒,延时这个这么多时间之后呢,我们要将我们的一个数据线呢拉高,第三步拉,将数据线拉高,然后呢我们 就是这条必须让他拉高变成高电瓶。之后呢我们将 我们这个变量清零,因为我们这里用到了变量,我们下面还会用到吗?所以在这里要清零一下, 然后呢接下来怎么办?接下来我们这个地方要延时等待八十五秒,然后呢我们要判断我们这个幺八 b 二零有没有返回 低电瓶,如果他返回了低电瓶,在一十五到六十五秒之间呢?返回了一个低电瓶,就表明我们这个幺八 v 二零呢存在,如果他没有返回这个低电瓶,那么他将我们让他 在这里死循环,而且在这个循环里面我们要对他进行超时的判断,超过了多少时间就让他自动退出,我们就认为 他没这个温度传染金呢,不存在。接下来我们就要写一个循环判断的一个函数了,同样的我们要用到无药循环, 然后呢我们要判断这个总线他的一个电瓶,如果在这个判断,如果这个为低电瓶的话,表明我们这个 d s 幺八 b 二零呢?返回给我们组建一个低电频,证明我们这个幺八 b 二零呢,它存在,所以直接会退出,因为它等于零嘛,直接会退出这个无氧循环, 我们就让他返回一个一表明,因为根据我们前面讲的,如果是一的话就表示存在,如果是零的话呢就不 存在,也就是初始化成功,一为初始化成功,零为初始化失败,这就是返回一,如果这里是为零的话,他就会跳出这个物要循环,然后呢我们让他返回一个一出去, 如果他为这个我们幺八 d 二零返回,他的电瓶呢,不是低电瓶,也就是说他是高电瓶,这个时候呢,我们就要对他进行超时的一个判断了,如果他为高电瓶,我们这里让他延时一个毫秒, 我们让他延时一个毫秒,一个毫秒的话呢,我们只需要对我们这个参数呢里面设置为一,设置为一的话,我们就延时一个毫秒,延时一个毫秒呢,我们让这个变量的累加,因为我们要判断他是否超时, 我们就来一个判断他多少时间呢?我们只需要来个等待个五毫秒就可以了,如果大于五五的话,那么我们就认为他退出, 让他退出,退出的返回零的话,就表明这个幺八变零呢初始化失败,我们可以继续看一下这个函数。首先 我们将我们的总线呢拉低,拉低的话,根据这个持续拉低,拉低的拉的时间是四百八到九百六微秒,我们这里呢通过这个 vr 来循环 产生延时,那么这个延时时间呢是六百四十二微秒,六百四十二微秒正好是在我们的四百八到九百六微秒之间。然后呢第三步再将我们的数据线拉高, 我们再将我们的数据线拉高,拉高之后呢,我们将我们这个变量清零,因为我们后面还要用到这个变量,所以这里要清零。 清零之后呢,我们这里就要对他进行一个幺八 b 二零返回值的一个判断,因为我们要根据他的一个幺八 b 二零返回的电瓶呢,来判断这个幺八 b 二零是否存在, 我们就通过这个 vr 循环来判断,通过这个总线,如果这个数据总线呢为低电频,表明我们这个温度传感器呢, 它存在为低电瓶的话,这个 vr 循环呢,它就会退出,直接会返回,我们这个一返回一的话,就表明我们幺八 b 二零呢存在,然后呢如果是返,如果这个返幺八 b 二零返回为一的话,就是 说这个数据总线唯一的话,那么我们就会进入这个微尔循环。首先进入这个微尔循环呢,我们要延时个一毫秒,那么我们要延时多久呢?我们根据这个时间他响应的时间,因为他 这里呢从我们高电瓶变成最后的这个高电瓶,他的这个时间最少要四百八十微秒,所以我们这个等待的时间呢要大于四百八十,最少要大于四百八十微秒。为了那个准确呢,我们将它 他的一个强制限制条件呢,我们设定为五毫秒,所以这个 i 呢,每 i 累累加一次呢,就表明延时了一个毫秒,那么累加五次之后呢,如果大于五,那么表明我们这个时间呢已经等待超过了五毫秒,如果五毫秒这个数据总线 还是为高电瓶,就是说还是为高电瓶,表明我们这个幺八 b 二零呢,他不存在,不存在的话,我们就进入这个衣服的返回这个零,返回零呢就是表示不存在了,所以这个初始化程序呢,就是这样写的,应该 非常简单,只要你看懂这个持续图,对照这个持续图呢就非常好写这个具体怎么对照持续图写程序呢?前面已经给大家介绍过, 那么写完初始化程序呢,我们就要开始对我们这个幺八 b 二零呢进行写写字节和读字节。那么写字节和读字节他有他的一个时序,他是读 控制句,读零时序,还有读一时序,这里有写零时序和写一时序,他写你会写零,写一的话,那么他写一个字 节呢?其实就是将我们每一位呢一个位一个位写,然后循环写八次,就可以写一个字节,就是这样的,所以我们这里同样根据这个写实序呢来写这个一个字节的函数。怎么来写呢?我们命名为 这个函数,名为 d s 幺八 d 二零 right w i t e y t。 因为写函数呢,我们不需要对这个函数进行返回,所以我们为空类型,但是呢写这个 写幺八 b 二零写字节函数呢,我们需要一个数据,我们要写什么数据,所以要对他传入一个显示参数。那么怎么来开始写这个写字节的 这个函数呢?我们看一下这个时序,首先我们要如果要对他写写一位的话,首先我们要将这个数据总线的拉低, 拉低的话呢,我们这里延时一十五零秒,然后呢我们从低位到高位的顺序发送一位,一位发送,因为他这个幺八 b 二零 传送每一位的话,是从低位开始传送,然后再是高位,所以待会我们写这个程序的时候呢,我们也是从低位开始写,那么写完一位之后呢,我们要延时六十个微秒,延时六十个微秒之后呢,我们要将我们的数据线呢拉高, 拉高之后呢我们就继续重复我们这个第一步,然后到第五步就直到写完一个字节为止,接下来 我们就写下这个写函数,那么因为我们要循环写八次,所以我们这里定一个变量 i, 那么我们要通过一个负循环来进行写, i 等于零, 我们这里就定义两个吧,一个挨一个接,那么我们用接接等于零,那么接小于八, 然后呢这个 i 还有其他的作用,那么我们循环八次写,因为我们温度传感器这个单总线通信呢,他是先传送第一位,也就是说 我们要将低位线发送出去,那么首先呢我们要将我们的总线呢拉低,因为根据这个时序呢,我们要将总线拉低,我们直接复制上面这个,这里的这个总线拉低,这就拉低了我们总线拉低 一种线之后呢,我们还要对他进行一个 写入,怎么先写入第一位,那么这个延时呢?待会我们这里一起在这后面延时,因为我们发送一位数据,后面呢有个延时,我们在这里进行延时,然后呢我们就开始发送了,怎么来发送呢? 发送他的地位是怎么来发送的?就是将我们这个行驶参数这个数据呢这一字节的数据呢,跟我们的零 s 零一相与 相遇的话,因为我们这个零 s 零一跟这个相遇的话,我们就知道这个 get 它的最低位是一还是零,如果这个 get 最低位是零的话,那么传送的最低位呢?它就是为零 到我们这个总线上,因为我们这个相语的话,根据前面讲的这个语音算呢,只要为零的话他都为零,只有为一的话,那么就取决于这个 get 了,如果他这个为为一,那么传送的数据呢?就是一,如果为零传送的数据就是零, 所以我们通过跟我们这个零 s 零一相遇,那么前面我们讲这个先传送高位是怎么来弄的呢?就是跟我们零 s 八零,零 s 八零就是我们最高位嘛,跟他相遇,那么我们这个单总线传送的是先传送 b 位,所以跟我们的零 s 零一相遇, 这里相信大家应该非常清楚,然后呢我们要对他进行一个延时六十微秒,那么延时的话,我们就在这里对他进行挨,这里挨加吧, 因为前面这个地方呢,我们让他短暂的一个延时,然后呢这条雨季也是相当于延时一点时间,因为我们执行一条机器指指令呢,他都需要一个微秒,那么 发送完一个位之后呢,最低位之后我们要对他进行延时,怎么延时呢?同样的我们使用这种方法,一个外循环的方法让他递减啊一点点,那么这个延时时间多少呢?这个延时时间大约是六十八微秒, 六十八微秒,那么这个六十八微秒就是跟我们这个时间呢,正好是一样的,因为我们前面要延时一十五微秒吗?然后呢这里延时六十微秒,我们就让他延时六十八微秒就可以了,因为这个 最少要延迟六十微秒,所以我们让他大一点,那么延迟六十微秒之后呢,我们要将我们的数据总线呢拉高,接下来我们就把我们的数据总线呢拉高,拉高之后呢, 拉高之后我们要对它进行移位,因为你每次只是发送移位数据,那么 我们还需要对他进行数据的一个移位,怎么来移位呢?前面我们都讲过,这就是将我们最低位,因为我们先传送最低位,传送最低位的话,我们就要将我们的高位呢移到我们最低位位置上, 怎么来将高位移到低位呢?那么就是通过我们这个右移右移的话,就可以将我们前面的这个高位呢,将我们最低位移出去,然后呢 前面的这一位呢就可以移到我们的最低位这个位置来,然后通过这个负循环呢再次来判断我们这个 get, 这个是第二位它的一个数据, 然后呢这就是我们这个循环八次将我们这一个字节发送出去,发送到我们这个数字总结上面,然后呢我们这个函数呢就已经写好了,这就是我们幺八 b 二零的一个写字节的一个函数,写字节的函数呢, 我们有写字节,我们肯定还有读嘛,怎么来读呢?读其实跟写其实是类似的,那么我们就来写一下,因为读这个字节呢,我们就需要将我们读取的一个字节数据呢返回出去,所以我们这里有一个返回时, 返回时我们这个函数命名呢为 b s 幺八 b 二零啊, b 二零 laid 啊 e a g laid back 这个函数里,那么读函数呢,里面就没有参数了,因为写函数呢,我们要将数据写进去,所以有个参数,那么读呢,我们是要将我们读取的数据返回出去,所以我们这里有个返回值, 然后呢怎么来读?同样的我们要用到或循环,因为读一位,一位读嘛,先读低位,然后再读高位嘛,然后就是要用到一个变量 i 和 j, 这个 i 和接呢,前面已经在写的时候已经给大家说了,接呢用来你随便用 i 还是用接,关键是你自己要配合这个程序。然后呢我们将我们的 接作为我们的破循环的一个条件呢?然后呢相接等于八,我们这里用接等于八,然后接呢这里是接等于零,接小于八来作为判断,那么我们将接呢复词为八,然后呢如果接大于零, 然后让他执行,那当他执行完一次,我们让接减减,这也是一种循环,只不过这种循环呢跟这种循环是一样的,循环八次,只不过我们这里换成这种写法,大家要去一定要看得懂。然后呢 我们怎么来读呢?同样的我们要将我们的总线呢,数据总线拉低,首先要拉低,拉低的话我们复制这条语句,拉低,拉低之后呢,这里要 延时一个四微秒,那么这个四微秒呢要大于一微秒,大一微秒,通常我们一条街指定都要一微秒,所以我们让他挨加加,这个挨加加呢,待会我们还要用作其他的一个延时, 所以我们这里就放压压压磁力,这里呢就起到一个延时的作用,那么这个延时呢,也就差不多也就要大一微秒了。 那么延时之后呢,我们就要将我们的数据,这里是一维秒也是一维秒,大于一维秒就可以了, 大于为秒,然后呢将我们数据拉高,拉高一,这里拉高一,怎么来拉高呢?就是通过我们这复制过来,将我们的数据线拉高,让他为一拉高,为一的话,我们这里还要延时, 延时十微秒,延时十个微秒,那么怎么来延时呢?我们同样的要挨加加,然后呢再挨加加 这个 i 加加呢,我们就起到了一个延时的作用,这个延时呢大概我们就需要一个六维秒的一个等待, 你也可以通过这个延时函数这里延时个十位秒,然后呢我们就开始读取我们的一个数据了,怎么来读取呢?我们一位一位读取,我们这里再定一个变量, 那个变量 e i, 然后呢 e i 用来保存我们每一位的数据,然后呢我们再定一个变量字节来返回出去,我们这一个字节,我们这里定 成字符,我们定义成这个形,定义成这个吧,定一个整形吧,让他数据更大一点。 然后呢我们将我们读取到总线的一个数据呢,保存到我们的 b i 这个变量里面,然后 读取出来,因为我们根据现在根据这第五个嘛,第五步要读取我们这个状态嘛,每一位的状态呢在读就保存到我们这个 压这个变量里面,然后呢我们要对他进行移位,因为我们先读的是低位的,然后呢我们要循环读八位嘛,所以我们将我们这个 每一位的数据呢都移位之后,保存到我们这个 b y t 这个变量里面。那么怎么来移位呢?我们通过这一个 方法,我先写一下,等一下再再给大家介绍,然后呢先移位,然后呢再到我的 b i 这个呢就是我们的一个移位,首先 我们要将我们这个 bat 这个字节呢要移位,这个跟我们前面讲 iphonec 那个先在我们读取函,读取一个字节的函数里面呢,我们先要对他进行移位,移位之后我们再让他数据呢获取他的数据, 因为如果你这个移位放在后面的话,就放在这个湖底数据后面的话,那么他就会循环移八次,移八次的话,那么你最 最后一个最高字节,就是说我们的最高的一个位呢就会被移走,所以你读取的字节呢就是错误的,这里大家一定要注意,先要对他移位,移位之后呢我们要获取我们的数据, 首先我们获取的数据呢,这个数据保存在我们 b i 里面,然后 b i 呢先先要又移七位,它才能, 那么这里又移七位,左移七位的话,那么就像我们这个,嗯总共有八位吗? 就移到最高一位去啊,最高一位的话就成了一个字节,就成了一个字节吗?他有八位就成了一个字节,正好跟我们这个 bad 呢是一个字节,那么这个 bad 又又一位,就将我们这个获得的这一位数据呢移到我们的第一位位置 上,然后呢通过八字移的话,他就将我们的获得的这一位呢移到他的最低一位去了,所以我们先读的也是第一位,所以大家这里要看懂,那么怎么来 计算呢?如果大家看不懂这一条语句的话,那么就可以用举例的方法一步一步来算。首先假设我们获得的这个 i 呢,第一个呢是获得的是我们的数据一, 那么数据一的话经过这里,因为首先那个 bat 是零的,零的话呢,左移右移一位的话还是为零还是为零?我们这不管。 然后呢这个 fat 这个 b i 呢,是一的话,一的话要左移七七位,那么就变成了零零零 零,这个是四个零,然后是在零零零又一七位这里变成一, 我们的引起过来,这样的话就是成了这个,这样的话呢就移了七位,就将我们这个一呢移到最高的一位上了, 那么我们再经过这个不循环过来,假设我们这得到的这个 b i 呢现在为零,那么为零的话呢, 根据我们这里这个 back 呢,现在是这个,那么他要左移右移移位,右移移位的话他就变成了 零幺零零,然后呢零零零零 他又一位就是成了这一个结果,这个结果再跟我们这个货一下,因为我们现在 bi 呢是等于零的,零的话右左移七位还是为零,跟这个货一下货运算的话,你为零的话还是为零,因为我们跟前面这个 结果呢,箱货的话只有为一的话他才为一,只有如果为零的话,还是看你前面这个结果,所以还是等于这个数据,那么循环 再循环的话,同样的这个一呢又会移到这里,然后又会移到这里跟这个相相或 最后呢我们会将我们得到第一位,这个数据呢移到这一位来,也就是说我们首先读取的这一位呢,还是 是他的一个最低位,也就会被移到这一位去了,所以这里应该非常清楚。那么读取完了这个 数据之后呢,我们还要对他进行延时,四十五为秒,那么我们这里呢同样的采用这种方法来延时,我们加上二等于四,然后呢我们延时一下, 这个还减减,还减,减的话这个时间呢就大于我们的四十五微秒了,那么我们 ida 六的话它是六十八微秒,那么 ida 四的话它是大于四十 五维秒的,所以这里要注意延时四十五维秒。延时完了之后,我们喜欢八次,就将我们八位数据呢全部读取出来,然后呢保存到我们这个变量 face 里面,我们将这个变量呢返回出去,就是我们这个 读取了一个字节数据了,我们返回出去就可以了,然后呢就是我们温度传感器 ds 幺八幺零读一个字节的一个函数,那么写完读一个字节的函数呢?我们接下来要写什么?因为我们要对我们的温度呢进行 转换读取,那么怎么来转换呢?前面我们都讲了他的一个 rom 指令表和 ram 指令表,我们就根据这个指令表呢来进行编写, 那么怎么转换温度?转换温度的话,首先我们要对他对这个温度传感器进行初始化,初始化完了之后呢,我们要 发送我们的这个这条 rom 指令,就是 c c h, 这 c c h 呢就是忽略我们这个 就是为了 room 地址,直接向我们幺八 b 二零呢发送温度转换的一个命令,这个呢适合于我们的一个单机的一个工作,就是说我们对我们一个温度传感器进行检测,然后呢我们就开始写一下, 写这个函数呢,同样他没有返回值,然后呢我们命名为 d s 幺八 b 二零 charge 对 a n g charge temp 温度转换 e m p。 然后呢这是温度转换,温度转换的话,首先我们要写了,对这些函数都已经写好了,我们要对我们温度传奇呢进行初始化,初始化完了之后呢,我们要对他延时一会啊,延时一段时间,延时多久呢?我们延时个一个微 一个毫秒就可以了,然后呢延时一个毫秒之后,我们就开始发送我们这个 c c h 这条指令,这条指令就是开始让我们这个温度叉七呢进行一个转换,然后呢发送,怎么来发送字节呢?我们已经写了这个函数, 像我们幺八幺零发送一个字节函数,那么里面呢有一个参数,我们传送的是我们的一个指令 cc, 那么发送完了这条指令之后呢,我们 这是发送我们的 row 指令,我们还需要发送我们的那个温度变换,因为刚开始发送 c c 的是让我们温度传感器呢开始进行转换,那么是四,再发送四,四呢是启动我们这个温度传感器转换。 那么默认的情况下呢,我们是使用一十二位的转换来进行转换的,因为我们默认情况下是一十二位分辨率,所以我们还需要发送一条 ram 指令,这条指令呢是十四, 发生这条的话,那么就是让我们这个温度传感器呢开始一个第十二位分辨率的转换。转换之后呢,如果你对他一次读的话,那么你这这个时候呢要对他这个时间,这里已经写了, 如果是一十二位转换精度的话,那么他的最长时间呢是七百五十个毫秒,所以如果你这里只对他一次毒的话,那么你这里要对他一个延时,延时多久呢?最少是七百五十毫秒,那么这里我们 让他连续的一个检测,所以我们这里就不加延时了,如果加延时的话,待会在显示的时候呢就会出现闪烁,我们这里就不加延时。这就是我们的温度的一个转换的一个函数,通过这个函数呢可以对我们这个温度传感器呢进行初始化,以及 开始发送他的一个转换命令,那么让我们温度传感器开始转换了,我们就要让我们转换的数据呢?读取出来,怎么来读取呢?同样的要对我们这个 ram 指令呢进行一个写入, 那么根据我们的 ram 指令呢,这个 b e 呢,它就是读取我们 rap ram 的一个字节的内容,因为我们获取的就是我们转发 的一个温度数据啊,他是保存在我们内部的 ram 他九个字节当中,所以我们要读取我们发送这一条指令呢,才能读取我们这个 ram 里面的内容,所以 我们接下来就编写一下我们这个函数,这个函数呢就是让我们那个温度传感器呢开始读取数据,那么怎么来写呢?我们要命名一个函数, bs 幺八一二零幺八 b 二零,然后呢 read, 这是发送我们的温度 m m, 这是这个函数呢是什么功能呢?它就是让发送我们的温度读取的一个命令,那么要发送 他这个温度读取呢?首先跟我们这个温度的那个转换呢是一样的,我们直接复制过来, 首先要对我们温度传染进行初始化,然后延时一段时间,然后呢还要发送这个 cc, 这个 cc 呢,我们就是跳过我们的六十四位的一个 rom, 然后呢 在发送这个时候不是发送十四的,这个时候是发送我们的 b 一,就是读取我们 ram 的一个字节 b, 发送 b 一的话呢,就可以读取我们 rem 里面的温度数据了,因为我们两个季节的温度数据呢,它是保存在我们这个 rem 当中的,所以接下来我们再写一个温度读取的函数,那么这个函数呢就是真正读 我们 ds 幺八幺零温度传感器检测的温度值,所以我们这个检测的温度值呢,我们需要返回出去,就是因为我们总函数要调用我们这个函数的话,就要通过这个返回值呢来获取,那么我们定一个返回值为他的一个整形, 然后呢函数名为 d f 幺八 b 二零,然后呢读取温度 and d m p 读取我们的温度。那么怎么来读取呢? 首先呢我们要发送就是开始让我们这个温度呢进行转换,就调用这个函数,我们已经写好了,转换好之后呢,我们就要让他发送我们这个温度一个读取了,因为我 我们这个函数都已经写好了,我们直接调用,读取好之后呢,我们就开始发送完这个读取命令之后,我们就要读取我们 rem 里面的温度数据,那么首先读取的是第一个读取的是我们的第一字节数据, 我们可以看一下这个这个计算器里面的一个格式,首先它是我们的低字节的一个计算器,那么我们需要设设置两个变量, 用来保存我们这个低字节和高字节的一个温度数据,进行一个 temp catch g m l 表示我们的温度的高字节和低字节,那么首先读取的呢是我们的温度的低字节数据读取函数呢,我们也写了,我们直接复制过来,那么这个就 是我们的温度读取数据,那么你直接调用这个函数呢,就可以读取我们这个 ram 里面的一个温度数据了,然后再保存我们这个变量里面,这是低字节的数据,紧接着我们就读取我们的高字节数据, 都是他内部一个完成的,那么我们读取出来就可以,这样的话就读取了高字节的一个数据,保存在这个变量里, 那么温度呢?就是已经读取完了,就是这两个一个低字节,一个高字节,那么我们需要将它组合组合起来返回出去,因为我们定义了一个 整形他的返回值,所以我们这里面呢还要定一个变量,整形的变量,我们通过这个变量呢来进行转换一下,再返回出去。 怎么来转换呢?我们要将我们低字温度,低字节和高字节呢进行一个组合,我们首先将我们这个高字节保存在我们这个 time 里面这个变量里面, 因为我们高字节呢,他前面五位呢都是符号位,还有后面呢都是他的一个整形的一个数据,那么所以我们保存在这 time 里面,然后呢我们再利用这个 time 呢 进行左移八位,为什么左移八位啊?因为我们这个太模现在保存的这个数据呢,是我们的温度的高字节,他 右移左移八位的话,他就变成了一十六位,他的一十六位当中的高八位,所以他是高温度高季节。 然后呢我们还要对他进行一个预算或预算,因为我们要将我们的温度的低字节呢也要保存进来, 温度的低字节呢,通过这条运算呢,因为我们这个时候通过这个左移八位的话,我们的这个高八位呢就移到我们一十六位的高八位上面去了,然后呢再跟我们这个低八位, 这个低温度的这个字节呢第八位呢相和一下。那么他的第八位数据这个 time 呢,因为没有占用嘛,所以直接跟我们这个 温度的低八位呢就组合在一起,因为他是货运算,而不是语音算,这里要注意,他货运算的话,就将我们这个温度的低八位呢就组合到我们这个 temp 这个低八位里面,而高八位就是我们的温度的一个 呃高八位这个值数据,所以呢组合以后,我们就将这个一十六位数据呢返回出去,这个一十六位呢就是将我们这个低温度的低八位和高八位组合在一起了,然后返回出去, 返回出去之后呢,我们通过我们主函数调音,这个函数呢就可以读取我们的温度,然后再进行一个转换一下,这就是我们的一个 幺八幺零温度读取的一个函数,那么我们要使用的一些函数呢,通常我们使用的就是这个函数在主函数里面调用,所以我们要对他在他的投文件里面进行声明, 怎么申请呢?就是将这个函数名呢直接复制到我们的同音键,然后加分号一定要加,记得加分号,不加分号的话他会报错的,这里要注意。然后呢定义好了之后, 我们就编一下,看他是否有错误了,没有错误这里有个警告,这个警告是因为我们没组函数里面还没有使用我们这个 要用的这个函数,因为我们对他声明了,而且将我们的图文件呢已经包含进来了,所以没有使,没有使用的话他也会警告,但是他不会报错,这里要注意。接下来我们就写一下我们的主函数,那么我们主函数 要实现什么功能呢?首先我们一个程序呢都是从卖还是开始执行, 那么我们需要对我们这个温度呢进行读取,读取之后呢我们需要对这个温度,因为我们温度读取出来的是高八位和低八位的一个组合数据,他这个数据呢我们 还需要对它转换,因为读取到的值呢,还要将它这个值乘以我们的零点零六二五这个精度, 因为我们使用的是一十二位,一十二位的话,他的一个精度的系数的话是零点零六二五,所以我们将我们得到的一个温度这个十六径之值呢乘以零点零六二五,然后呢才能得到我们的实际温度, 我们还要判断我们这个检测的温度是大于零的还是小于零,根据这个符号位就可以判断。所以我们这里进入这个主函数之后,我们要对他温度读取,然后呢再对他这个温度呢进行判断和处理, 最后呢我们再进行显示,所以我们要在我们这个数据处理函数呢进行一个编写,我们这个数据处理函数呢, 我们让他传递一个形式参数,整形的一个形式参数,那么这个参数呢是方便于我们待会直接调用我们这个函数,因为我们直接通过这个函数返回时呢,也是整形的,所以可以通过这个 形式参数呢传递进来,直接将我们这个函数调用进来就可以了,那么这里呢我们直接从这里开始写。 首先进入这个函数之后呢,因为我们要判断我们这个温度,他是大于零的,还是等于零的,还是小还是小于零,我们要判断这个温度 是不是大于,是不是小于零,如果是小于零的话呢,我们要对他进行处理,因为这个如果是小于零的话, 这里他要首先要测这个数值呢,他需要取法再加一再乘以零点零六二五,所以我们需要对他一个处理,怎么来处理呢? 我们要让他进行显示负号,因为我们这测得的温度呢是负的,所以我们如果在显示的时候,在数码管显示的时候,我们要让他显示一个负号,那么怎么显示负号呢?我们就要定一个数组了,这个数组我们定义为 display play p s p p p s p a l you want to play desk。 那么定义这个数组,这个数组我们就定义八位吧,八个八个字节里面有,然后 呢我们就让这个数字呢,首位呢等于 d s 四零, d s 四零呢,在我们数码馆里面呢,它就是一个负号,为什么是负号呢?这里我们可以给大家演示一下, 我们就先以 ppt 的形式,我们可以画一下这个八一段,八段,八段数码管,然后呢零二四零,这是针对我们供应数码管的哈,然后呢四零的话呢, 我们这里是 a, b, c, d, e, f, g, d, p 这八段,那么 d p 是高位, a 是最低位, 那么可以看一下四零,换成二进制的话,就是零幺零零,然后呢后面四个零,那么我们对应的这几段就看一下零零零零,就是零零 零零零,然后呢零零幺零零零幺零, 那么只有这里为幺,也就是这个机段为幺,那么机段为幺的话,其他的都是灭的,这里为幺的话,他是为亮,所以这里就显示一个负号了,所以这就是为什么在数码管上面显示一个负号, 我们这里呢就是让它为连四零,这就显示一个符号,等一下我们直接在显示按钮里面调用这个数组就可以了。然后 呢显示个符号之后,我们要对他进行处理,因为我们如果温度小于的话呢,这个值呢?测量的值呢,他先要取反,再加一, 他这个值是先去反,再加一的,所以我们要对这个值呢进行一个反还原。 怎么来还原呢?因为他是先取反后加一,所以我们对他进行减一,再取反过来就是我们以前的那个值了,就是我们这个实际的检测的一个不值,所以我们这里要进行一个还原。 temp 等于 首先要减一,然后呢我们再对他取反,取反的符号呢? 前面已经给大家说过,这就是得到了我们这个系的一个小温度小于小于零的一个数值,因为你这个温度小于零呢,他这里要要设的他的值的话,那么就要对他进行取反,再加一, 所以呢我们这里要对他先减一,然后再取反,这就是还原到我们读取的这个数数据,那么读取的这个数据之后呢,我们要把保让他 保存到我们一个变量里面,我们设定一个变量,这个变量呢因为我们主体的温度呢可能是带小数的,所以我们定一个 pro 的主点形,然后呢定位 tp, 那么我们就让我们这个温度呢保存在我们这个 tp 里面,然后呢我们要对它进行处理, 我们要最终要获得它的一个数据嘛,然后呢我们就让它为 m 等于 p, p 乘以零点零六二五,要乘以这个系数零点零六二五,然后呢我们再让他放大一百倍,放大一百倍目的是让我保留我们小数点后两位数据,然后呢再加上零点五,这里加零点五的,不加的话都可以 加这个零点五呢,是因为我们这个考虑到我们这个 c 元浮点数呢,他会转换成整形的话,他会 将我们这个小数点后面的数呢自动抹掉,然后呢加上零点五呢可以起到那个四舍五入的那个作用,如果你不加这个是零点五的话,也可以,你直接乘以这个一百就可以了。 将我们这个数据呢放大一百倍,然后呢就是保留我们小数点后两位数据了,这里要注意,然后呢转换好以后呢,我们将我们这个数据呢就是一个整形的数据, 整形的数据保存在我们这个 time 里面,因为你这个 t p 呢是浮点型,浮点型要跟我们这个零点零六二五相乘的话,因为这个浮点型呢是保刚开始保存我们这个检测的一个温度,温度里面呢保存在我们浮点型里面,浮点型然后再 再乘以零点零幺二五,这个温度系数再乘放大一百倍,这就是我们这个结果。之后呢再加上零点五就是我们的一个小数点,四舍五入 最后中这个结果,我们让他保存在我们 tam, 而我们 tam 呢是整形的,所以这个数据呢会强制转换成一个整形数据,而这个整形数据呢是放大一百倍,这个一百倍待会我们就除以这个一百,让他 保留我们小数点后两位就可以,所以我们这里呢就是这样处理的一个计算关系,大家这里要看得懂。 然后呢这是小温度,小一点,我们还如果温度大于零呢,温度大于零怎么处理?温度大于零就很好,他温度大于零的话,他直接这个检测出来的数值呢,就乘以零点零零 二五就可以了,我们这里就直接乘以零点零二五,而且呢我们首先我们不让他显示这个符号位,我们就不让他显示符号位的话,我们就是零零了,因为我们显示符号的话就是这一个,那么不显示符号位的话就是显让他为零零。那么 同样的我们让我们 tp 呢温度保存在 tp 里面,然后呢再对它进行一个换算,就是这个换算 主要是零点零六二五零一百,那么再加上零点五这个零点五呢作用是跟前面一样的,然后呢转换好以后呢就可以将我对他进行数据处理了,怎么来处理呢? 我们就同样的用这个数组来保存的过来,因为前面我们已经用 零,所以我们这里一一的话呢,我们这里呢保存我们的 temp, 因为是用 temp 最终保存的一个整形数据,那么 temp 呢要除以多少?除以一万,为什么除以一万呢?首先我们这里放大一百倍,所以我们要除以 他这个放大的一百,然后呢这个一百呢是取我们这个,因为我们测温的范围呢最大是一百二十五度,所以我们这里呢要除一百,获取我们的百分百分位,然后呢这里呢我们就除以 one, 然后再取一千,这样的话就可以得到我们的一个十,就是温度的一个十分位,十分位的话那么我们这里要摆过来 十分位的话,我们再得到温度的个位,个位怎么来得到呢?同样的是可以这里可以这个,然后再可以 一百,这样的话呢就获取到了我们的温度的个位,个位的话,我们要让我们输发管呢那个地方显示一个小数点, 怎么来显示小数点?只要跟我们这个数据呢?因为我们最终这个得到的数据是通过这个数数码管这个断选数据来表示的。假设我们得到的是三, 这个 temp 跟这个相符一下得到的三三的话要用我们这个数码管第三位零一二三,这是我们的数字。三,要让这个三,那个 dp 那一段呢就是第八段呢,要显示 小数点,怎么来显示小数点,就是让我们跟我们连八 f 八零相遇,八零的话它最高为 dp 为一,所以要让那个小数点呢亮起来,所以跟这个相遇相和一下就可以了。然后呢同样的我们显示小数点后面两位数据, 不要就直接我们直接这里写一下吧,除以一百,除以一百就可以,除以一百,然后在这里除以十,因为我们放大了一百倍嘛,我们只要除以他的一百,后面一百就可以了,然后呢这里除以十就可以, 这就得到了我们小数点后两位,后两位数据的话,我们这里是是的零一二三, 那么我们总共用到了六位数组里面的六位,我们定义的是八位,所以我们还有两位没用。 那么这个温度读取呢,以及他的一个转换就已经给大家写完了,这里一定要注意这个地方温度,负温度的时候,首先我们要对他进行相减一,然后呢再读反,这里呢这里写写,写错了,这里是先要 取反,再减一,减一, 这要注意先减一,先减一,再取反,再乘以 零点零六二五,就可以得到实际的温度。这里大家要注意这里先要减一,因为你如果是负温度的话,他得到的是一个 补码,那么我对补码还原成他的一个原码的话,那么就需要先简易再取法,就得到了这个原码温度的一个原码,那么原码的话保证到我们这个补点 数里面呢,再对我跟我们零点零六二五系数相乘,再放大一百倍,就是保留我们小数点后两位数据,那么就可以了,这个加零点五,你也可以不用加,这是我们为了四舍五入, 那么这个最终得到了一个结果呢,我们都保存在我们这个数图里面,那么我们就要对他进行显示,怎么来显示呢?因为我们要使用到了 六个数码管,因为我们使用到了六数组里面的六个数据嘛,所以我们数码管呢,要使用六位,使用六位的话,后面我们还需要写两位出来,写两位的话我们就不写了,我们直接从前面复制了, 这个就不用再讲了,这重大数码管复制过来,从这里后两位三四五,我们将四五复制过来就可以了,四五复制过来, 好,这就是前面,后面就是数码管的最后六个位,六个位的话,我们这里改了一个参数,我们要使用六位吗?所以这里是六。然后呢,这里要改变一下,我们使用的是这个数字, 因为我们当 i 等于零的话呢,首先点亮的就是我们最右边的一个数码管,也就是我们最低最低一位的数码管,而最低一位如果这里为 i 的话,那么最低一位呢?这个数据呢是 我们最高位五号位,所以不能这样写,如果这样写的话,那么显示正好是相反的倒过来,那么怎么让他正顺着来显示呢?这里就有一个技巧了,就是通过这个相减,跟我们前面讲 那个 iphone c 那个实验一样,对它相减一下。假设我们 ida 零,那么这个时候呢, ida 零是选亮了我们最后一位数码管,那么这个时候呢? ida 零这个数组呢,就取第五个,第五个的话正好是我们 小数点最后一位,所以他最后一个数码管呢就正好显示我们小数点最后一位正好是对应的,所以同样的这里就使用五点 i, 然后呢这是我们的一个动态扫描的一个程序, 然后呢我们这个数据处理呢,里面有一个参数,这个参数是有什么作用呢?就是通过我们这里呢将我们这个函数直接复制过来, 这个函数呢因为他的返回值呢也是整形,所以我们这里呢可以直接调用,因为这个函数呢返回的就是我们读取的一个温度的数据,两个字节组合在一起的, 那么补起进来之后,这个温度呢就要对他进行判断,如果他是小一点的话,小一点的话呢他因为前面的这 五位呢是符号位,如果小一点的话,他就是负温度,负温的话,那么我们就要对他进行减一,然后再取反还原他的一个原码,然后呢再对他进行系数的一个相乘,否则如果他是正温度的话,那么就对他直接 好直接进行乘以零点零幺二五,不需要对他进行一个还原的,这里要注意。然后呢将我们的一个温度数据呢进行处理,我们显示小数点后两位 温度就可以了,然后呢前面是他的一个百位,十位个位,然后呢通过这个数码网显示函数就可以显示,我们编印一下,看他是否报错,没有说我没有警告,证明我们这个语法是没有问题的。然后呢 下载到插板里面,你如果你在我们板子上插上你的温度传感器幺八 b 二零的话,你就可以检测他的环境温度,在数码网上面进行显示, 如果你是温度为负温度的话,那么你检测的温度负温度的话,他这个首先数码管的第倒数第六位的话,他会显示一个符号位负,那么如果为正温度的话,我们就不让他显示, 我们就显示他的一个实际的一个检测的温度数据就可以了,这是一个简单的一个温度测量的一个程序,那么大家可以发挥自己的一个想象,你可以设计一个温度报警 系统,还可以自己用按键,因为按键我们前面已经讲了,你可以用独立按键呢来设计 一个温度控制系统,你可以通过设定温度的上限和下限来控制报警,如果超过上限的话就让我们蜂鸣器报警,如果低于下限的话也让我们蜂鸣器报警。还有 你可以通过我们开奥版引出的一些 l 口呢来控制其他的一些外围的一些模块,比如说继电器啊什么的。如果你这个温用我们开奥版来进行一个智能温度的一个测量的话,那么你测量温度之后, 你可以通过自己接一个电器在我们开关上进行控制,那么来进行一个加热以及断开的一个控制,这个呢大家都可以客户自己一个锻炼,我们这节课的程序呢,就是给大家 介绍他的一个温度的一个读取他的一个程序,这个程序呢也是最重要的,你如果要编写其他的一些应用的话,你只要调用我们这个会调用我们这个温度读取的这个函数就可以了。 大家一定在课后一定要记得自己多动手编写程序,如果你按照我们这节课编写的程序,自己在 原封不动的一步一步的编写,跟你自己能力也有提高的,希望大家呢,不要忽略自己动手编写程序的这一个习惯,千万要注意。今天这节课就讲到这里,谢谢大家。

这两个小模块都是加速度传感器,虽然他们的引脚各不相同,但是在 idola 里面的用法是一样的,他们都只需要四条线,一正一负两信号。 就拿这个 mpu 六零五零为例,它的 vcc 接单片机的五伏, gnd 接 gnd s c l j a 五 s d a j a 四,这个 a d x l 三四五接线也是一样的,他们的程序快,用起来也很简单,上面的是六零五零的,下面的是三四五的, 想得到哪种数据,点开选择就行,先用六零五零,下面的禁用一下就行上传我们来看一下数据, x o 往前可以到负一,往后这边可以到一,刚刚看的是加速度,我们再看一下角度,往这边 可以达到负的八十九九十,往这一边差不多,他还有一个获得温度的功能,我们看一下,现在是二十八度,我用手按一下二十九三十度,现在我们把模块换成他 三四五,这个模块的数据看不出单位是什么,而他的单位就非常明显,第一个是重力加速度 g, 第二个是角度度,第三个是温度摄氏度,感觉他启动速度快一点,他启动速度慢一点。那么大家会更喜欢哪一个模块呢?

今天给大家看一下这个好玩的传感器,它是个颜色识别感应器,它可以识别物理的颜色,可以把颜色信息传送到开发板上面来。日本应用在一些自动分拣的机器上面,现在我们用阿斗一诺来读取他识别的颜色,并且通过灯带显示出来。 现在我们拿起物体靠近传感器,大家可以看到 led 灯带的颜色也发生了变化,他就会识别出物体的颜色。现在我们来用显示器变换颜色测试,给大家看一下灯带的颜色和屏幕保持一致,就说明了传感器识别出来的颜色是比较正确的。如果对我的视频感兴趣,可以点赞收藏。

这是一个电位器模块,这边呢是一个剁机,这个呢是一个单片机,这仨在一起能有什么好事呢? 下面咱来动一下电位器。哎,剁机在变化。对于单拼机来说呢,他能识别的电位器给的信号呢,是零到一零二三。 而对于剁鸡的输出呢,是零到一百八十度。那么怎样让零到一零二三变化成零到一百八十度的角度变化呢? 咱们看程序非常简单,就一句话的事,这边呢就到第五管角,咱们是第五管角, 然后这边呢是个模拟输入的 a 一,这边模拟输入的 a 一管角,然后这就是他们三的一个连接卧机的角度是零到一百八十度。然后呢, 咱们做了一个映射目,映射函数,把模拟输入值零到一零二三呢,约束到零到一百八十度。就这么简单一句话完成。然后呢给他五毫秒的反应时间,于是就可以做控制了。 然后咱们打印一下,看看剁鸡的角度数对不对,然后窗口 咱们看一下,放到最大一百八十度,最小零度,非常准确。现在咱们再来看一下,把电位器拿出来,换成了光明,那又有怎样的反应呢?咱们来看一下。 哎,现在呢座机的角度随着光明的明暗的变化而变化,是不是非常有趣。当然了,光明的数字呢,也是领导 一零二三的一个数值。当然了,不仅是光明,也可以是温度或者气压,或者是时间等等,任何一个变量都可以控制,无非就是一个变化量控制。一个剁机角度的变化。 剁鸡呢,非常多的用在了机器人的关节控制以及一些精密控制中。那么现在呢?你想让剁鸡做点啥?或者说想用传感器来控制点什么?说出来咱们一起研究研究。

能远程读取温度值的测温装置怎么做?上一个视频我们给大家分享了我们这个作品的效果,那么这一个视频我们来好好讲一讲这个温度传感器的使用方法。我们可以看到这个线长是可以根据大家的需要来定制的,然后他的 接线端是有三根,一根白色,一根红色,一根黑色。那么黑色是我们的地线,红色呢是我们的电源线,一般接三伏左右的电压就可以了。白色呢是我们的信号线,我这边是接在我这个呃 wifi 版的第二口。然后后面的话会给大家分享一下。嗯, app 端如何设置?有兴趣的可以关注一下。

使用 note mcu 制作一个低成本家庭环境测量小设备, 用来检测家里的二氧化碳和甲醛的浓度, diy 成本低于五十元,非常适合新手制作。 根据连线图在万能电路板上焊接上器件的 接口, 编写完毕,在 arduino 上点击上传,将代码上传 no n c u 的闪存即可。 建议第一次启动,在室外启动寻找基点,这样传感器数据更加准确。 一起动手试试吧!

这是一个雨量传感器,如果上面有水滴,根据水滴的多和少就会输出相应的这个模拟量,那么搭配一个这样的比较器,就可以输出对应的这个数字量 模拟量,再连接电源就可以通过电位器可以调节数字量的对比值,直接输出对比结果,以及有一个 电源指示灯和比较输出的一个指示灯,如果这个灯亮,代表这个雨量超过了这个临界值,咱们把这个 传感器插入到我们开发板的这个接口中,就可以进行采集了,好,启动以后显示雨量,现在雨量是一同时这里是一条横 告,有一个容器相当于是一个可以储水,水位越高雨量越大, 我们通过一个湿巾可以来测试一下,将湿巾放置到传感器上,雨量马上就会起来,离开没有雨量。通过这个传感器我们可以实现雨量检测,比如说实现智能关窗 以及智能收纳这个衣架,这些都是可以的。在代码当中呢,只需要通过这样的一句代码获取我们的余量数据到一个变量中就可以进行接下来的判断工作,所以这个就是我们中国的。

今天我们来做一个有趣的实验,检测杯子里的水量。先在水杯两边贴上电极片, 准备好传感器和连接线,将它们焊好。 再将检测引脚焊到杯子上, 其余音角接到 iphone c 调试器上,插入电脑。 这个传感器寄存器地址是十六位的设置,每四十毫米 读一次,开始读取。下面往杯子里倒水,看看有什么变化吧。 你们知道检测原理是什么吗?评论区告诉我。

第二十一课,读取巡线传感器的数据,这节课主要学习如何使用巡线传感器,掌握读取巡线传感器的数据检测状态。 硬件目标使用巡线传感器,那么重点难点也是同样的是读取巡线传感器输出的数值。那我们要准备一个小车,并且准备好这个麦克比主板。 好,我们现在看一下这个小车,我们的小车呢,他现在我们给他安装上一个 红外的循迹传感器,那么这个传感器具体安装方法呢?就是安装在这个下面,那我们现在可以看一下 这个传感器已经给他接好了线,那么接好线之后,我们将这一边的线给从这个洞穿过来, 穿过来我们就要接线,那么接线的话呢,我们这里有很多个接口,那么注意这里有 大家仔细观察,有一个追幺,还有追二追三,那么最简单的我们就直接安装在这一边,我们看一下这个小车,这是小车的右边最右边的这个插头,这个白色插头最右边,所以我们将它插上 啊,插上去之后,那么这个就接线完成,可以把主板重新放入。现在我们需要的是 知道这个传感器工作的状态,我们按下之后好,按下之后这里的灯会亮的, 这个灯会亮,所以我们要知道他的工作状态,因为每一个传感器就像这个 b 站一样,他也有一个工作状态,所以这个引脚我们先看下引脚,我们先读取,打开编程, 好,那么这个显示读取是现在我们需要读取哪个引脚呢?我们这个引脚一个是三,一个是四,所以我们将这改成 p 三, 好,改成 p 三之后上传 好,那么现在下载程序, 这时候如果大家觉得这个风扇有点遮挡视野的话,就是可能会干扰我们测试,可以把它拆掉,或者从斜着这样看 好,那么程序下载完成,我们看一下这显示的是一个跟零差不多的数字,他虽然有点烂,但他是一个零,好,现在是零。如果我们将它移动到这个传感器上的时候, 我们再按一下这个复位, 但是但是我们发现他并没有变化,没有变化怎么办呢?我们就将电源这个电脑上的线给拔下来,然后给小车断电,让小车彻底断电之后再重新开启。那我们现在再看一下, 这是这一边,这是我们现在这一边,这个所以我们下下面这个黑线是什么东西?这是电工胶布,我们使用电工胶布, 就我们在电工胶布上拉下一段,或者用剪刀剪下来,那么贴在这个纸上,贴在这纸上之后我们就用这个传感器,就像 我们现在用用这个去做个打比方,用我们的传感器看一下他对着白色的纸的时候的数据和对着黑线的时候的数据,所以我们要看一下他们的区别。好,我们将这个传感器缓缓靠近, 因为我们这个风扇的原因啊,所以我们就可以先把它拆掉,这为了方便大家去观察, 那么我们自己在设计小车的时候不需要的原件呢,也可以把它拆掉,但是拆下来之后要注意保存好这些螺丝等相关的配件,因为这个一旦不见了之后就没得购买了,可以 自己去买 好。拆掉这个风扇之后,我们就可以看见这个灯,首先我们将它放在白色,再放在对着这个白色的纸,看见这个灯,这个灯是红,我们主要观察下面这一个,再靠近我这边把这个灯看下,缓慢的移向这个纸, 你像这个纸之后,这个灯他就他就熄灭了,那么我们看一下他这个灯亮的时候,上面显示的是零啊,显示零,那我们将它移动过来,移动过来之后他就显示一个数字幺,虽然他显示的不完整,但是我们可以看得 出来这是个数字,要所以我们现在可以判断到,当我们用纸用笔把它写出来,如果偏移路线, 然后偏移路线的状态,我们看一下现在偏移路线,这在照着这个白色刚才显示一个零,所以是等于零, 但是我们可以再想一下有什么更好的表达方法,如果没有的话呢?就用我这个方法来,偏一路线等于零, 正常正常路线的话,就是对,他已经对着这个黑线了,那么 那么就是让他显示一个数字幺,所以我们现在就把它记上来,所以我们现在知道这个状态,这节课主要的就是获取这两个数据,在偏移路线的时候的数据,还有正常路线,我们现在正对着这个传感器, 正对这个传感器正对的黑线,那么他就是正常状态,如果他如果他这样就是偏移了,左偏或者右偏都是一个不正常的状态,那我们另外一个演讲呢,就教给大家 自己去学习啊。 p 三,我们注意 p 三就是右边,所以我们还可以再记录一下 p 三,来接下来一个 p 四 这样写,主要是方便记忆啊。记录好这些数据之后,我们这节课的内容呢,就已经 ok 了,就是读取 这个传感器的数据,所以我们要注意这两个是一个参考程序,它不可以同时上传,因为它只有一个显示屏,所以我们先读取了第三的数据,再去读取第四引脚的数据。 那这有个巡线传感器的原理,巡线传感器呢,位于机器人的下方,有两个传感器,左边和右边构成,每个 传感器呢,它由一个红外发射器和一个红外接收器组成,我们用用这个车把它反过来, 反过来之后看这个头,这这个白色,这边就是红外发射,他有一种光线,我们在摄像头就可以看得见,但是我们人眼看不见,因为人眼呢把这个红外光给过滤了,所以这边是红外发射, 这个黑色就是一个红外接收头,所以当这边发射信号,我们的手靠的太近了,那么这个红外光他就会反射,反射的红外光被这个红外接收头接收到,他这 检测到前面有障碍物,或者是这个距离靠近,那他均线的原理就是我们这个黑线, 我们要知道这个白线和黑线吸收光线的效率不一样,就像我们对着这个黑线的,我们对着白线的时候,因为白色它反射的光线最多,而黑色呢,它反射的光线最少, 所以这个白色他反射的光线多。我们看这个传染器,他发出的红外信号,他在自对着白色的时候,这个灯就会亮,这个灯就会亮,是因为这个白色将红外信号反射了回去,所以这个红外接收头他就检测到红外信号, 那么我们将它移动到黑色这里,移动到黑色之后,这个灯它就 灭了,就说明他没有检测到红外信号。这是因为黑色他把这个大部分的光线都吸收了,所以这个探探头他就检测不到信号了。 所以为什么夏天穿黑衣服他会更加的热,就是因为黑色呢?吸收了更多的光线,更多的能量,所以会非常的热, 所以夏天穿白色的衣服呢,反射光线反射的光更多,反射的能量也更多,所以他穿起来就凉爽一点,这就是一个生活常识。好,那么另外一边的原理也是一样的 啊。这节课的扩展任务,尝试使用不同颜色的传感器的数据变化状态,就是我们先看一下现在我们的 背景是白色的,我们看一下能不能把背景换成黄色或者是绿色,进行一个测试,看一下为什么要使用白色和黑色作为这个背景地板。好,这节课讲到这里。

大家好,这里是陈悦创意科技,以下给大家演示的这款是基于无压大片机的水温控制系统,它主要是控制这个杯子里面的水的温度, 这个是温度传感器,插到这个地方,上面是一个不锈钢的外壳,然后这个这个是,呃,加热棒,它是插到这边的 usb 接口, 我们开机,呃,可以看到啊,当前温度是三十三点二度,然后上线,我们设置是三十三点八,下线是三十三点三啊,当它三十三点三啊,超过这个下线温度之后, 这时候他不报警,也就是说,呃,低于下线的话,他开始加热,然后高于上线,高于这个三十三点八,这个时候他就停止加热,把温 温度啊维持在三十三点三到三十三点八这个范围,现在可以看到这个温度还是不断上升的啊,因为这个加热片的功率比较小啊,所以他温度的上升比较慢,同时他这个水温 水温的上升也会受到这个外界的干扰,我们尽量用比较少的水,呃,同时这个外界的温度要保持在比较高的温度,才能让他处于保温过程,这温度上升才比较明显, 现在上升到三十三点三十三点六这个温度,呃,等他超过上限三十三点八,这个时候他会停止加热,现在是还是处于这个加热状态啊,但是不报警, 如果超过三十三点八就是上温度过高,这个时候会报警,同时停止加热,这边是继电器,他用来控制这个加热棒的,然后这是蜂鸣器还有 led 灯进行升温报警。下面的按键呢,它是用来设置这个上下上线温度以及下线温度,这个呢是可调电阻,它是用来调节液晶屏的对比度,这边是电源输入,这个电源输入我们啊配备了有这个五伏两安的社会气, 如果是用 usb 插这个充电板充电宝供电的话,需要保证这个电源有这个五伏两安以上的电源输入,才能保证这个供电正常。然后单面机呢,它是在这个液晶屏的下方,你可以拔掉这个液晶屏,可以看到这个单面机插回去看一下复位, 他是上升到三十三点六,为了节约时间呢,我们可以试试这个温度,把它调低一点,长按这个试试按键,然后把这个温度调低 三十三点五,这个时候可以看到啊,温度超过三十三点五啊,当年是三十三点六,三十三点七 啊,现在处于稳定状态,如果是超过三十三点五,他会停止加热,这个加加热灯熄灭,同时这个 usb 工联这里因为处于这个断开的状态,呃,超过三十三点五他也会报警, 因为这个温度间隔比较小,所以它处于这个临界状态,所以有时候会加热,有时候会报警,我们可以一次性把它调低一点这个水温 水温,它是处于这个临界状态啊,现在三十三点五是明显明显高于三十二点八这个上升温度,所以它不加热,同时 一直报警,这边是不加热的,反过来我们把这个温度调高,让他处于这个加热状态,调低调高,让他超过三十三点五,三十三点八,这个时候, 这时候可以看到啊,温度是低于下线,这个时候他需要加热,所以点亮加热灯这边也会也会得电,我们可以听到刚才咔了一声,这个继电器响同时启动报警, 大概功能就是这样,他就是维持这个水杯里的水在上下限这个温度之间啊,低于下限或者高于上限,这这边会报警啊,停止加热,现在是低于下限,他所以他需要加热,大概功能也是就是这样,谢谢大家观看。