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)和电池,可以更好地使用该设备,而不是将值打印到串行监视器。

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

    关注

    10215

    文章

    10645

    浏览量

    511049
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184838
  • 转速计
    +关注

    关注

    0

    文章

    8

    浏览量

    6697
收藏 人收藏

    评论

    相关推荐

    关于梅特勒pH测量读数不准的原因

    梅特勒pH读数不准确是什么原因?许多人都认识是梅特勒pH或梅特勒pH电极有问题,但很多情况下,是由于操作不当或其它外在条件引起的,下面梅特勒仪器网介绍下可能会引起梅特勒pH
    发表于 08-20 15:04

    单片机光电转速

    实训做的单片机光电转速,用的是红外对管,原理简单,附件中有原理图,程序,proteus仿真,希望对大家有帮助。新建文件夹 (2).rar (5.82 MB )
    发表于 05-27 00:18

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

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

    请问一下怎样去设计一种基于Arduino的功率

    怎样去设计一种基于Arduino的功率?怎样去设计Arduino功率的完整电路
    发表于 07-26 06:18

    步进电机可以实现电机转速和位置的精确控制吗

    直流电机分为哪几种?什么是步进电机?步进电机可以实现电机转速和位置的精确控制吗?
    发表于 09-14 06:10

    常用的Arduino UNO可以作为临时温度传感器使用吗

    用于Arduino主控芯片的常见的AVR单片机有哪些?怎样通过编程来读取ATmega328P内部温度读数
    发表于 09-22 08:57

    Arduino功率电路是如何工作的

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

    如何用Arduino开发版实现对步进电机的转速控制和方向控制?

    如何用Arduino开发版实现对步进电机的转速控制和方向控制?
    发表于 10-15 06:49

    用于Arduino带有LED和按钮的电路

    描述Arduino 模块 - LED+开关用于Arduino和其他电路板的带有 LED 和按钮的电路板。
    发表于 06-27 06:07

    Arduino转速表资料分享

    描述Arduino转速
    发表于 08-03 06:01

    用于监测电机转速的测速模块电路

    测速模块电路用于监测电机的转速
    发表于 09-26 06:06

    精确度数字式转速测量技术的研究

    介绍了一种利用单片机技术实现高精确度数字式转速测量系统的方法。这种转速测量系统具有测量精确度高、采样速度快、测量范围宽和测量精确度与被测
    发表于 07-06 08:29 23次下载

    用于测量水位和温度的Arduino电路

    电子发烧友网站提供《用于测量水位和温度的Arduino电路.zip》资料免费下载
    发表于 11-15 14:41 2次下载
    <b class='flag-5'>用于</b>测量水位和温度的<b class='flag-5'>Arduino</b><b class='flag-5'>电路</b>

    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 1次下载
    DIY<b class='flag-5'>精确</b><b class='flag-5'>Arduino</b>风速计