使用Arduino和LM317制作一個低電阻表_第1頁
使用Arduino和LM317制作一個低電阻表_第2頁
使用Arduino和LM317制作一個低電阻表_第3頁
使用Arduino和LM317制作一個低電阻表_第4頁
使用Arduino和LM317制作一個低電阻表_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

使用Arduino和LM317制作一個低電阻表如果您是像我這樣的制造商并在網(wǎng)上尋找一些有趣的項目,那么毫歐表是您可以制作的一件簡單而有用的東西。該電路的基本原理是基于恒流源,我們在之前的一篇文章中已經(jīng)介紹過。毫歐表是一種設(shè)備,可用于確定小電阻的值、PCB走線的電阻,如果您了解專有技術(shù),則可以使用它來找出PCB中的短路?;ヂ?lián)網(wǎng)上有很多毫歐表和低電阻表電路,但今天我們將使用Arduino和流行的LM317線性穩(wěn)壓器IC制作一個非常簡單的低電阻表,它不僅可靠而且提供了一個準(zhǔn)確的測量。W還將在OLED顯示屏上顯示信息,最后,我們將對我們的電路進(jìn)行性能測試。在我們的測試中,該電路不僅準(zhǔn)確,而且范圍也不錯。我們能夠非常準(zhǔn)確地測量0.05R到22R。所以事不宜遲,讓我們開始吧。什么是毫歐表,它是如何工作的?正如我們之前所討論的,毫歐表是一種用于測量低電阻的設(shè)備,如果您問為什么測量低電阻很重要,讓我告訴您它可以用于許多不同類型的應(yīng)用,而不是測量反抗。一個例子可能是;假設(shè)您的電路板顯示電源部分短路,大多數(shù)情況下,問題可能是電容器損壞。如果您可以使用低電阻表,您可以檢查電路板的不同部分,以查明電阻最低的特定區(qū)域,然后您可以從那里開始調(diào)試。這是一個簡單的例子,如果你想你可以做的不僅僅是這個。電阻可以定義為阻礙電子流動的成分;電阻的單位是歐姆。毫歐表是一種非常簡單的儀器,用于測量未知/低值電阻。市場上有許多歐姆表,它們可以測量各種電阻,但這些儀表有一個共同點(diǎn),一開始它們非常昂貴。我們的毫歐表根據(jù)歐姆定律工作。工作原理和電路很簡單,從標(biāo)題就知道了,我們要用一個Arduino來處理電流信息,但是Arduino不知道如何測量電流,它只知道如何測量電壓,要將電流值轉(zhuǎn)換為電壓值,我們將結(jié)合歐姆定律使用恒流源,并且我們將使用流行的LM317穩(wěn)壓器作為恒流源。構(gòu)建基于Arduino的低電阻表所需的組件您需要一些組件來構(gòu)建這個項目,因為它們非常通用,您可以在當(dāng)?shù)氐膼酆蒙痰曛姓业剿羞@些組件。下面給出了具有值的組件列表。Arduino納米-1LM317T-1128X64OLED-110R電阻-1測試電阻器基于Arduino的低電阻表示意圖基于Arduino的低電阻表的完整電路圖如下所示。該電路的連接圖和工作原理非常簡單,如上圖所示,我們有一個ArduinoNano負(fù)責(zé)數(shù)據(jù)采集、計算和處理。我們有一個OLED顯示屏,可以顯示計算出的電阻值。最后,我們使用的是恒流源LM317T。通過恒流源和一點(diǎn)歐姆定律,我們可以很容易地計算出電阻值。在原理圖中,您可以看到用于計算LM317穩(wěn)壓器IC的電流限制的公式。您還可以在原理圖中看到,我們在電路中使用了一個10R電阻器來計算0.125A或125mA的恒定電流。現(xiàn)在,由于我們有電流值,我們只需將其除以電壓即可得到電阻V=IR,因此R=V/I,我們將得到電阻。代碼:基于Arduino的低電阻表此項目中使用的完整代碼可在此頁面底部找到。添加所需的頭文件和源文件后,應(yīng)該可以直接編譯Arduino代碼了。您可以從下面給出的鏈接下載庫,或者您可以使用板管理器方法安裝庫。下載Adafruit的SSD1306OLED庫代碼非常簡單,如下所示。我們首先包含所有必需的庫。由于我們使用的是OLED顯示器,所以我們必須包含SSD1306庫和Wire庫,SSD1306庫使用Wire庫。

