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

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

3天內(nèi)不再提示

分享一種單片機(jī)IO口測量外部電阻的方法

冬至子 ? 來源:TsinghuaJoking ? 作者:卓晴 ? 2023-11-24 16:42 ? 次閱讀

一、前言

在以前的有些單片機(jī)應(yīng)用中,有的時候會遇到 AD 端口資源不夠用的情況,但又需要測量電阻的大小。比如一個熱敏電阻的阻值。有人給出了一個利用兩個 IO 端口完成電阻精確測量的一個老的方法。下面通過實(shí)驗(yàn)來測試一下這個古老的 IO 端口測量電阻的方法。

二、測量原理

測量原理比較簡單。使用兩個單片機(jī)IO口,連接兩個電阻,向同一個電容充電。設(shè)置一個IO口為輸出端口,另一個為輸入端口。輸出端口通過連接的電阻向電容充電。電容上的電壓上升,當(dāng)超過一定閾值,輸入端口邏輯電平就會變成1。這個充電時間與 終止電壓、閾值電壓以及 RC對應(yīng)的時間常數(shù)有關(guān)系。具體數(shù)值由這個公式?jīng)Q定。這個過程再測量一遍。

對應(yīng)的時間與R2成正比。因此,兩次時間的比值,就等于電阻的比值。如果已知其中一個電阻阻值,另外一個電阻便可以根據(jù)時間比值計算出來。這就是IO口測量電阻的基本原理。

image.png

三、實(shí)驗(yàn)結(jié)果

1、端口閾值電壓

這是 STM32F030K6 單片機(jī),給它端口 PF0 施加一個三角波。程序循環(huán)查詢輸入邏輯電平,并在 PF1 輸出反向邏輯??梢钥吹絾纹瑱C(jī)對輸入信號進(jìn)行了離散化。上升和下降具有一定的回滯特性。回滯電壓大約是 200mV。

