0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用于精确读数的Arduino转速计电路

科技观察员 来源:homemade-circuits 作者:homemade-circuits 2023-07-27 14:13 次阅读

转速计是一种测量旋转物体的 RPM 或角速度的装置。它与车速表和里程表不同,因为这些设备处理身体的线性或切向速度,而转速表又名“tach”处理更基本的RPM。

转速计由一个计数器和一个计时器组成,两者协同工作为我们的项目提供了 RPM.In,我们将使用我们的 Arduino和一些传感器,我们将设置计数器和计时器,并开发我们方便易用的转速表。

先决条件

计数器只不过是一种设备或设置,可以计算任何某些常规发生的事件,例如在旋转时在光盘中传递一个点。最初,计数器是使用机械布置和连杆(如齿轮,棘轮,弹簧等)建造的。

但是现在我们使用的计数器具有更复杂和高精度的传感器和电子设备。定时器是一种电子元件,能够测量事件之间的时间间隔或测量时间。

在我们的Arduino Uno中,有一些计时器不仅可以跟踪时间,还可以保持Arduino的一些重要功能。在 Uno 中,我们有 3 个计时器,分别名为Timer0、Timer1 和 Timer2。这些计时器具有以下函数-• Timer0- 用于 Uno 函数,如delay()、millis()、micros() 或 delaymicros()。

• 定时器1- 用于伺服库的工作。

• Timer2- 用于 tone()、notone() 等函数。

除了这些功能外,这 3 个定时器还负责在 PMW 指定引脚中使用 analogWrite() 命令时生成 PWM 输出。

中断的概念

在Arduino
Uno中,存在一个隐藏的工具,它可以为我们访问许多称为计时器中断的功能。中断是一组事件或指令,在调用中断设备的当前功能时执行,即无论您的Uno之前执行什么代码,但是一旦中断称为Arduino,就会执行中断中提到的指令。

现在,可以在用户使用内置的Arduino语法定义的特定条件下调用中断。我们将在我们的项目中使用此中断,这使我们的转速表比网络上的其他转速表项目更坚决,更精确。

电路设置

• 创建设置如下-

• 在要测量转速的轴上装有使用胶枪或电工胶带的小磁铁。

• 霍尔效应传感器前面有一个探测器,3个用于连接的引脚。

• Vcc 和 Gnd 引脚分别连接到 Arduino 的 5V 和 Gnd 引脚。传感器的输出引脚连接到Uno的数字引脚2以提供输入信号

• 所有组件都固定在安装板上,霍尔检测器从板上指出。

编程

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

}

了解代码

我们的转速表使用霍尔效应传感器;霍尔效应传感器基于霍尔效应,以其发现者埃德温·霍尔命名。

霍尔效应是当垂直于电流引入磁场时,在载流导体上产生电压的现象。由于这种现象而产生的电压有助于输入信号的产生。如前所述,中断将在本项目中使用,要调用中断,我们必须设置一些条件。Arduino
Uno 有 2 个调用中断的条件-

上升- 使用时,每次输入信号从低电平变为高电平时都会调用中断。

FALING-当使用它时,当信号从高电平变为低电平时,将调用中断。

我们使用了 RISING,发生的情况是,当放置在轴或旋转物体中的磁铁靠近霍尔检测器时,产生输入信号并调用中断,中断启动中断服务例程 (ISR)
功能,其中包括计数值的增量,从而发生计数。

我们使用了 Arduino 的 millis() 函数和 previoustime(变量)来设置计时器。

因此,RPM 最终使用数学关系计算 -

RPM= 计数/所用时间 将毫秒转换为分钟并重新排列,我们得到公式= 60*1000/(millis() - 上一个时间)*计数。

延迟(1000)决定了RPM值将在屏幕上更新的时间间隔,您可以根据需要调整此延迟。

获得的RPM值可以进一步用于使用关系-v=(3.14DN)/60 m/s计算旋转物体的切向速度。

RPM 的值也可用于计算旋转轮或圆盘行进的距离。

通过连接LCD显示器(16 * 2)和电池,可以更好地使用该设备,而不是将值打印到串行监视器。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电路图
    +关注

    关注

    10342

    文章

    10721

    浏览量

    530455
  • Arduino
    +关注

    关注

    188

    文章

    6469

    浏览量

    187012
  • 转速计
    +关注

    关注

    0

    文章

    8

    浏览量

    6854