#include#include//OLED線庫

接下來,我們將定義顯示器的屏幕寬度和屏幕高度。此外,我們將定義LM317穩(wěn)壓器IC的電阻值和參考值。這是必需的,因為我們將使用這些值計算恒定電流。一旦我們這樣做,我們將定義平均ADC值所需的所有必要變量。此外,我們將聲明引腳號和其他變量。

常量intnumReadings=50;//用于平均/我們將取50個樣本并平均得到ADC值整數(shù)讀數(shù)[numReadings];//存儲來自模擬輸入的讀數(shù)intreadIndex=0;//當(dāng)前讀數(shù)的索引整數(shù)=0;//運(yùn)行總和intADC平均值=0;//平均值浮動R;//存儲電阻值整數(shù)輸入引腳=A0;//A0被選為輸入

接下來,我們?yōu)镾SD1306顯示器創(chuàng)建一個實(shí)例并傳入線對象。

Adafruit_SSD1306顯示(SCREEN_WIDATA_PINH,SCREEN_HEIGHT,&Wire,-1);

接下來,在setup()部分,我們將初始化顯示并檢查顯示是否可用。我們在if語句的幫助下做到這一點(diǎn)。如果顯示可用,我們繼續(xù)執(zhí)行我們的代碼,否則我們打印一個錯誤語句。

