原文:https://circuitdigest.com/microcontroller-projects/arduino-capacitance-meter-circuit
使用Arduino的电容表
ARDUINO的
经过**迪利普·拉贾(Dilip Raja)** 2016年4月2日8
Arduino电容表
当我们遇到以前设计的电路板时,或者当我们从旧电视或计算机中取出电路板进行维修时。有时我们需要知道板上特定电容器的电容来消除故障。然后,我们面临着从板上获得电容器准确值的问题,尤其是如果是表面贴装设备。我们可以购买测量电容器的设备,但所有这些设备都很贵,不适合所有人。考虑到这一点,我们将设计一个简单的设计 。
该仪器易于制造,具有成本效益。,5555 IC计时器制造。
所需组件:
- 555定时器IC
- IC 74HC14施密特触发门或非门。
- 1KΩ电阻器(2),10KΩ电阻器
- 100nF电容器,1000μF电容器
- 16 * 2液晶屏
- 面包板和一些连接器。
电路说明:
下图显示了的电路图。电路很简单,LCD与Arduino连接显示测得的电容器电容器。连接方波发生器电路(稳定模式为555)Arduino,我们已经连接了需要测量其电容的电容器。特殊触发器门施密(Schmitt Trigger Gate)(IC 74LS14)确保矩形波只能送到Arduino。为了过滤噪音,我们在电源两端增加了两个电容器。
该电路可以准确测量范围内的电容。
基于555定时器IC方波发生器:
首先,我们将讨论555 Timer IC方波发生器,或者我应该说555 Astable Multivibrator。换句话说,电容器的电容不能直接在数字电路中测量,UNO处理数字信号,不能直接测量电容。因此,我们使用555方波发生器电路将电容器连接到数字世界。
简而言之,计时器提供方波输出,其频率直接影响与之相连的电容器。因此,我们首先获得方波信号,它代表未知电容器的电容,然后将其发送到UNO获得适当的值。
常规配置,如下图所示:
输出信号的频率取决于RA,RB电阻和电容器C。
频率(F)= 1 /(时间段)= 1.44 /((RA RB * 2)* C)。
在此,RA和RB是电阻值,C是电容值。在上述公式中放置电阻和电容值,可以得到输出方波的频率。
我们将连接1KΩ作为RA和10KΩ作为RB。所以公式变成了
频率(F)= 1 /(时间段)= 1.44 /(21000 * C)。
重新安排我们所拥有的条款,
在我们的程序代码(请参考以下内容)中,为了准确获得电容值,我们将获得的结果(以法拉为单位)乘以 1000000000”来计算以nF单位的结果。另外,因为RA和RB精确电阻分别为0.98K和9.88K,所以我们用了 20800”而不是21000。
因此,如果我们知道方波的频率,我们可以得到电容值。
特殊触发器门施密(Schmitt Trigger Gate):
由计时器电路产生的信号不完全安全,不能直接提供Arduino Uno。考虑到UNO我们使用特殊触发器门施密的敏感性(Schmitt Trigger Gate)。特殊触发器门施密(Schmitt Trigger Gate)是数字逻辑门。
门根据输入电压电平提供输出。具有施密特触发器THERSHOLD当施加到栅极时,电压电平INPUT信号的电压电平高于逻辑门THRESHOLD时,OUTPUT变为高电平。如果INPUT电压信号电平低于THRESHOLD,则门的OUTPUT将为LOW。因此,我们通常不会单独获得施密特触发器,所以施密特触发器后总是有一非门。这里解释了施密特触发器的工作原理:施密特触发器门(Schmitt Trigger Gate)
我们将使用芯片中有6个施密特触发器门(Schmitt Trigger Gate)。这六扇门在内部连接,如下图所示。 它显示在下图中,我们必须在端子反对的正负时间段UNO编程。 连接定时器电路产生的信号ST门,输出端会有倒相时间的矩形波,可以安全给出UNO。
Arduino测量电容:
Uno有一个特殊的函数***pulseIn****,*它使我们能够确定特定矩形波的正态持续时间或负态持续时间:
Htime = pulseIn(8,HIGH); Ltime = pulseIn(8,LOW);
所述pulseIn乌诺的高低电平功能措施存在于乌诺PIN8的时间。pulseIn功能以微秒为单位测量这个高时间(Htime)和低时间(Ltime)。当我们将Htime和Ltime当我们加在一起时,我们会得到它Cycle Duration(周期持续时间),我们逆转,我们将得到它Frequency。
一旦有了频率,就可以用前面讨论的公式来获取电容。
摘要及测试:
因此,总之,我们将未知的电容器连接到555定时器电路,这将产生一个与电容器电容器直接相关的方波输出。信号通过ST门提供给UNO。UNO测量频率UNO用前面讨论的公式编程电容器。
让我们看看我得到的一些结果,
当我连接1uF当电解电容器时,结果是。用0.1uF聚酯电容器的结果是
然后我连接0.1uF的陶瓷电容器,结果为。此外,使用4.7uF电解电容器的结果是
这样,任何电容器的电容都可以简单地测量。
代码
#include <LiquidCrystal.h> LiquidCrystal lcd(2, 3, 4, 5, 6, 7); int32_t Htime; int32_t Ltime; float Ttime; float frequency; float capacitance; void setup() { pinMode(8,INPUT); //pin 8 as signal input lcd.begin(16, 2); lcd.setCursor(0,0); lcd.print("capacitance ="); } vid loop()
{
for (int i=0;i<5;i++) //measure time duration five times
{
Ltime=(pulseIn(8,HIGH)+Ltime)/2; //get average for each cycle
Htime=(pulseIn(8,LOW)+Htime)/2;
}
Ttime = Htime+Ltime;
frequency=1000000/Ttime;
capacitance = (1.44*1000000000)/(20800*frequency); //calculating the Capacitance in nF
lcd.setCursor(0,1);
lcd.print(capacitance);
lcd.print(" nF ");
delay(500);
}