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

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

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

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

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

一、前言

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

二、測(cè)量原理

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

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

image.png

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

1、端口閾值電壓

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

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

2、測(cè)量元器件

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

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

image.png

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

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

image.png

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

image.png

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

image.png

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

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

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

image.png

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

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

總結(jié)

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

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

    關(guān)注

    6026

    文章

    44455

    瀏覽量

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

    關(guān)注

    14

    文章

    1117

    瀏覽量

    101370
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3228

    瀏覽量

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

    關(guān)注

    0

    文章

    68

    瀏覽量

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

    關(guān)注

    0

    文章

    71

    瀏覽量

    51320
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    一種擴(kuò)展微處理器/單片機(jī)外部中斷接口的方法、普通單片機(jī)對(duì)數(shù)字量輸入信號(hào)的處理普通的微處理器(例
    發(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為輸出,我們對(duì)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è)計(jì)

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

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

    和PIC單片機(jī)IO的操作的方法。 .51單片機(jī)IO
    發(fā)表于 02-20 20:25 ?1.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ì)資料說(shuō)明

    個(gè)按鍵對(duì)應(yīng)個(gè)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ì)資料說(shuō)明

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

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

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

    是人機(jī)交互的接口,I為輸入、O為輸出,我們對(duì)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電平由誰(shuí)決定的,看是由
    發(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配置

    我們?cè)陂_(kāi)始學(xué)習(xí)51內(nèi)核的單片機(jī)的時(shí)候就知道,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個(gè)IO的作用

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

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

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

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

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

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

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