0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Arduino制作万能表

454398 来源:wv 2019-10-18 11:24 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:材料

这是要使用的材料。

集成:

IC ATMEGA 328P(Arduino UNO/Duemilanove )

LM741

LM393

稳压L7805CV

LCD 16X2

晶体16MHz

电容器

0.33uF

100nF

2 x 22pF 《1》聚酯1uF 《电阻:10K电位计

7 x 10K

2 x 220欧姆

1 M 《150》 330欧姆

二极管

1N4004

连接器

端子块2针

4 x MOLEX 100支2针

4针MOLEX花费100

4 x Borne

2 x开关

2 x按键盒

步骤2:代码和性能

作为测量骨骼电容的三个功能,电感和电阻,我们必须选择我们想做的,要选择功能并使用2位可以计数0-0,0-1,1-0,1-1。

所以我们使用两个开关进行选择,使它们用作下拉开关,将它们用作下拉开关,以测量电感为0-0,电容为0-1,电阻为1-0,这就是方法我们选择衡量。

要测量电感,请使用LM393比较器来测量LM741的电容,并使用10k电阻轻松地测量电阻并制作一个分压器。

假设我们要计算R1。我们知道R2的值为10k,我们知道Vin的值为5V(通常在Arduino环境中可以找到),并且在Arduino的模拟Vout引脚上的读数是750。

1 。-我们知道ADC Arduino的分辨率为10位,这意味着对于0V到5V之间的输入值,可以进行1024分频(将2提升到10)。因此,如果我们在模拟引脚上施加5V,则其值为1023(1024不会记住从0开始计数,而不是从1开始计数)。如果我们在引脚上施加0V,其值将为0,例如,如果我们将其设为2.5V,其值将为511。

因此,如果以数字值提供读取模拟引脚的值是750,我们可以计算出Vout,即分压器的输出电压。

》》 5V/1024格= 0,00488V/格

》》 0.00488伏/格•750格= 3.66V

2.-我们可以已经清除了R1,那就是问题:

》》 Vout =(R2/R1 + R2)•Vin

》》 3.66 V =(10k/R1 + 10k)•5V

》》 R1 + 10k = 10k•5V/3.66V

》》 R1 =(10k•5V/3.66V)-10k =3.66KΩ

通常,我们可以将R1的值计算为:

》》 R1 =(R2•Vin/Vout)-R2

相同的代码在西班牙语文档中,因此如果您如有任何疑问,请这样说:

#include LiquidCrystal lcd(13, 8, 7, 5, 4, 2);

#define R_1 A1

#define R_2 A2

#define IND_1 6

#define IND_2 12

#define fuente_pin 11

#define switch_pin 10

#define descarga_pin 9

#define PIN_1 A3

#define PIN_2 A4

//Variables leer pines

int pin_1;

int pin_2;

//Variables para inductometro

double pulso;

double frecuencia;

double capacitancia;

double inductancia;

//Capacimetro

float R = 1.0e6;

float C = 0;

float RC = 0;

long t_inicio = 0;

volatile long t_alto = 0;

long T = 0;

float VCC = 4.50;

float Vref = VCC / 2;

float V0 = 0;

float error_correccion = 40.;

int retardo_delay = 20;

//Variables resistometro

int vR_1 = 0;

int vR_2 = 0;

float Vin = 5;

float Vout = 0;

float Res_1 = 10000;

float Res_2 = 9000000;

float r_1 = 0;

float r_2 = 0;

float Resistor_1[8];

float Resistor_2[5];

float ResArreglo_1;

float ResArreglo_2;

void setup() {

lcd.begin(16, 2);

//Configuracion de pines

pinMode(PIN_1, INPUT);

pinMode(PIN_2, INPUT);

//Configuracion Inductometro

pinMode(IND_1, INPUT);

pinMode(IND_2, OUTPUT);

capacitancia = 0.000001021;

//delay(200);

//Configuracion de Resistometro

pinMode(R_1, INPUT);

pinMode(R_2, INPUT);

//Configuracion Capacimetro

attachInterrupt(1, stop, RISING);

Vref = VCC / 2;

pinMode(fuente_pin, OUTPUT);

digitalWrite(fuente_pin, LOW);

pinMode(switch_pin, INPUT);

pinMode(descarga_pin, INPUT);

}

