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

2022-8-25 09:58 799 3 2 分类: MCU/ 嵌入式 文集: 方案
本项目采用IR传感器和Arduino开发板制作了一个数字转速计,以RPM为单位测量马达的转数。项目黑简单,只需将IR传感器和Arduino板子与16*2 LCD连接即可。

BOM表及电路图

本转速计可连续计数5秒。项目BOM表如下:
Arduino UNO开发板 x1
16*2 LCD模块 x1
IR传感器模块(含发射和接收) x1
轻触开关(Reset开关) x1
面包板 x1
连接线 x1

BOM表中,IR传感器担当测速功能,该模块组合了一对发射器和接收器,可测量任何旋转物体。当我们按下开始健后,IR传感器的发射器发射的IR光线被反射后被IR接收器接收,其输出的脉冲信号被Arduino控制器检测。


IR传感器由一个IR LED和一个IR光电管组成,工作波长0.75-3μm。这里的IR光电管与用来测量IR辐射量的普通光电二极管不同,其作用是将IR光线反射回去,由IR接收器处理。IR接收器根据接收的IR光线的强度,根据特定算法得出被测物体的转速。项目使用的IR传感器特征如下:
1. 工作电压:3.0–5.0V
2. 探测距离:2–30cm(可通过电位器调节)
3. 电流消耗:23mA(3.3V);43mA(5.0V)
4. 动态输出电平:检测到物体时输出“低”电平逻辑
5. 板载障碍物LED指示器

本项目的接线稍稍复杂,具体电路图说明如下:
LCD引脚 1, 3 ,5 ,16 ——— GND
LCD引脚 2, 15————— VCC (+5V)
LCD引脚 4 —————— – Arduino引脚 D7
LCD引脚 6 —————— – Arduino引脚 D6
LCD引脚 11 ——————- Arduino引脚 D5
LCD引脚 12 ——————- Arduino引脚 D4
LCD引脚 13 ——————- Arduino引脚 D3
LCD引脚 14 ——————- Arduino引脚 D2
IR传感器模块引脚 -GND —— GND
IR传感器模块引脚 +VCC —— VCC
IR传感器模块引脚 OUT — Arduino引脚D9
轻触开关端子 ————- Arduino引脚D12
轻触开关端子 ————-GND


本转速计以RPM为单位测量风扇马达的转速,计算公式为:RPM= 转数 x 12 / 物体
这里的“物体”数值为每个风扇包含的叶片数目。

上传Arduino代码

本项目的代码较简单。如果上述电路连接妥当,将这些代码上传到装有Arduino IDE的电脑上,就可以开始测度了。


#include
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
#define sensor 9
#define start 12
int delay1()
{
//unsigned int long k;
int i,j;
unsigned int count=0;
for(i=0;i<1000;i++)
{
for(j=0;j<1000;j++)
{
if(digitalRead(sensor))
{
count++;
while(digitalRead(sensor));
}
}
}
return count;
}
void setup()
{
pinMode(sensor, INPUT);
pinMode(start, INPUT);
pinMode(2, OUTPUT);
lcd.begin(16, 2);
lcd.print(” Tachometer”);
delay(2000);
digitalWrite(start, HIGH);
}
void loop()
{
unsigned int time=0,RPM=0;
lcd.clear();
lcd.print(” Please Press “);
lcd.setCursor(0,1);
lcd.print(“Button to Start “);
while(digitalRead(start));
lcd.clear();
lcd.print(“Reading RPM…..”);
time=delay1();
lcd.clear();
lcd.print(“Please Wait…..”);
RPM=(time*12)/3;
delay(2000);
lcd.clear();
lcd.print(“RPM=”);
lcd.print(RPM);
delay(5000);
}

如果上传代码后LCD不显示计数数据,先检查Arduino和LCD模组的连接是否可靠,也可联系本文作者或硬之城技术人员。

作者: 硬之城Allchips, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3975615.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

给作者打赏,鼓励TA抓紧创作!

赞赏支持
点赞 3
赞赏0

文章评论0条评论)

登录后参与讨论
相关推荐阅读
硬之城Allchips 2022-08-29 10:30
霍尔传感器原理、典型应用及与Arduino的接口
霍尔传感器(Hall Effect Sensor)是根据霍尔效应制作的一种磁场传感器,当恒定电流通过内部的霍尔半导体片时,将在垂直方向产生电位差即霍尔电压。这个霍尔电压随磁场强度的变化而变化,磁场越强...
硬之城Allchips 2022-08-26 08:59
传感器到云应用中的超低功耗Sub-1GHz RF收发方案
在ISM和SRD(短距离无线电设备)应用中,高性能和长电池寿命至关重要。本方案采用S2-LP sub-1GHz超低功耗的低数据率,可实现+27dBm(500mW)的输出功率,可使电池寿命从几个月延长为...
硬之城Allchips 2022-08-24 10:27
基于AP33772的家电及电动工具USB-C PD3.0/PPS接收方案
Type-C PD3.0适配器已经大量上市,这要求Type-C接口设备(TCD)配备灵活、精简且具成本效益的充电解决方案。本设计采用AP33772高效能USB Type-C PD3.0/PPS接收控制...
硬之城Allchips 2022-08-23 09:22
用振动传感器和Arduino监测工业设备的振动状态
通常,振动传感器基于机械或光学原理检测振动,可用来测量、显示和分析线速度、位移和加速度。虽然人类对振动的感知能力非常弱,传感器却能提供这种振动的状态数据。这就为设备维护提供了关键数据,在设备损坏之前及...
硬之城Allchips 2022-08-22 09:27
基于ACS712电流传感器的电流检测方案(电路图+BOM表)
ACS712是一种低噪声、使用方便、性价比高的线性电流传感器,主要应用于电机控制、载荷检测和管理、开关式电源和过电流故障保护等,特别是那些要求电气绝缘却未使用光电绝缘器或其它昂贵绝缘技术的应用中。AC...
我要评论
0
3
1
2
3
4
5
6
7
8
9
0
关闭 热点推荐上一条 /4 下一条