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

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

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

用于精確讀數(shù)的Arduino轉(zhuǎn)速計(jì)電路

科技觀察員 ? 來源:homemade-circuits ? 作者:homemade-circuits ? 2023-07-27 14:13 ? 次閱讀

轉(zhuǎn)速計(jì)是一種測量旋轉(zhuǎn)物體的 RPM 或角速度的裝置。它與車速表和里程表不同,因?yàn)檫@些設(shè)備處理身體的線性或切向速度,而轉(zhuǎn)速表又名“tach”處理更基本的RPM。

轉(zhuǎn)速計(jì)由一個(gè)計(jì)數(shù)器和一個(gè)計(jì)時(shí)器組成,兩者協(xié)同工作為我們的項(xiàng)目提供了 RPM.In,我們將使用我們的 Arduino和一些傳感器,我們將設(shè)置計(jì)數(shù)器和計(jì)時(shí)器,并開發(fā)我們方便易用的轉(zhuǎn)速表。

先決條件

計(jì)數(shù)器只不過是一種設(shè)備或設(shè)置,可以計(jì)算任何某些常規(guī)發(fā)生的事件,例如在旋轉(zhuǎn)時(shí)在光盤中傳遞一個(gè)點(diǎn)。最初,計(jì)數(shù)器是使用機(jī)械布置和連桿(如齒輪,棘輪,彈簧等)建造的。

但是現(xiàn)在我們使用的計(jì)數(shù)器具有更復(fù)雜和高精度的傳感器和電子設(shè)備。定時(shí)器是一種電子元件,能夠測量事件之間的時(shí)間間隔或測量時(shí)間。

在我們的Arduino Uno中,有一些計(jì)時(shí)器不僅可以跟蹤時(shí)間,還可以保持Arduino的一些重要功能。在 Uno 中,我們有 3 個(gè)計(jì)時(shí)器,分別名為Timer0、Timer1 和 Timer2。這些計(jì)時(shí)器具有以下函數(shù)-? Timer0- 用于 Uno 函數(shù),如delay()、millis()、micros() 或 delaymicros()。

? 定時(shí)器1- 用于伺服庫的工作。

? Timer2- 用于 tone()、notone() 等函數(shù)。

除了這些功能外,這 3 個(gè)定時(shí)器還負(fù)責(zé)在 PMW 指定引腳中使用 analogWrite() 命令時(shí)生成 PWM 輸出。

中斷的概念

在Arduino
Uno中,存在一個(gè)隱藏的工具,它可以為我們?cè)L問許多稱為計(jì)時(shí)器中斷的功能。中斷是一組事件或指令,在調(diào)用中斷設(shè)備的當(dāng)前功能時(shí)執(zhí)行,即無論您的Uno之前執(zhí)行什么代碼,但是一旦中斷稱為Arduino,就會(huì)執(zhí)行中斷中提到的指令。

現(xiàn)在,可以在用戶使用內(nèi)置的Arduino語法定義的特定條件下調(diào)用中斷。我們將在我們的項(xiàng)目中使用此中斷,這使我們的轉(zhuǎn)速表比網(wǎng)絡(luò)上的其他轉(zhuǎn)速表項(xiàng)目更堅(jiān)決,更精確。

電路設(shè)置

? 創(chuàng)建設(shè)置如下-

? 在要測量轉(zhuǎn)速的軸上裝有使用膠槍或電工膠帶的小磁鐵。

? 霍爾效應(yīng)傳感器前面有一個(gè)探測器,3個(gè)用于連接的引腳。

? Vcc 和 Gnd 引腳分別連接到 Arduino 的 5V 和 Gnd 引腳。傳感器的輸出引腳連接到Uno的數(shù)字引腳2以提供輸入信號(hào)。

? 所有組件都固定在安裝板上,霍爾檢測器從板上指出。

編程

int sensor = 2; // Hall sensor at pin 2

volatile byte counts;

unsigned int rpm; //unsigned gives only positive values

unsigned long previoustime;

void count_function()

{ /*The ISR function

Called on Interrupt

Update counts*/

counts++;

}

void setup() {

Serial.begin(9600);

//Intiates Serial communications

attachInterrupt(0, count_function, RISING); //Interrupts are called on Rise
of Input

pinMode(sensor, INPUT); //Sets sensor as input

counts= 0;

rpm = 0;

previoustime = 0; //Initialise the values

}

void loop()

{

delay(1000);//Update RPM every second

detachInterrupt(0); //Interrupts are disabled

rpm = 60*1000/(millis() - previoustime)*counts;

previoustime = millis(); //Resets the clock

counts= 0; //Resets the counter

Serial.print(“RPM=”);

Serial.println(rpm); //Calculated values are displayed

attachInterrupt(0, count_function, RISING); //Counter restarted

}

