在这篇文章中,我们将使用Arduino和16x2液晶显示器构建一个简单的数字欧姆表电路。我们也将探索其他可能的电路想法使用相同的概念。
电路的目的
这篇文章的格言不仅仅是制作一个欧姆表来测量电阻;你的万用表可以更好地做到这一点。
这个项目的主要目的是使用电阻值由arduino读一些有用的项目,例如,火灾报警,热敏电阻的电阻值的变化可以很容易地检测或自动灌溉系统,如果土壤的电阻高的单片机可以触发水泵。项目的可能性取决于你的想象。
让我们先看看如何制作欧姆表,然后再讲其它电路的概念。
它是如何工作的

电路由Arduino组成;您可以使用您最喜欢的Arduino板,一个16x2液晶显示器显示未知的电阻值,一个电位器调整液晶显示器的对比度水平。使用两个电阻器,一个是已知电阻器值,另一个是未知电阻器值。
电阻是模拟功能,但LCD上显示的数值是数字功能。所以,我们需要做模拟到数字的转换,幸运的是Arduino有内置10位模拟到数字的转换器。
10位ADC可以区分1024个离散的电压等级,5伏被应用到2个电阻上,电压样本在两个电阻之间被采集。
通过一些数学计算,可以解释节点处的电压降和已知的电阻值,从而得到未知的电阻值。
程序中编写了数学公式,无需人工计算,可直接从LCD显示中读取数值。
作者的原型:


欧姆计程序:
//------------- 项目由R.Girish --------//
# include < LiquidCrystal.h >
LiquidCrystal液晶(12、11日5、4、3、2);
int analogPin = 0;
int x = 0;
浮动电压输出= 0;
浮动R = 10000;//已知电阻值(欧姆)
浮动电阻器= 0;
浮动缓冲= 0;
无效的设置()
{
lcd.begin(16日2);
lcd.setCursor (0,0);
液晶显示器。打印(“欧姆计——”);
}
无效循环()
{
x = analogRead (analogPin);
缓冲= x * 5;
输出电压=(缓冲区)/ 1024.0;
缓冲=(5 /输出电压)1;
电阻器= R *缓冲;
lcd.setCursor (0,1);
液晶显示器。打印(R = ");
lcd.print(电阻);
液晶显示器。打印(“欧姆”);
延迟(3000);
}
//------------- 项目由R.Girish --------//
注意:浮动R = 10000;//已知电阻值(欧姆)
你可以改变电路中已知的电阻值,但如果你这样做,请在程序中也改变值。
和传统的万用表一样,Arduino数字欧姆表电路也有一些量程来测量电阻。如果你试着在万用表中测量一个百万欧姆范围内的低值电阻器,你肯定会得到误差值。
同样,这个欧姆计也是如此。
如果你想测量1K到50K欧姆的电阻,10K欧姆的已知电阻就足够了,但如果你测量Mega欧姆范围或少数欧姆范围,你会得到一些垃圾读数。因此,需要将已知电阻的值改变到一个合适的范围。
在本文的下一节中,我们将研究欧姆表的LCD显示电路;我们将看到如何读取串行监视器中的传感器值(未知电阻)。
我们也会在程序中声明阈值,一旦超过预定的阈值,Arduino就会触发继电器。
线路图:

程序代码:
//------------- 项目由R.Girish --------//
浮动th = 7800;//设置电阻阈值,单位为欧姆
int analogPin = 0;
int x = 0;
浮动电压输出= 0;
浮动R = 10000;//已知值电阻(欧姆)
浮动电阻器= 0;
浮动缓冲= 0;
int op = 7;
无效的设置()
{
Serial.begin (9600);
pinMode (op、输出);
digitalWrite (op,低);
}
无效循环()
{
x = analogRead (analogPin);
缓冲= x * 5;
输出电压=(缓冲区)/ 1024.0;
缓冲=(5 /输出电压)1;
电阻器= R *缓冲;
系列。打印(R = ");
并同时(电阻);
系列。println(“欧姆”);
如果(>电阻)//如果电阻低于阈值,输出是开的,如果你想要相反的结果使用'<' //
{
digitalWrite (op、高);
系列。println(“输出”);
延迟(3000);
}
其他的
{
digitalWrite (op,低);
系列。println(“输出”);
延迟(3000);
}
}
//------------- 项目由R.Girish --------//
注意:
•浮动th = 7800;//设置电阻阈值,单位为欧姆
用你的值替换7800欧姆。
•浮动R = 10000;//已知值电阻(欧姆)
用您已知的电阻值替换10000欧姆。
•如果(th >电阻)
程序中的这一行说明,如果传感器电阻低于阈值,输出打开,反之亦然。
如果你想在传感器读数高于阈值时打开继电器,反之亦然,只需将“If (th<电阻)”替换为“If (th>电阻)”。
通过直接测量传感器(LDR或热敏电阻或其他任何东西)的电阻并设定一个阈值,可以获得对继电器、led、电机和其他外设的高精度控制。
它比比较器更好,在比较器中,我们通过盲目地转动可变电阻来设置参考电压和阈值来完成类似的项目。
先生,我从易趣买了一个12伏的射频LED驱动遥控器和接收电路。我已经修改了接收电路和移除LED和连接一个继电器。它的工作好。但是范围非常小。但我注意到,每当我用一根铁棒或任何长电缆触摸遥控器时,它就会在远距离工作。我不知道怎样才能打长途
Sharoj,只要用一根1英尺长的电线增加发射机天线的长度,就能解决问题了…
我不知道哪里是天幕,哪里需要连接电线
你用的是哪种发射机?请展示示例图片(链接)
先生请点击链接…我上传了3张照片
一张照片是远程电路,另一张是远程视图,另一张是接收器。请帮我
发射机
https://drive.google.com/file/d/0B8k3jWgWe95XbFIycGY3OC04eEU/view?usp=sharing
接收机
https://drive.google.com/file/d/0B8k3jWgWe95XMWdRSEhMLXVlak0/view?usp=sharing
远程
https://drive.google.com/file/d/0B8k3jWgWe95XVi1ramFaV25KX1U/view?usp=sharing
请显示另一侧的发射机PCB.....
遥控电路背面
https://drive.google.com/file/d/0B8k3jWgWe95XRDQ5V2ZtRVJLQ1k/view?usp=sharing
这一侧只显示了keppads,天线是不可见的…组件一侧也没有清楚地显示天线连接。
顺便问一下,那个LED是做什么的,它只是用来指示的吗?
你将不得不跟踪天线自己,,,,它将最有可能终止从晶体管引线....
手动连接电线随机到不同的轨道,看看哪个改变范围,....轨道有助于产生最大的范围可以附加一个外部电线天线。
是的。这也是我自己教的。这个LED只是表示遥控器正在工作。好吧,我自己试试。
好的好的谢谢!