精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>以懶惰的方式對電阻器進行排序

以懶惰的方式對電阻器進行排序

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

資料介紹

描述

嘿,

您是否厭倦了在這樣的情況下完成每個項目后結束?

您是一個懶得檢查每個電阻器上的顏色代碼以按電阻對它們進行分類的雜亂無章的人嗎?你是不是懶到連用萬用表都嫌多?也許有適合您的解決方案,終極懶惰的歐姆表

構建這個用于檢查未分類電阻值的簡單歐姆表所需要的只是一堆電阻器(這次是已知值)、一個 Arduino 和一個顯示器(我用的是 I2C OLED 顯示器)。

然后,我們將依靠分壓器方程來獲得與已知值電阻器串聯的未知電阻器的值。這種簡單的技術只有一個缺點。兩個電阻越不同,我們的測量就越不準確。為了克服這種現象,我們需要使用多個電阻器并編寫代碼,讓 Arduino 為未知值計算選擇最合適的電阻器。

遵循這一理念,我們可以按照下圖中的示意圖構建歐姆表。

?
pYYBAGNYk8iAOWHNAAEw6rZpQkg687.jpg
設備示意圖。
?

如果您使用 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 個電阻,但如果你愿意,你可以為板上的每個數字引腳設置更多的值。

系統下方的照片建立在面包板上。

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

現在對于實際應用,我們需要構建某種盒子,我們可以在其中插入未知電阻,結果將顯示在屏幕上。

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

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

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

玩得開心,下個教程見。

?

編輯:我修改了代碼的舍入部分,因為它可能會在舍入 5k 電阻時導致錯誤。通過此更改,問題應該得到解決。無論如何,在參考之間添加一個 5k 電阻應該可以完全防止這個問題。


評論

查看更多

下載排行

本周

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

本月

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

總榜

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