void loop() {

leerpines();

if (pin_1 == LOW && pin_2 == LOW) {

digitalWrite(IND_2, HIGH);

delay(5);

digitalWrite(IND_2, LOW);

delayMicroseconds(100);

pulso = pulseIn(IND_1, HIGH, 5000);

lcd.clear();

if (pulso 》 0.1) {

frecuencia = 1.E6 / (2 * pulso);

inductancia = 1. / (capacitancia * frecuencia * frecuencia * 4.*3.1459 * 3.14159);

inductancia *= 1E6;

lcd.setCursor(2, 0);

lcd.print(“INDUCTANCIA:”);

//delay(200);

if (inductancia 》= 1000) {

lcd.setCursor(0, 1);

int valor = (inductancia / 1000) - 0.5;

lcd.print(valor);

lcd.setCursor(6, 1);

lcd.print(“mH”);

} else {

lcd.setCursor(0, 1);

int valor_2 = inductancia + 10;

lcd.print(valor_2);

lcd.setCursor(6, 1);

lcd.print(“uH”);

}

} else if (pulso 《 0.1) {

lcd.setCursor(2, 0);

lcd.print(“INSERTAR IND”);

}

delay(300); } if (pin_1 == LOW && pin_2 == HIGH) {

lcd.clear();

for (int i = 0 ; i 《= 7; i++) {

Resistor_1[i] = analogRead(R_1);

ResArreglo_1 = ResArreglo_1 + Resistor_1[i];

}

vR_1 = (ResArreglo_1 / 8.0);

Vout = (Vin * vR_1) / 1023;

r_1 = Res_1 * (1 / ((Vin / Vout) - 1));

lcd.setCursor(2, 0);

lcd.print(“RESISTENCIA:”);

if (r_1 《= 999) {

lcd.setCursor(0, 1);

lcd.print(r_1);

lcd.setCursor(9, 1);

lcd.print(“Omhs”);

} else if (r_1 》= 1000) {

r_1 = r_1 / 1000;

lcd.setCursor(0, 1);

lcd.print(r_1);

lcd.setCursor(9, 1);

lcd.print(“KOmhs”);

}

delay(500);

ResArreglo_1 = 0;

} if (pin_1 == HIGH && pin_2 == LOW) {

lcd.clear();

if (debounce(switch_pin) == LOW)

{

pinMode(descarga_pin, OUTPUT);

digitalWrite(descarga_pin, LOW);

delay(100);

pinMode(descarga_pin, INPUT);

digitalWrite(fuente_pin, HIGH);

t_inicio = micros(); } if (t_alto 》 0 && t_inicio 》 0 && (t_alto - t_inicio) 》 0 )

{

T = (t_alto - t_inicio);

RC = -T / log((Vref - VCC) / (V0 - VCC));

//Vref = VCC/2

//V0 = 0V

C = RC / R; //Valor en uF

lcd.setCursor(0, 0);

lcd.print(“C:”);

lcd.setCursor(3, 0);

lcd.print(C * 1000, 1);

lcd.setCursor(13, 0);

lcd.print(“nF”);

lcd.setCursor(0, 1);

lcd.print(“C:”);

lcd.setCursor(3, 1);

lcd.print(C * 1000000 - error_correccion , 0);

lcd.setCursor(13, 1);

lcd.print(“pF”); t_inicio = 0;

t_alto = 0; digitalWrite(fuente_pin, LOW);

delay(2000);

}

}

}void leerpines() {

pin_1 = digitalRead(PIN_1);

pin_2 = digitalRead(PIN_2);

}void stop()

{

t_alto = micros();

}int debounce(int pin)

{

int estado;

int previo_estado;

previo_estado = digitalRead(pin);

for (int i = 0; i 《 retardo_delay; i++)

{

delay(1);

estado = digitalRead(pin);

if ( estado != previo_estado)

{

i = 0;

previo_estado = estado;

}

}

return estado;

}

步骤3:电路,原理图和PCB

