Mixly开源项目设计8:自制欧姆表
2016-09-10贺凯强
贺凯强
欧姆表或万用表(欧姆档)是我们测量电阻的常用工具。平时,我们只是把它作为一种消费的工具而已。如果进一步深究它的原理,并且将其中的电学知识与Arduino编程结合,就可以自己制作出一只能够精确测量的欧姆表。这是一个将科学、技术、工程与数学融合的过程。拿着自制的欧姆表去测电阻,也将是一次非常有趣的体验。
● 制作:欧姆表的电路连接
自制的多量程欧姆表是根据串联电路的欧姆定律制成。Arduino将电路中电压分配规律,转化为数字信号。通过数字的变化,反推出未知电阻的阻值。我们参照自制多量程欧姆表的电路图(如图1),来解析自制多量程欧姆表的原理。
5V为待测电阻Rx和已知电阻R1之间的总电压,V为电压表测得的阻值。因为串联电路的电流不变,所以根据公式可求得待测电阻的阻值为: 。
可见,要求得待测电阻的阻值,我们需要已知两个变量。一个是定值电阻,一个是A0端口电压。理论测量范围为0到无穷大。已知Arduino UNO可提供5V的电压,选择1KΩ定值电阻作为电路的已知电阻。Arduino UNO可以将电路中的0~5V电压转换成数字信号0~1023,且两者呈线性关系。例如,输入模拟信号管脚的电压为0V,转换之后的数字为0;模拟信号管脚电压为5V,转换之后的电压为1023。利用Mixly图形化编程软件,可以实现两者转换以及结果显示。图2为实际电路示意图。红色导线一端接入Arduino UNO板5V管脚,另一端作为测量电阻的引脚;1KΩ电阻一端接地,另外一端连接黑色导线作为测量电阻的引脚,同时连接蓝色导线接入A0管脚。
之前我们已经了解到A0端口的测量值和A0和GND之间电压V之间的换算关系为 ,将其代入到计算公式当中,可得A0数值和Rx的计算关系为: 。
● 改装:绘制欧姆表的表盘
上述的欧姆表只是一个最初的模型,测量的电阻值只能在电脑上显示。这样的欧姆表只是对其原理的一个展现,还不能成为一个独立的作品。为了使自制的欧姆表更贴近真实的欧姆表,我们可以对其做进一步改进,在图2连线的基础上,加入舵机。利用舵机角度的变化表示阻值的大小,制成指针式欧姆表。要解决的首要问题是,将测量到的电阻值转换成为舵机的角度。选择欧姆表的量程为0~10KΩ。已有舵机的旋转范围是0~180度,为了简化计算过程,我们设置舵机转动10度代表1KΩ,转动5度代表最小刻度0.5KΩ。现设置欧姆表量程为0~10KΩ,因此舵机转动的最大角度为100度。
使用直尺、半圆与圆规,在纸盒的表面画出欧姆表的刻度盘,用舵机在刻度盘上比对位置,使得舵机的转动轴和刻度盘的中心重合,以此来确定舵机的安装位置,并用笔标记。再按照舵机的尺寸,挖空纸盒表面,将舵机安装上去。舵机的三根引脚分别接Arduino UNO电源管脚、接地端与A1管脚。这样,一个独立欧姆表的连线和组装工作已经完成。图3为欧姆表刻度盘,图4为指针式欧姆表实际电路示意图。
● 玩转:学习小数变量的使用
程序的编写大致分为三个部分:第一个部分是对变量的定义,第二个部分是各个小程序的编写,第三个部分是用程序语句连接各个小程序,最终实现欧姆表的功能。
第一部分的程序是定义变量。变量分为整数、小数、布尔、字符和字符串。如果要给数字赋予一个变量,需要定义变量为整数变量或者小数变量。我们在这一制作过程中,需要进行比较精确的计算,计算的过程与结果必须以小数的形式呈现。因此,我们选择各个变量为小数变量。定义analog变量为小数变量,初始值为0。模拟端口A0的数值会赋予这个变量。同理,经过欧姆定律公式计算,得到的待测电阻数值用r来表示;r扩大10倍得到的数值赋予a,a与舵机旋转的角度有关系。图5为第一部分程序。
第二部分是各个小程序的编写。首先根据欧姆定律,编写待测电阻的计算程序。将模拟端口的A0数值赋予analog变量,再代入计算公式中。这里的计算公式与上述欧姆定律的计算公式一致。不同的是,总电压V原先是5V,现在是与5V对应的1023,而电压V1用变量analog表示。
名为“电阻”的程序被执行后,会得到待测电阻的精确数值。如果用舵机表示电阻值,电阻值的数值过小,需要进行放大。如待测电阻经过测量为5KΩ,如果舵机相应地转动5度,指针转动不明显。但将电阻值放大十倍为50,舵机转动50度,舵机转动明显,这样欧姆表的指示将更加精确。
所以,需要执行“舵机显示电阻”程序,程序内容为待测电阻数值扩大十倍。选择A1端口为舵机的信号输入端口,之后a与舵机转动的角度进行映射,建立对应关系。0~10KΩ放大十倍为0~100,放大的数值和舵机转动角度一一对应。图6为第二部分程序。
第三部分程序是要连接第二部分的程序(如图7)。
● 分享
自制的欧姆表与真正的欧姆表或者万用表相比,其精确性相差很多。但从制作者的角度出发,在制作过程中享受不断解决问题的过程,享受缩小与真实产品差距的陶醉和愉悦,这其中的收获远远大于仅仅用欧姆表去测一个电阻。这是一名创客对自我的挑战与对创新的执着。如果这名创客是一位小学生或者中学生,其教育意义与价值不言而喻。因此,在中小学创客空间建设过程中,不妨在工具区旁,专门为自制工具区留出位置。教师和学生可以将自制的欧姆表、电压表等工具摆到自制工具区,这是对学生与教师个人创作的鼓励与肯定,是对创客文化与精神的践行,也是建设个性化创客空间的点睛之笔。本案例是自制电压表项目的延伸,其原理都是基于对模拟输入端口的深入理解,但该欧姆表在测量小电阻时其结果还并不令人满意,我们先将这个问题分享出来,看一看大家能否有自己的解决方案,是否可以做一个量程可以调整的欧姆表呢?当然对于这一问题我将会在接下来的时间里,继续追踪研究。
本案例的分享视频将会在以下公众号中陆续登载。