if(!display.begin(SSD1306_SWITCHCAPVCC,0x3C)){//地址0x3D為128x64Serial.println(F("SSD1306分配失敗"));為了(;;);}

接下來,我們設(shè)置OLED顯示屏的文本顏色,如果不設(shè)置,則顯示屏可能會顯示黑色段。然后我們在display.setRotation(2)方法的幫助下旋轉(zhuǎn)顯示,因為這是這個項目的要求。

完成后,我們定義for循環(huán)。在for循環(huán)中,我們將數(shù)組的所有元素初始化為零。這很重要,因為數(shù)組中可能存在垃圾值,這可能會在我們的計算中引入錯誤。

display.setTextColor(白色);//設(shè)置液晶顏色display.setRotation(2);//它有模式1,2,3,4//for(intthisReading=0;thisReading<numReadings;thisReading++){讀數(shù)[thisReading]=0;}延遲(500);}

接下來,我們有我們的循環(huán)()部分。在本節(jié)中,我們將進(jìn)行平均ADC值所需的所有必要計算,以平滑輸出ADC讀數(shù)。您在下面看到的代碼用于平均ADC值。

總計=總計-讀數(shù)[readIndex];//減去最后一個讀數(shù):讀數(shù)[readIndex]=模擬讀數(shù)(輸入引腳);//從傳感器讀?。嚎傆?總計+讀數(shù)[readIndex];//將讀數(shù)加到總數(shù)中:讀取索引=讀取索引+1;//前進(jìn)到數(shù)組中的下一個位置:if(readIndex>=numReadings){//如果我們在數(shù)組的末尾...//...繞到開頭:讀取索引=0;}

一旦ADC值被平均,我們打印平均值僅用于調(diào)試。接下來,我們將ADC值轉(zhuǎn)換為電壓值,因為這是計算所需的。此后,我們打印電壓值進(jìn)行調(diào)試。一旦我們有了電壓,我們就知道我們的電流值是固定的。現(xiàn)在,在歐姆定律的幫助下,我們計算電阻值并將其打印在串行監(jiān)視器窗口中。此外,我們在OLED顯示屏上打印這些值。

ADCaverage=總數(shù)/numReadings;//計算平均值:Serial.print("AVG:");Serial.print(ADCaverage);浮動電壓=ADCaverage*(5.0/1024.0);//將ADCaverage轉(zhuǎn)換為電壓序列號.print("\t\t");//給我一點(diǎn)TAb好嗎Serial.print(電壓,3);//將電壓打印到串行監(jiān)視器Serial.print("\t\t");//再給我一個小TAb好嗎R=電壓/(LM317_REF/LM317_Resistance);Serial.print("阻力:");序列號.println(R);display.clearDisplay();display.setTextSize(2);display.setCursor(10,10);顯示.打?。≧,3);display.print("R");顯示.顯示();延遲(50);

這標(biāo)志著我們編碼過程的結(jié)束,現(xiàn)在我們可以開始測試我們的儀表了?;贏rduino的低電阻表的測試為了測試該電路,使用了以下設(shè)置。該設(shè)置是在面包板上進(jìn)行的,僅用于測試目的,強(qiáng)烈建議將此電路制作在合適的PCB板上。正如您在圖片中看到的那樣,我們在面包板上制作了電路,因為它是一個測試電路,結(jié)果證明這是一個壞主意,因為接觸電阻和阻抗對電路造成了很大的影響。這就是為什么在最后一刻,我們決定直接在電路板上焊接一些電線,我們還將10R電阻和鱷魚夾的電線直接焊接到LM317IC本身上。完成后,我們用這個儀表測量了一些電阻并觀察了結(jié)果,結(jié)果非常好。正如您在上圖中所看到的,該值非常準(zhǔn)確。為了驗證結(jié)果,我們決定在MECHO450B+萬用表的幫助下再次測試電路,結(jié)果非常糟糕。萬用表給了我們非常奇怪的值,可能是一個錯誤。為了驗證,我們再次測試了不同的電阻值,結(jié)果幾乎相同。在這一點(diǎn)上,我們確信Meco萬用表無法測量如此低的電阻值。您可以查看描述中的視頻以獲取更多詳細(xì)信息。進(jìn)一步增強(qiáng)這個電路并不完美,還有很大的改進(jìn)空間。首先,電路需要在穿孔板或一塊PCB板上,否則我們會遇到各種各樣的問題。我們使用LM317IC制作了恒流源,可以升級為專門為此目的設(shè)計的特定恒流源。我們使用公差為5%的電阻,但使用公差為1%或更低的電阻會大大改善結(jié)果。#include

#include//OLED線庫

#defineSCREEN_WIDATA_PINH128//OLED顯示寬度,以像素為單位

#defineSCREEN_HEIGHT64//OLED顯示高度,以像素為單位

#defineLM317_REF1.25

#defineLM317_Resistance10.1

常量intnumReadings=50;//用于平均/我們將取50個樣本并平均得到ADC值

整數(shù)讀數(shù)[numReadings];//來自模擬輸入的讀數(shù)

intreadIndex=0;//當(dāng)前讀數(shù)的索引

整數(shù)=0;//運(yùn)行總和

intADC平均值=0;//平均值

浮動R;

整數(shù)輸入引腳=A0;

Adafruit_SSD1306顯示(SCREEN_WIDATA_PINH,SCREEN_HEIGHT,&Wire,-1);

無效設(shè)置(){

//把你的設(shè)置代碼放在這里,運(yùn)行一次:

序列號.開始(9600);

if(!display.begin(SSD1306_SWITCHCAPVCC,0x3C)){//地址0x3D為128x64

Serial.println(F("SSD1306分配失敗"));

為了(;;);

}

display.setTextColor(白色);//設(shè)置液晶顏色

display.setRotation(2);//它有模式1,2,3,4

//

for(intthisReading=0;thisReading<numReadings;thisReading++){

讀數(shù)[thisReading]=0;

}

延遲(500);

}

無效循環(huán)(){

總計=總計-讀數(shù)[readIndex];//減去最后一個讀數(shù):

讀數(shù)[readIndex]=模擬讀數(shù)(輸入引腳);//從傳感器讀取:

總計=總計+讀數(shù)[readIndex];//將讀數(shù)加到總數(shù)中:

讀取索引=讀取索引+1;//前進(jìn)到數(shù)組中的下一個位置:

if(readIndex>=numReadings){

//如果我們在數(shù)組的末尾...

//...繞到開頭:

讀取索引=0;

}

ADCaverage=總數(shù)/numReadings;//計算平均值:

Serial.print("AVG:");

Serial.print(ADCaverage);

浮動電壓=ADCaverage*(5.0/1024.0);//轉(zhuǎn)換ADCaveraget0電壓

序列號.print("\t\t");//給我一點(diǎn)TAb好

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論