资料介绍
描述
嘿,
您是否厌倦了在这样的情况下完成每个项目后结束?
您是一个懒得检查每个电阻器上的颜色代码以按电阻对它们进行分类的杂乱无章的人吗?你是不是懒到连用万用表都嫌多?也许有适合您的解决方案,终极懒惰的欧姆表
构建这个用于检查未分类电阻值的简单欧姆表所需要的只是一堆电阻器(这次是已知值)、一个 Arduino 和一个显示器(我用的是 I2C OLED 显示器)。
然后,我们将依靠分压器方程来获得与已知值电阻器串联的未知电阻器的值。这种简单的技术只有一个缺点。两个电阻越不同,我们的测量就越不准确。为了克服这种现象,我们需要使用多个电阻器并编写代码,让 Arduino 为未知值计算选择最合适的电阻器。
遵循这一理念,我们可以按照下图中的示意图构建欧姆表。

如果您使用 I2C 显示器,您也可以按照原理图进行操作。Arduino Nano 将引脚 A4 用于 SDA,将 A5 用于 SCL。
现在让我们关注编码部分。我使用的代码可以在这里看到:
#include
#include
#include
[...]
int R1 = 100;
int R2 = 1000;
int R3 = 10000;
long R4 = 100000;
long R5 = 1000000;
long Rn;
int D2 = 2;
int D3 = 3;
int D4 = 4;
int D5 = 5;
int D6 = 6;
float raw = 0;
float Vout = 0;
float Ru = 0;
int Analogohm = A0;
void setup() {
[...]
}
void loop() {
pinMode(D2, OUTPUT);
pinMode(D3, INPUT);
pinMode(D4, INPUT);
pinMode(D5, INPUT);
pinMode(D6, INPUT);
digitalWrite(D2, HIGH);
raw = analogRead(Analogohm);
Serial.println(raw);
Serial.println("ref 1M");
Rn = R5;
if (raw < 350 || raw > 800){
digitalWrite(D2, LOW);
pinMode(D2, INPUT);
pinMode(D3, OUTPUT);
digitalWrite(D3, HIGH);
raw = analogRead(Analogohm);
Serial.println(raw);
Serial.println("ref 100k");
Rn = R4;
if (raw < 350 || raw > 800){
digitalWrite(D3, LOW);
pinMode(D3, INPUT);
pinMode(D4, OUTPUT);
digitalWrite(D4, HIGH);
raw = analogRead(Analogohm);
Serial.println(raw);
Serial.println("ref 10k");
Rn = R3;
if (raw < 350 || raw > 800){
digitalWrite(D4, LOW);
pinMode(D4, INPUT);
pinMode(D5, OUTPUT);
digitalWrite(D5, HIGH);
raw = analogRead(Analogohm);
Serial.println(raw);
Serial.println("ref 1000");
Rn = R2;
if (raw < 350 || raw > 800){
digitalWrite(D5, LOW);
pinMode(D5, INPUT);
pinMode(D6, OUTPUT);
digitalWrite(D6, HIGH);
raw = analogRead(Analogohm);
Serial.println(raw);
Serial.println("ref 100");
Rn = R1;
}
}
}
}
Vout = 5*(raw/1024);
Ru = (Rn*Vout)/(5-Vout);
if (Ru < 10 || Ru < 70) {
Ru = 10 *round(Ru/10);
} else if (Ru < 100 || Ru < 700){
Ru = 100 *round(Ru/100);
} else if (Ru < 1000 || Ru < 7000){
Ru = 1000 *round(Ru/1000);
} else if (Ru < 10000 || Ru < 70000){
Ru = 10000 *round(Ru/10000);
} else if (Ru < 100000 || Ru < 700000){
Ru = 100000 *round(Ru/100000);
} else if (Ru < 1000000 || Ru < 7000000){
Ru = 1000000 *round(Ru/1000000);
}
Resistance(Ru);
delay(1000);
}
[...]
对于 OLED 屏幕,我只使用了 Adafruit 库。您只需要通过 Arduino IDE 的库管理器下载它并复制您需要的代码。我使用了两个位图只是为了让阅读更美观,您可以轻松添加位图或替换我添加的位图。
对于欧姆表部分,您需要了解它是如何工作的,因为您可以根据使用多少电阻器作为参考值来更改它。
一旦代码进入 void 循环,Arduino 将检查引脚 A0 上的电压。由于从分压器方程:
?
V0 = Vi*R2/(R1+R2)
?
如果 R1 和 R2 相同,我们应该使 V0 接近 2.5V(因此我们的 10 位读数为 512)。
如果该值与这些结果相差甚远,则代码将移至下一个值,依此类推,直到我们得到最接近的电阻器。一旦满足“闭合电阻”条件,该值将打印在显示屏上。
注意#1:在每个 IF 语句中,我们需要重新定义每个数字引脚的 pinMode,因为如果将其保留为输出,它将表现为低阻抗引脚并破坏我们在引脚 A0 上的测量。
一旦选择了正确的电阻器,未知电阻器值(代码中的 Ru 变量)将使用分压器方程计算。
注意#2:对于这个设备,我只使用了 5 个电阻,但如果你愿意,你可以为板上的每个数字引脚设置更多的值。
系统下方的照片建立在面包板上。

现在对于实际应用,我们需要构建某种盒子,我们可以在其中插入未知电阻,结果将显示在屏幕上。
我制作的盒子可以很容易地用3D打印机打印出来,所有部件都可以用胶枪固定在一起。需要对已知的电阻器进行一些焊接,以使所有东西都适合小体积。

只剩下一件事:将未分类的电阻器插入那些小孔并清洁工作台!
玩得开心,下个教程见。
?
编辑:我修改了代码的舍入部分,因为它可能会在舍入 5k 电阻时导致错误。通过此更改,问题应该得到解决。无论如何,在参考之间添加一个 5k 电阻应该可以完全防止这个问题。
- 对您的 LED 进行高效调光,无需检测电阻器
- 电阻器的概念是什么?如何定义的? 17次下载
- 电阻器的种类及特点 0次下载
- 通用片式电阻器RC0402数据手册下载 0次下载
- 如何正确选用电阻器 0次下载
- 分立电阻器检定测试系统的配置 36次下载
- 电阻器选型指导书 68次下载
- 电阻器术语
- DQ系列电阻器
- SMD贴片电阻器
- RT 型电阻器
- FZ–5型电阻器
- ZX15 型电阻器
- 热敏电阻器
- 电阻器的详细资料
- 简单认识电阻器 902次阅读
- 贴片电阻器的型号命名方式和选型要点 5385次阅读
- 如何识别金属膜电阻器和碳膜电阻器 4153次阅读
- 什么是电阻器?电阻器选型应该注意什么? 5657次阅读
- 压敏电阻器作用及选用 4937次阅读
- 不同类型电阻器的选用 3903次阅读
- 热敏电阻器作用_热敏电阻器的工作原理 5733次阅读
- 敏感电阻器的代换技巧分享 9221次阅读
- 制造标准电阻器要什么材料 7556次阅读
- 电阻器的作用及选取 4438次阅读
- 带你认识常用的电阻器 1.7w次阅读
- 电阻器的功率是什么意思_电阻2w是什么意思 7.1w次阅读
- 电阻器的标注方法有几种_电阻器常用的标注方法 6.9w次阅读
- 电阻器的检测方法和电阻器的容差(允许误差)与自发热计算 1w次阅读
- 电阻器与电位器解析,电阻器与电位器的命名及其识别测量 4419次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论