640 (1).gif
▲ 圖1.3.1 單片機(jī)端口的閾值電壓`

2、測量元器件

下面利用F030 單片機(jī)的 PF0, PF1 兩個管腳,來測量電阻。測試一下這種方式測量的精度。

實(shí)驗(yàn)中需要一個電容和兩個電阻。電容容值為 313.8nF,電阻1 的阻值為 19.545kΩ; 電阻2的阻值為 4.718kΩ。將它們安裝在面包板上進(jìn)行測試。

image.png

電路器件參數(shù)
電容C:313.8nF
電阻R1:19.545k
電阻R2:4.718k

電容一端接地,另外一端與兩個電阻相連。兩個電阻分別與單片機(jī)的 PF0,PF1 端口相連。下面對單片機(jī)進(jìn)行軟件編程。利用其中的定時器作為時標(biāo),對延遲計時。

image.png

PF0管腳連接R2,PF1連接R1。設(shè)置PF0 為輸出端口,PF1 為輸入端口。周期改變PF0高低電平。分別測量 PF0,以及電容上的電壓信號??梢钥吹诫娙萆系碾妷撼尸F(xiàn)充電曲線。時間常數(shù)大約為 1.5ms。根據(jù)已知器件數(shù)值,可以看到與測量的結(jié)果是相符合的。

image.png

這是電阻2對電容的充放電曲線。下面測量電阻1對電容的充放電過程。由于電阻1的阻值為20k歐姆,所以對應(yīng)的充放電過程就比較慢,時間常數(shù)大約是 R2對應(yīng)的時間常數(shù)的4倍。為 6.3ms。在測量過程中,兩個端口同時對電容進(jìn)行放電。放電時間取20ms。

image.png

3、測量單片機(jī)軟件

測量軟件先將 PF0,PF1 輸出 0 電平,對于電容進(jìn)行放電。然后將其中一個設(shè)置為輸入端口,另外一個置為高電平,對電容充電。同時啟動定時器1進(jìn)行計時。在此過程中,監(jiān)視輸入端口邏輯電平是否為 1。當(dāng)輸入端口變?yōu)?時,停止定時器,并讀取時間。然后再進(jìn)行放電,更換另外一個端口為輸入端口。測試充電時間。這是測量 PF0 和 電容上電壓信號??梢钥吹絻蓚€充放電過程。黃色曲線是 PF0電壓信號,青色是電容上的充放電電壓信號。這是 PF0 作為輸出端口,PF1作為輸入端口時的測量過程。這兩個充電時間與電阻成正比。

這是給出的測量結(jié)果,第一個是 電阻1 對應(yīng)的充電時間。第二個是電阻2 對應(yīng)的充電時間。它們的比值在4.1左右。根據(jù)前面測量的 R1,R2 的阻值,對應(yīng)的比值大約為 4.143. 由此可以看到測量時間比值與電阻比值接近。

image.png

測試 298 個數(shù)據(jù)進(jìn)行統(tǒng)計。數(shù)據(jù)的平均值為 4.119,標(biāo)準(zhǔn)方差為 0.043。測量平均值比實(shí)際電阻比值 4.143 小了 0.6% 左右。

數(shù)據(jù)統(tǒng)計結(jié)果:
測量次數(shù):298
平均值:4.119
標(biāo)準(zhǔn)方差:0.043

總結(jié)

本文測試了利用單片機(jī) IO 口測量電阻的方法。單片機(jī)平臺是 STM32F030K6。測量得到的電阻充放電比值 比 電阻值的比值小了 0.6%左右。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628400
  • 熱敏電阻
    +關(guān)注

    關(guān)注

    13

    文章

    1105

    瀏覽量

    101279
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3218

    瀏覽量

    113682
  • 電容充電
    +關(guān)注

    關(guān)注

    0

    文章

    68

    瀏覽量

    8521
  • 閾值電壓
    +關(guān)注

    關(guān)注

    0

    文章

    71

    瀏覽量

    51241
收藏 人收藏

    評論

    相關(guān)推薦

    單片機(jī)開發(fā)設(shè)計之一種擴(kuò)展微處理器(單片機(jī)外部中斷接口的方法

    一種擴(kuò)展微處理器/單片機(jī)外部中斷接口的方法、普通單片機(jī)對數(shù)字量輸入信號的處理普通的微處理器(例
    發(fā)表于 10-28 19:56

    AVR單片機(jī)與PIC單片機(jī)IO的操作方法有何不同?

    如何去操作51單片機(jī)IO、AVR單片機(jī)IO與PIC單片機(jī)
    發(fā)表于 07-07 07:34

    單片機(jī)IO概述

    是人機(jī)交互的接口,I為輸入、O為輸出,我們對IO的操作,就是讀和寫,讀就是讀IO的引腳狀態(tài),寫就是把0或者1寫入IO
    發(fā)表于 11-10 06:26

    單片機(jī)IO介紹

    單片機(jī)IO介紹
    發(fā)表于 02-14 16:54 ?24次下載

    一種實(shí)用的單片機(jī)矩陣鍵盤設(shè)計

    則作為輸入。矩陣鍵盤的優(yōu)點(diǎn)是節(jié)約單片機(jī)IO,例如普通鍵盤8個IO只能用作8個按鍵,而矩陣鍵盤能作16個按鍵。 本文以51
    發(fā)表于 11-24 07:42 ?679次閱讀

    51單片機(jī)、AVR單片機(jī)和PIC單片機(jī)IO操作

    和PIC單片機(jī)IO的操作的方法。 .51單片機(jī)IO
    發(fā)表于 02-20 20:25 ?1w次閱讀
    51<b class='flag-5'>單片機(jī)</b>、AVR<b class='flag-5'>單片機(jī)</b>和PIC<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>IO</b><b class='flag-5'>口</b>操作

    如何使用單片機(jī)擴(kuò)展IO的詳細(xì)資料說明

    個按鍵對應(yīng)IO,那么可想而知,按鍵所占的IO的數(shù)量是很大的。單片機(jī)
    發(fā)表于 07-16 17:39 ?15次下載
    如何使用<b class='flag-5'>單片機(jī)</b>擴(kuò)展<b class='flag-5'>IO</b><b class='flag-5'>口</b>的詳細(xì)資料說明

    PIC單片機(jī)以及51和AVR單片機(jī)IO操作方法解析

    51單片機(jī)IO的結(jié)構(gòu)比較簡單,每個IO只有IO
    發(fā)表于 03-06 18:37 ?2963次閱讀

    單片機(jī)IO操作總結(jié)

    是人機(jī)交互的接口,I為輸入、O為輸出,我們對IO的操作,就是讀和寫,讀就是讀IO的引腳狀態(tài),寫就是把0或者1寫入IO
    發(fā)表于 11-05 13:06 ?31次下載
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>IO</b><b class='flag-5'>口</b>操作總結(jié)

    單片機(jī)IO輸入輸出模式判斷

    要判斷單片機(jī)IO輸入輸出模式,是要判斷單片機(jī)IO電平由誰決定的,看是由
    發(fā)表于 11-17 10:21 ?16次下載
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>IO</b><b class='flag-5'>口</b>輸入輸出模式判斷

    關(guān)于stm32單片機(jī)準(zhǔn)雙向IO配置

    我們在開始學(xué)習(xí)51內(nèi)核的單片機(jī)的時候就知道,p0的引腳都是雙向IO,P1,P2,P3的IO
    發(fā)表于 12-24 19:19 ?19次下載
    關(guān)于stm32<b class='flag-5'>單片機(jī)</b>準(zhǔn)雙向<b class='flag-5'>IO</b><b class='flag-5'>口</b>配置

    單片機(jī)4個IO的作用

    單片機(jī)4個IO的作用? 單片機(jī)是嵌入式系統(tǒng)中的一種重要元器件,其可以實(shí)現(xiàn)數(shù)據(jù)處理、控制和通信等功能。作為
    的頭像 發(fā)表于 09-22 16:21 ?6629次閱讀

    單片機(jī)IO不夠用了怎么辦?如何擴(kuò)展單片機(jī)IO

    單片機(jī)IO不夠用了怎么辦?如何擴(kuò)展單片機(jī)IO? 單片
    的頭像 發(fā)表于 10-24 11:49 ?6512次閱讀

    單片機(jī)io的四工作狀態(tài)

    單片機(jī)的I/O工作狀態(tài)是單片機(jī)編程和硬件操作中非常重要的部分,它決定了單片機(jī)如何與外部設(shè)備進(jìn)
    的頭像 發(fā)表于 09-14 14:24 ?284次閱讀

    單片機(jī)io輸出電流多大

    單片機(jī)IO的輸出電流大小會受到多種因素的影響,包括單片機(jī)的型號、IO的配置模式以及
    的頭像 發(fā)表于 09-14 14:29 ?192次閱讀