了解代碼

我們的轉(zhuǎn)速表使用霍爾效應(yīng)傳感器;霍爾效應(yīng)傳感器基于霍爾效應(yīng),以其發(fā)現(xiàn)者埃德溫·霍爾命名。

霍爾效應(yīng)是當(dāng)垂直于電流引入磁場時(shí),在載流導(dǎo)體上產(chǎn)生電壓的現(xiàn)象。由于這種現(xiàn)象而產(chǎn)生的電壓有助于輸入信號(hào)的產(chǎn)生。如前所述,中斷將在本項(xiàng)目中使用,要調(diào)用中斷,我們必須設(shè)置一些條件。Arduino
Uno 有 2 個(gè)調(diào)用中斷的條件-

上升- 使用時(shí),每次輸入信號(hào)從低電平變?yōu)楦唠娖綍r(shí)都會(huì)調(diào)用中斷。

FALING-當(dāng)使用它時(shí),當(dāng)信號(hào)從高電平變?yōu)榈碗娖綍r(shí),將調(diào)用中斷。

我們使用了 RISING,發(fā)生的情況是,當(dāng)放置在軸或旋轉(zhuǎn)物體中的磁鐵靠近霍爾檢測器時(shí),產(chǎn)生輸入信號(hào)并調(diào)用中斷,中斷啟動(dòng)中斷服務(wù)例程 (ISR)
功能,其中包括計(jì)數(shù)值的增量,從而發(fā)生計(jì)數(shù)。

我們使用了 Arduino 的 millis() 函數(shù)和 previoustime(變量)來設(shè)置計(jì)時(shí)器。

因此,RPM 最終使用數(shù)學(xué)關(guān)系計(jì)算 -

RPM= 計(jì)數(shù)/所用時(shí)間 將毫秒轉(zhuǎn)換為分鐘并重新排列,我們得到公式= 60*1000/(millis() - 上一個(gè)時(shí)間)*計(jì)數(shù)。

延遲(1000)決定了RPM值將在屏幕上更新的時(shí)間間隔,您可以根據(jù)需要調(diào)整此延遲。

獲得的RPM值可以進(jìn)一步用于使用關(guān)系-v=(3.14DN)/60 m/s計(jì)算旋轉(zhuǎn)物體的切向速度。

RPM 的值也可用于計(jì)算旋轉(zhuǎn)輪或圓盤行進(jìn)的距離。