收藏 人收藏

    评论

    相关推荐

    晶体管转速原理图

    晶体管转速原理图仅使用一个单一晶体管,这可能是最简单的转速原理图。
    发表于 03-16 11:39 1479次阅读
    晶体管<b class='flag-5'>转速</b><b class='flag-5'>计</b>原理图

    用IR传感器和Arduino制作一个数字转速(附代码)

    本项目采用IR传感器和Arduino开发板制作了一个数字转速,以RPM为单位测量马达的转数。项目黑简单,只需将IR传感器和Arduino板子与16*2 LCD连接即可。
    的头像 发表于 08-25 09:55 3633次阅读
    用IR传感器和<b class='flag-5'>Arduino</b>制作一个数字<b class='flag-5'>转速</b><b class='flag-5'>计</b>(附代码)

    回收Fluke931手持式转速 福禄克931

    °C· 尺寸175 x 60 x 28 mm· 重量:250克(含电池)· 质保期限1年福禄克Fluke 931转速表辅助功能· *大值*小值平均值· *后读数记录· 触发显示· Fluke 931转速
    发表于 07-28 08:52

    Arduino功率电路是如何工作的

    怎样去设计Arduino功率的完整电路Arduino功率电路是如何工作的?
    发表于 09-29 08:46

    精确的相位

    精确的相位
    发表于 02-25 21:48 697次阅读
    <b class='flag-5'>精确</b>的相位<b class='flag-5'>计</b>

    发动机转速电路

    发动机转速电路
    发表于 03-24 08:53 1293次阅读
    发动机<b class='flag-5'>转速</b><b class='flag-5'>计</b><b class='flag-5'>电路</b>图

    汽车转速电路

    汽车转速电路
    发表于 04-13 09:07 1045次阅读
    汽车<b class='flag-5'>转速</b><b class='flag-5'>计</b><b class='flag-5'>电路</b>图

    晶体管转速电路

    晶体管转速电路
    发表于 06-30 13:40 404次阅读
    晶体管<b class='flag-5'>转速</b><b class='flag-5'>计</b><b class='flag-5'>电路</b>图

    频率-转速放大器电路

    频率-转速放大器电路
    发表于 06-30 13:42 660次阅读
    频率<b class='flag-5'>计</b>-<b class='flag-5'>转速</b><b class='flag-5'>计</b>放大器<b class='flag-5'>电路</b>图

    组合式转速和停止角仪表电路

    组合式转速和停止角仪表电路
    发表于 07-03 14:03 483次阅读
    组合式<b class='flag-5'>转速</b><b class='flag-5'>计</b>和停止角仪表<b class='flag-5'>电路</b>图

    Fluke931转速的使用手册免费下载

     Fluke 931 型转速(以下简称作“转速”)是一款手持式仪器,可以准确地测量每分钟转数 (RPM) 或表面速度以及距离。使用“红外光束”功能可进行非接触式
    发表于 09-16 08:00 17次下载
    Fluke931<b class='flag-5'>转速</b><b class='flag-5'>计</b>的使用手册免费下载

    dfrobot模拟声级/分贝/噪音简介

    这款arduino兼容的声级(又称分贝、噪音)模块,采用仪器级电路方案,可精确测量周围环境
    的头像 发表于 01-02 10:41 2333次阅读
    dfrobot模拟声级<b class='flag-5'>计</b>/分贝<b class='flag-5'>计</b>/噪音<b class='flag-5'>计</b>简介

    双金属温度怎么读数_双金属温度使用维护

    你知道双金属温度怎么读数吗?下面小编来告诉你!
    发表于 02-29 10:25 4765次阅读

    Arduino UNO速率记录模拟读数

    电子发烧友网站提供《Arduino UNO速率记录模拟读数.zip》资料免费下载
    发表于 11-23 10:01 0次下载
    <b class='flag-5'>Arduino</b> UNO速率记录模拟<b class='flag-5'>读数</b>

    DIY精确Arduino风速

    电子发烧友网站提供《DIY精确Arduino风速.zip》资料免费下载
    发表于 02-08 16:11 3次下载
    DIY<b class='flag-5'>精确</b><b class='flag-5'>Arduino</b>风速<b class='flag-5'>计</b>