在这里您可以看到原理图中所有内容的连接方式,我上传了用老鹰。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 万能表
    +关注

    关注

    1

    文章

    21

    浏览量

    14325
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195990
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机系统硬件的调试方法

    单片机的系统硬件调试,通常有静态调试和动态调试两种不同,前者是通过目测、万能表测试、加电检查、联机检查的方法,在加电于样机之前.对样机的型号规格,以及安装要求等进行核对,同时检查 电源 系统.防止
    发表于 12-03 06:10

    软件的力量:玩转电子万能试验机控制系统的高级技巧

    电子万能试验机的效能发挥,不仅依赖硬件设备的性能,更离不开控制系统软件的灵活运用。很多操作人员仅将软件视为“参数输入工具”,却忽略了其隐藏的强大功能。实际上,熟练掌握软件的高级技巧,能让测试流程更高
    的头像 发表于 10-24 09:31 106次阅读
    软件的力量:玩转电子<b class='flag-5'>万能</b>试验机控制系统的高级技巧

    HarmonyOSAI编程万能卡片生成(一)

    基于AI大模型理解开发者的卡片需求信息,通过对话式的交互智能生成HarmonyOS万能卡片工程。 使用约束 建议从以下维度描述卡片需求: 当前不支持在生成卡片预览图后继续描述需求进行增量修改。 万能
    发表于 09-08 17:09

    广州邮科三相逆变电源:从直流220V到交流380V,工业用电的“万能转换器”

    在工业领域,电力问题就像一场“无声的战役”——设备突然停机、电压不稳导致故障、临时用电无处可接……这些问题不仅影响效率,还可能造成损失。而广州邮科推出的三相逆变电源,正是为解决这些痛点而生。今天,我们就用“大白话”聊聊这款“电力转换神器”,看看它如何成为工业场景的“万能转换器”。
    的头像 发表于 09-03 16:40 752次阅读
    广州邮科三相逆变电源:从直流220V到交流380V,工业用电的“<b class='flag-5'>万能</b>转换器”

    什么是数字万用表

    用表相关的基本知识、种类以及数字万用表的选型方法。01初学者也轻松操作的数字万用表数字万用表模拟万用表数字
    的头像 发表于 08-18 10:00 1914次阅读
    什么是数字<b class='flag-5'>万用表</b>?

    吉时利KEITHLEY DMM7510数字万用表吉时利DMM7510七位半万用表

    DMM7510 集高精度、高分辨率数字万用表 (DMM)、图形触摸屏显示器和高速、高分辨率数字化器于一身,是第一款图形采样万用表。其具有 pA 灵敏度和 1M 个样点/秒的采样率,准确测量超低睡眠模式
    发表于 07-24 11:01

    新能源汽车的三电检修用绝缘万用表替代常规万用表达到减少操作步骤节省时间和成本吗?

    如何使用绝缘万用表加倍提升检测新能源车三电系统的工作效率? 当前新能源市场蓬勃发展,汽车行业数据显示,2025年前五个月,全球新能源车销量达789辆。这一庞大的市场规模催生了巨大的安全维保需求
    发表于 07-15 18:20

    便携式经济型万用表常见疑问汇总

    智能触屏万用表虽然配备了智能触屏,但同样注重便携性。它的外壳采用高强度、轻量化的材料制作,整体尺寸经过精心设计,在保证功能齐全的同时,尽可能减小体积。重量也控制在合理范围内,方便用户随时随地进行测量工作
    发表于 06-12 16:37

    智能触屏万用表的科技优势在哪

    在科技飞速发展的今天,电子测量仪器也在不断进化。智能触屏万用表作为新一代的测量工具,正以其独特的优势和创新的功能,为电子工程师、技术人员以及电子爱好者带来了前所未有的便捷与高效。今天我们看看智能触屏
    发表于 06-12 16:34

    寻求是德科技34465A万用表维修人员?

    寻求是德科技34465A万用表维修人员? 维修的大佬可以联系我
    发表于 04-10 15:57

    突破工业接口壁垒!ARK(方舟微)DMZ42C10S让PLC\\\"万能适配\\\"成为现实!

    突破工业接口壁垒!ARK(方舟微)DMZ42C10S让PLC\"万能适配\"成为现实!
    发表于 03-27 15:20

    万能七彩充开关电源电器的制作

    手机万能七彩充电器的制作过程JC820型手机万能充电器套件制成后,适合充容量为250~3000mA锂离子、镍氢电池;充电时,七彩灯闪烁,指示灯的颜色依次变化,发出绚丽多彩的七彩光芒,饱和后熄灭
    发表于 03-26 14:17

    数字万用表的使用方法详细图解

    )的合适量程, 红表笔插入 mA孔(<200mA时)或 10A孔(>200mA时),黑表笔插入 COM孔, 并将万用表串联在被测电路中即可。测量直流量时,数字万用表自动显示极性。 e电阻的测量:将
    发表于 03-05 15:15

    效率大升!AI赋鸿蒙万能卡片开发

    万能卡片,作为鸿蒙生态应用和元服务的重要展示形式,凭借将关键信息和核心操作前置,实现服务直达、减少跳转层级的体验效果,备受用户和开发者青睐。但传统卡片的设计和编码流程相对繁琐,影响了万能卡片的搭建
    的头像 发表于 01-13 13:44 1390次阅读
    效率大升!AI赋<b class='flag-5'>能</b>鸿蒙<b class='flag-5'>万能</b>卡片开发