通過連接LCD顯示器(16 * 2)和電池,可以更好地使用該設(shè)備,而不是將值打印到串行監(jiān)視器。

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

    關(guān)注

    10289

    文章

    10707

    瀏覽量

    523901
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6453

    瀏覽量

    185929
  • 轉(zhuǎn)速計(jì)
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    6838
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    晶體管轉(zhuǎn)速計(jì)原理圖

    晶體管轉(zhuǎn)速計(jì)原理圖僅使用一個(gè)單一晶體管,這可能是最簡單的轉(zhuǎn)速計(jì)原理圖。
    發(fā)表于 03-16 11:39 ?1409次閱讀
    晶體管<b class='flag-5'>轉(zhuǎn)速</b><b class='flag-5'>計(jì)</b>原理圖

    用IR傳感器和Arduino制作一個(gè)數(shù)字轉(zhuǎn)速計(jì)(附代碼)

    本項(xiàng)目采用IR傳感器和Arduino開發(fā)板制作了一個(gè)數(shù)字轉(zhuǎn)速計(jì),以RPM為單位測量馬達(dá)的轉(zhuǎn)數(shù)。項(xiàng)目黑簡單,只需將IR傳感器和Arduino板子與16*2 LCD連接即可。
    的頭像 發(fā)表于 08-25 09:55 ?3446次閱讀
    用IR傳感器和<b class='flag-5'>Arduino</b>制作一個(gè)數(shù)字<b class='flag-5'>轉(zhuǎn)速</b><b class='flag-5'>計(jì)</b>(附代碼)

    回收Fluke931手持式轉(zhuǎn)速計(jì) 福祿克931

    °C· 尺寸175 x 60 x 28 mm· 重量:250克(含電池)· 質(zhì)保期限1年福祿克Fluke 931轉(zhuǎn)速表輔助功能· *大值*小值平均值· *后讀數(shù)記錄· 觸發(fā)顯示· Fluke 931轉(zhuǎn)速
    發(fā)表于 07-28 08:52

    Arduino功率計(jì)電路是如何工作的

    怎樣去設(shè)計(jì)Arduino功率計(jì)的完整電路Arduino功率計(jì)電路是如何工作的?
    發(fā)表于 09-29 08:46

    精確的相位計(jì)

    精確的相位計(jì)
    發(fā)表于 02-25 21:48 ?660次閱讀
    <b class='flag-5'>精確</b>的相位<b class='flag-5'>計(jì)</b>

    發(fā)動(dòng)機(jī)轉(zhuǎn)速計(jì)電路

    發(fā)動(dòng)機(jī)轉(zhuǎn)速計(jì)電路
    發(fā)表于 03-24 08:53 ?1235次閱讀
    發(fā)動(dòng)機(jī)<b class='flag-5'>轉(zhuǎn)速</b><b class='flag-5'>計(jì)</b><b class='flag-5'>電路</b>圖

    汽車轉(zhuǎn)速計(jì)電路

    汽車轉(zhuǎn)速計(jì)電路
    發(fā)表于 04-13 09:07 ?1000次閱讀
    汽車<b class='flag-5'>轉(zhuǎn)速</b><b class='flag-5'>計(jì)</b><b class='flag-5'>電路</b>圖

    晶體管轉(zhuǎn)速計(jì)電路

    晶體管轉(zhuǎn)速計(jì)電路
    發(fā)表于 06-30 13:40 ?377次閱讀
    晶體管<b class='flag-5'>轉(zhuǎn)速</b><b class='flag-5'>計(jì)</b><b class='flag-5'>電路</b>圖

    頻率計(jì)-轉(zhuǎn)速計(jì)放大器電路

    頻率計(jì)-轉(zhuǎn)速計(jì)放大器電路
    發(fā)表于 06-30 13:42 ?645次閱讀
    頻率<b class='flag-5'>計(jì)</b>-<b class='flag-5'>轉(zhuǎn)速</b><b class='flag-5'>計(jì)</b>放大器<b class='flag-5'>電路</b>圖

    組合式轉(zhuǎn)速計(jì)和停止角儀表電路

    組合式轉(zhuǎn)速計(jì)和停止角儀表電路
    發(fā)表于 07-03 14:03 ?471次閱讀
    組合式<b class='flag-5'>轉(zhuǎn)速</b><b class='flag-5'>計(jì)</b>和停止角儀表<b class='flag-5'>電路</b>圖

    Fluke931轉(zhuǎn)速計(jì)的使用手冊(cè)免費(fèi)下載

     Fluke 931 型轉(zhuǎn)速計(jì)(以下簡稱作“轉(zhuǎn)速計(jì)”)是一款手持式儀器,可以準(zhǔn)確地測量每分鐘轉(zhuǎn)數(shù) (RPM) 或表面速度以及距離。使用“紅外光束”功能可進(jìn)行非接觸式
    發(fā)表于 09-16 08:00 ?17次下載
    Fluke931<b class='flag-5'>轉(zhuǎn)速</b><b class='flag-5'>計(jì)</b>的使用手冊(cè)免費(fèi)下載

    dfrobot模擬聲級(jí)計(jì)/分貝計(jì)/噪音計(jì)簡介

    這款arduino兼容的聲級(jí)計(jì)(又稱分貝計(jì)、噪音計(jì))模塊,采用儀器級(jí)電路方案,可精確測量周圍環(huán)境
    的頭像 發(fā)表于 01-02 10:41 ?2165次閱讀
    dfrobot模擬聲級(jí)<b class='flag-5'>計(jì)</b>/分貝<b class='flag-5'>計(jì)</b>/噪音<b class='flag-5'>計(jì)</b>簡介

    雙金屬溫度計(jì)怎么讀數(shù)_雙金屬溫度計(jì)使用維護(hù)

    你知道雙金屬溫度計(jì)怎么讀數(shù)嗎?下面小編來告訴你!
    發(fā)表于 02-29 10:25 ?4592次閱讀

    Arduino UNO速率記錄模擬讀數(shù)

    電子發(fā)燒友網(wǎng)站提供《Arduino UNO速率記錄模擬讀數(shù).zip》資料免費(fèi)下載
    發(fā)表于 11-23 10:01 ?0次下載
    <b class='flag-5'>Arduino</b> UNO速率記錄模擬<b class='flag-5'>讀數(shù)</b>

    DIY精確Arduino風(fēng)速計(jì)

    電子發(fā)燒友網(wǎng)站提供《DIY精確Arduino風(fēng)速計(jì).zip》資料免費(fèi)下載
    發(fā)表于 02-08 16:11 ?3次下載
    DIY<b class='flag-5'>精確</b><b class='flag-5'>Arduino</b>風(fēng)速<b class='flag-5'>計(jì)</b>