資料介紹
描述
嘿,
您是否厭倦了在這樣的情況下完成每個項目后結束?
您是一個懶得檢查每個電阻器上的顏色代碼以按電阻對它們進行分類的雜亂無章的人嗎?你是不是懶到連用萬用表都嫌多?也許有適合您的解決方案,終極懶惰的歐姆表
構建這個用于檢查未分類電阻值的簡單歐姆表所需要的只是一堆電阻器(這次是已知值)、一個 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 型電阻器
- 熱敏電阻器
- 電阻器的詳細資料
- 簡單認識電阻器 455次閱讀
- 貼片電阻器的型號命名方式和選型要點 4383次閱讀
- 如何識別金屬膜電阻器和碳膜電阻器 3866次閱讀
- 什么是電阻器?電阻器選型應該注意什么? 5358次閱讀
- 壓敏電阻器作用及選用 4873次閱讀
- 不同類型電阻器的選用 3671次閱讀
- 熱敏電阻器作用_熱敏電阻器的工作原理 5443次閱讀
- 敏感電阻器的代換技巧分享 8556次閱讀
- 制造標準電阻器要什么材料 7239次閱讀
- 電阻器的作用及選取 4176次閱讀
- 帶你認識常用的電阻器 1.7w次閱讀
- 電阻器的功率是什么意思_電阻2w是什么意思 6.9w次閱讀
- 電阻器的標注方法有幾種_電阻器常用的標注方法 6.8w次閱讀
- 電阻器的檢測方法和電阻器的容差(允許誤差)與自發熱計算 9771次閱讀
- 電阻器與電位器解析,電阻器與電位器的命名及其識別測量 4150次閱讀
下載排行
本周
- 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次下載 | 免費
評論
查看更多