一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>以懶惰的方式對(duì)電阻器進(jìn)行排序

以懶惰的方式對(duì)電阻器進(jìn)行排序

2022-10-27 | zip | 0.14 MB | 次下載 | 2積分

資料介紹

描述

嘿,

您是否厭倦了在這樣的情況下完成每個(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)建歐姆表。

?
pYYBAGNYk8iAOWHNAAEw6rZpQkg687.jpg
設(shè)備示意圖。
?

如果您使用 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)下方的照片建立在面包板上。

?
poYBAGNYk8-AbbgkAAw89cYeGTs022.jpg
面包板上的懶惰儀表。
?

現(xiàn)在對(duì)于實(shí)際應(yīng)用,我們需要構(gòu)建某種盒子,我們可以在其中插入未知電阻,結(jié)果將顯示在屏幕上。

我制作的盒子可以很容易地用3D打印機(jī)打印出來,所有部件都可以用膠槍固定在一起。需要對(duì)已知的電阻器進(jìn)行一些焊接,以使所有東西都適合小體積。

?
pYYBAGNYk9WAN3nIAAm9Kc-cmAI378.jpg
最終裝置。
?

只剩下一件事:將未分類的電阻器插入那些小孔并清潔工作臺(tái)!

玩得開心,下個(gè)教程見。

?

編輯:我修改了代碼的舍入部分,因?yàn)樗赡軙?huì)在舍入 5k 電阻時(shí)導(dǎo)致錯(cuò)誤。通過此更改,問題應(yīng)該得到解決。無論如何,在參考之間添加一個(gè) 5k 電阻應(yīng)該可以完全防止這個(gè)問題。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)