在这篇文章中,我们将使用Arduino和16x2液晶显示器构建一个简单的数字欧姆表电路。我们也将探索其他可能的电路想法使用相同的概念。
电路的目的
这篇文章的座右铭不仅仅是制作欧姆表来测量电阻;你的万用表也可以做得更好。
该项目的主要目的是使用Arduino读取的电阻值来进行一些有用的项目,例如火警,可以容易地检测到热敏电阻的电阻值的变化或自动灌溉系统,如果土壤的电阻GEED MicroController可以触发水泵。项目的可能性取决于您的想象力。
让我们看看如何先制作欧姆米,然后我们移动到其他电路想法。
它是如何工作的
电路由Arduino组成;你可以使用你最喜欢的Arduino板,一个16x2的液晶显示器来显示未知的电阻值,一个电位器来调整液晶显示器的对比度水平。使用两个电阻器,一个是已知电阻器值,另一个是未知电阻器值。
电阻是模拟函数,但LCD上显示的值是数字函数。所以,我们需要做模拟数字转换,幸运的是Arduino已经内置了10位模拟到数字转换器。
10位ADC可以区分1024离散电压电平,将5伏施加到2个电阻器,电压样本均在电阻器之间采用。
通过一些数学计算,可以将节点处的电压降和已知电阻值解释为未知电阻值。
数学方程式写在程序中,因此不需要进行手动计算,我们可以从LCD显示屏读取直接值。
作者的原型:
欧姆表程序:
//------------- 项目由R.Girish --------//
# include < LiquidCrystal.h >
液晶LCD(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);
液晶显示器。打印(“欧姆计——”);
}
void循环()
{
x = analogRead (analogPin);
缓冲= x * 5;
Vout =(缓冲区)/1024.0;
缓冲=(5 / Vout)-1;
电阻器= R *缓冲;
lcd.setCursor (0,1);
液晶显示器。打印(R = ");
lcd.print(电阻);
lcd.print(“欧姆”);
延迟(3000);
}
//------------- 项目由R.Girish --------//
注意:浮动r = 10000;//已知电阻值在欧姆中
您可以在电路中更改已知的电阻值,但如果您这样做,请在程序中更改值。
与传统的万用表一样,这个Arduino数字欧姆计电路太大了一些范围来测量阻力。如果您尝试在万用表中测量Mega欧姆范围内的低值电阻,那么您肯定会获得错误值。
同样,这个欧姆表也是如此。
如果你想测量从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,低);
}
void循环()
{
x = analogRead (analogPin);
缓冲= x * 5;
Vout =(缓冲区)/1024.0;
缓冲=(5 / Vout)-1;
电阻器= R *缓冲;
系列。打印(R = ");
serial.print(电阻);
系列。println(“欧姆”);
如果(th>电阻)//如果电阻低于阈值,输出是开的,如果你想要相反的结果使用'<' //
{
DigitalWrite(OP,高);
系列。println(“输出”);
延迟(3000);
}
其他的
{
digitalWrite (op,低);
系列。println(“输出”);
延迟(3000);
}
}
//------------- 项目由R.Girish --------//
注意:
•浮动th = 7800;//在欧姆中设置电阻阈值
用你的价值替换7800欧姆。
•浮动r = 10000;//在欧姆中的已知值电阻
用您已知的电阻值替换10000欧姆。
•if(th>电阻)
程序中的这一行表明,如果传感器电阻低于阈值,输出打开,反之亦然。
如果您想在传感器读数上方阈值时打开继电器,反之亦然,只需用“IF(TH>电阻)更换”IF(TH <电阻)“。
通过直接测量传感器的电阻(LDR或热敏电阻或其他任何东西)并设置一个阈值,我们可以获得对继电器、led、电机等外围设备的高精度控制。
它比比较器更好,我们通过盲目地转动可变电阻来设置参考电压并设置阈值以完成类似的项目。
Sharoj Al Hasan.说
先生,我已经购买了来自eBay的12伏LED驱动器远程和接收器电路。我已经修改了接收器电路并取下了LED并连接继电器。它的工作正常。但范围很差。但我注意到,只要我用铁杆或任何长电缆触动遥控器,那么它的工作就长途。我不知道我怎么能长途跋涉
Swagatam.说
Sharoj,只需使用1英尺的长线增加发射器天线的长度,这将解决问题......
Sharoj Al Hasan.说
我不知道哪里是天线,哪里需要连接电线
Swagatam.说
你用什么样的发射器?请显示示例图片(链接)
Sharoj Al Hasan.说
先生,请点击链接,我上传了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
Swagatam.说
请查看变送器PCB的另一边......
Sharoj Al Hasan.说
远程电路的背面
https://drive.google.com/file/d/0b8k3jwgwe95xrdq5v2ztrvjlq1k/view?usp=sharing.
Swagatam.说
这一面只显示keppads,天线是不可见的…组件的一面也没有显示天线连接清楚。
顺便说一下,它的LED是什么,它仅供指示吗?
您必须自己追踪天线,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
手动连接电线随机不同的轨道,看看哪一个改变了范围,....轨道有助于产生最大的范围可以附加一个外部电线天线。
Sharoj Al Hasan.说
是的。这也是我自己教的。这个LED只表示远程正在工作。好吧,我自己试试。
Swagatam.说
好的好的谢谢!