无线电电子与电气工程百科全书 阿杜伊诺。 连接简单的传感器。 无线电电子电气工程百科全书 前面部分讨论过的微控制器的内置 ADC,使您可以轻松地将各种模拟传感器连接到 Arduino 板,从而将测量到的物理参数转换为电压。 简单模拟传感器的一个示例是连接到电路板的可变电阻,如图 1 所示。 3. 可以是任何类型,例如 SP33-32-2(图 10)。 图中的电阻值是近似值,可以更小也可以更大。 然而,应该记住,可变电阻器的电阻越低,从微控制器电源消耗的电流就越大。 当信号源电阻(在本例中为可变电阻)超过 XNUMX kOhm 时,微控制器的 ADC 运行会出现较大误差。 请注意,作为信号源的可变电阻器的阻值取决于其滑块的位置。 在极端位置为零,在中间位置最大(等于标称电阻的四分之一)。
当您想要平滑地而不是逐步(离散地)更改参数时,使用可变电阻器会很方便。 例如,考虑表中所示的工作。 1 个程序,根据可变电阻滑块的位置改变 LED 的亮度。 程序中需要 U = U/4 行,以便将 ADC 返回的 XNUMX 位二进制数转换为 XNUMX 位数字,并被 AnalogWrite() 函数接受为第二个操作数。 在本例中,这是通过将原始数字除以四来完成的,这相当于丢弃两个最低有效的二进制数字。 表1 适当设计的可变电阻器可以用作旋转角度或线性位移传感器。 同样,您可以连接许多无线电元件:光敏电阻、热敏电阻、光电二极管、光电晶体管。 简而言之,电阻取决于某些环境因素的设备。 在图中。 图 3 显示了将光敏电阻连接到 Arduino 的示意图。 当光照变化时,其电阻会变化,Arduino 板模拟输入端的电压也会相应变化。 图中所示的FSK-1光敏电阻可以替换为任何其他光敏电阻,例如SF2-1。
表中图 2 显示了一个程序,该程序将连接有光敏电阻的 Arduino 板转变为简单的照度计。 工作时,它周期性地测量与光敏电阻串联的电阻两端的压降,并将结果以任意单位通过串口传输到计算机。 它们将显示在Arduino调试终端屏幕上,如图所示。 4. 可以看到,在某一时刻测得的电压急剧下降。 当明亮的光电二极管被不透明的屏幕遮挡时,就会发生这种情况。 表2
要获得以勒克斯(标准 SI 单位)为单位的照明值,您需要将结果乘以校正因子,但您必须通过实验来选择它,并为每个光敏电阻单独选择。 为此,您需要一个标准的照度计。 光电晶体管 [1] 或光电二极管(图 5)以类似的方式连接到 Arduino。 使用多个光敏设备,可以为机器人构建一个简单的视觉系统[2]。 可以在新技术水平上实施广泛的无线电业余爱好者已知的许多经典设计 - 飞蛾的控制论模型 [3,p.134]。 151-4] 或向光移动的坦克模型 [331,第 332-XNUMX 页] XNUMX、XNUMX]。
与光敏电阻类似,热敏电阻连接到 Arduino(图 6),它会根据温度改变其电阻。 您可以使用几乎任何其他热敏电阻,例如 MMT-4 或进口热敏电阻,而不是图中所示的 MMT-1 热敏电阻,其主要优点是其密封外壳。
经过适当的校准后 [5,第 231 页] 255-6]类似的设备可用于测量各种家庭气象站、恒温器和类似结构的温度[XNUMX]。 众所周知,几乎所有的LED不仅可以作为光源,还可以作为光接收器——光电二极管。 事实上,LED 晶体位于透明外壳中,因此其 pn 结可以接收来自外部光源的光。 此外,LED 外壳通常形状像透镜,将外部辐射聚焦在该结点上。 例如,在其影响下,pn 结的反向电阻会发生变化。 按照图7所示的电路将LED连接到Arduino板上。 如图 7 所示,您可以将同一个 LED 用于其预期用途并用作光电传感器 [3]。 表中给出了说明该模式的程序。 XNUMX. 其原理是首先在LED的pn结上施加反向电压,对其电容进行充电。 然后,通过将其连接的 Arduino 引脚配置为输入来隔离 LED 阴极。 此后,程序根据外部照明测量 LED pn 结电容通过其自身反向电流放电至逻辑零水平的持续时间。
表3 在上面的程序中,变量 t 被描述为 unsigned int - 一个无符号整数。 这种类型的变量与常规 int 不同,它的取值范围是 -32768 到 +32767,它不使用其最高有效的二进制数字来存储符号,并且可以取 0 到 65535 之间的值。 程序在 while(digitalRead (K)!=0)t++ 循环中计算放电时间。 执行这个循环,每次将t的值增加XNUMX,直到括号内的条件为真,即直到LED阴极的电压下降到逻辑低电平。 有时,机器人不仅需要接收有关其移动表面的照明信息,而且还能够确定其颜色。 用于下表面的颜色传感器是通过用不同发光颜色的 LED 交替照射它并使用光电二极管来比较不同照明下从其反射的信号水平来实现的 [8]。 颜色传感器元件与Arduino板的连接图如图8所示。 4、为其提供服务的程序如表所示。 XNUMX.
表4 多次重复测量光电二极管在不同表面照度下接收到的信号的过程,并将获得的结果累积起来以消除随机误差。 然后程序选择累积值中最大的一个。 这可以让您粗略地判断表面的颜色。 为了更准确地确定颜色,有必要对结果进行复杂的处理,不仅要考虑其中最大的值,还要考虑它与较小值的关系。 还需要考虑不同颜色LED的真实亮度,以及所使用的光电二极管的光谱特性。 由四个 LED 和一个光电二极管组成的颜色传感器设计示例如图 9 所示。 XNUMX. LED 和光电二极管的光轴必须会聚在所研究表面的一点上,并且设备本身尽可能靠近该点,以尽量减少外部照明的影响。
组装好的传感器需要在不同颜色的表面上进行仔细的单独校准。 这归结为系数的选择,在比较之前应将不同照明条件下获得的测量结果乘以该系数。 配备这种传感器的机器人可以被教导执行有趣的运动算法。 例如,他将能够在一种颜色的工作区域中移动,而不会违反用不同颜色绘制的“禁区”的边界。 文章中讨论的程序可以在 ftp://ftp.radio.ru/pub/2016/10/asensors.zip 找到。 文学
作者:D. Lekomtsev 查看其他文章 部分 业余无线电设计师. 读和写 有帮助 对这篇文章的评论. 科技、新电子最新动态: 花园疏花机
02.05.2024 先进的红外显微镜
02.05.2024 昆虫空气捕捉器
01.05.2024
其他有趣的新闻: ▪ 长出新的胳膊和腿 ▪ 家庭清洁促进放松
免费技术图书馆的有趣材料: ▪ 文章 平滑范围生成器的细化。 无线电电子电气工程百科全书 本页所有语言 www.diagram.com.ua |