資料介紹
描述
嘿,
您是否厭倦了在這樣的情況下完成每個(gè)項(xiàng)目后結(jié)束?
您是一個(gè)懶得檢查每個(gè)電阻器上的顏色代碼以按電阻對(duì)它們進(jìn)行分類的雜亂無章的人嗎?你是不是懶到連用萬用表都嫌多?也許有適合您的解決方案,終極懶惰的歐姆表
構(gòu)建這個(gè)用于檢查未分類電阻值的簡單歐姆表所需要的只是一堆電阻器(這次是已知值)、一個(gè) Arduino 和一個(gè)顯示器(我用的是 I2C OLED 顯示器)。
然后,我們將依靠分壓器方程來獲得與已知值電阻器串聯(lián)的未知電阻器的值。這種簡單的技術(shù)只有一個(gè)缺點(diǎn)。兩個(gè)電阻越不同,我們的測量就越不準(zhǔn)確。為了克服這種現(xiàn)象,我們需要使用多個(gè)電阻器并編寫代碼,讓 Arduino 為未知值計(jì)算選擇最合適的電阻器。
遵循這一理念,我們可以按照下圖中的示意圖構(gòu)建歐姆表。

如果您使用 I2C 顯示器,您也可以按照原理圖進(jìn)行操作。Arduino Nano 將引腳 A4 用于 SDA,將 A5 用于 SCL。
現(xiàn)在讓我們關(guān)注編碼部分。我使用的代碼可以在這里看到:
#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);
}
[...]
對(duì)于 OLED 屏幕,我只使用了 Adafruit 庫。您只需要通過 Arduino IDE 的庫管理器下載它并復(fù)制您需要的代碼。我使用了兩個(gè)位圖只是為了讓閱讀更美觀,您可以輕松添加位圖或替換我添加的位圖。
對(duì)于歐姆表部分,您需要了解它是如何工作的,因?yàn)槟梢愿鶕?jù)使用多少電阻器作為參考值來更改它。
一旦代碼進(jìn)入 void 循環(huán),Arduino 將檢查引腳 A0 上的電壓。由于從分壓器方程:
?
V0 = Vi*R2/(R1+R2)
?
如果 R1 和 R2 相同,我們應(yīng)該使 V0 接近 2.5V(因此我們的 10 位讀數(shù)為 512)。
如果該值與這些結(jié)果相差甚遠(yuǎn),則代碼將移至下一個(gè)值,依此類推,直到我們得到最接近的電阻器。一旦滿足“閉合電阻”條件,該值將打印在顯示屏上。
注意#1:在每個(gè) IF 語句中,我們需要重新定義每個(gè)數(shù)字引腳的 pinMode,因?yàn)槿绻麑⑵浔A魹檩敵?,它將表現(xiàn)為低阻抗引腳并破壞我們在引腳 A0 上的測量。
一旦選擇了正確的電阻器,未知電阻器值(代碼中的 Ru 變量)將使用分壓器方程計(jì)算。
注意#2:對(duì)于這個(gè)設(shè)備,我只使用了 5 個(gè)電阻,但如果你愿意,你可以為板上的每個(gè)數(shù)字引腳設(shè)置更多的值。
系統(tǒng)下方的照片建立在面包板上。

現(xiàn)在對(duì)于實(shí)際應(yīng)用,我們需要構(gòu)建某種盒子,我們可以在其中插入未知電阻,結(jié)果將顯示在屏幕上。
我制作的盒子可以很容易地用3D打印機(jī)打印出來,所有部件都可以用膠槍固定在一起。需要對(duì)已知的電阻器進(jìn)行一些焊接,以使所有東西都適合小體積。

只剩下一件事:將未分類的電阻器插入那些小孔并清潔工作臺(tái)!
玩得開心,下個(gè)教程見。
?
編輯:我修改了代碼的舍入部分,因?yàn)樗赡軙?huì)在舍入 5k 電阻時(shí)導(dǎo)致錯(cuò)誤。通過此更改,問題應(yīng)該得到解決。無論如何,在參考之間添加一個(gè) 5k 電阻應(yīng)該可以完全防止這個(gè)問題。
- 對(duì)您的 LED 進(jìn)行高效調(diào)光,無需檢測電阻器
- 電阻器的概念是什么?如何定義的? 17次下載
- 電阻器的種類及特點(diǎn) 0次下載
- 通用片式電阻器RC0402數(shù)據(jù)手冊下載 0次下載
- 如何正確選用電阻器 0次下載
- 分立電阻器檢定測試系統(tǒng)的配置 36次下載
- 電阻器選型指導(dǎo)書 68次下載
- 電阻器術(shù)語
- DQ系列電阻器
- SMD貼片電阻器
- RT 型電阻器
- FZ–5型電阻器
- ZX15 型電阻器
- 熱敏電阻器
- 電阻器的詳細(xì)資料
- 簡單認(rèn)識(shí)電阻器 902次閱讀
- 貼片電阻器的型號(hào)命名方式和選型要點(diǎn) 5385次閱讀
- 如何識(shí)別金屬膜電阻器和碳膜電阻器 4153次閱讀
- 什么是電阻器?電阻器選型應(yīng)該注意什么? 5657次閱讀
- 壓敏電阻器作用及選用 4937次閱讀
- 不同類型電阻器的選用 3903次閱讀
- 熱敏電阻器作用_熱敏電阻器的工作原理 5733次閱讀
- 敏感電阻器的代換技巧分享 9221次閱讀
- 制造標(biāo)準(zhǔn)電阻器要什么材料 7556次閱讀
- 電阻器的作用及選取 4438次閱讀
- 帶你認(rèn)識(shí)常用的電阻器 1.7w次閱讀
- 電阻器的功率是什么意思_電阻2w是什么意思 7.1w次閱讀
- 電阻器的標(biāo)注方法有幾種_電阻器常用的標(biāo)注方法 6.9w次閱讀
- 電阻器的檢測方法和電阻器的容差(允許誤差)與自發(fā)熱計(jì)算 1w次閱讀
- 電阻器與電位器解析,電阻器與電位器的命名及其識(shí)別測量 4419次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論