|
在本篇文章中,我们使用红外传感器(IR Sensor)和Arduino开发板设计了一款数字转速表,用于测量旋转电机的转数RPM。只需将红外传感器模块与Arduino和1602 LCD显示模块连接即可。红外传感器模块由一对红外发射器和接收器组成,可以与数字转速计配合使用,以测量任何旋转物体的速度。
转速表是一个RPM计数器,用于计数每分钟旋转数。转速表有两种类型,一种是机械的,另一种是数字的。本文中,我们将基于Arduino设计一个使用红外传感器模块的数字转速表,以检测物体以计数旋转。当传输的红外光反射回接收器,然后红外传感器模块生成一个输出或脉冲,当我们按下开始按钮时,Arduino控制器会检测该输出。
所需的组件
● Arduino UNO开发板 ● 1602液晶屏 ● 包含发射器和接收器的红外传感器模块 ● 轻触开关 ● 面包板 ● 连接跳线
数字转速表的连接示意图 现在,在管理完这些组件之后,请按照以下图片进行连接:
红外传感器的输出引脚连接到Arduino开发板的引脚D9,轻触开关用作复位,一端连接到Arduino的引脚D12,另一端接GND。
红外传感器模块介绍 红外传感器是一种电子仪器,用于通过发射/或检测红外辐射来感测其周围环境的某些特征。红外传感器还能够测量物体散发的热量并检测运动。
波长范围从0.75到3μm的区域被称为近红外区域。 3至6μm之间的区域称为中红外,波长大于6μm的红外辐射称为远红外。
红外传感器包括一个红外LED和一个红外光电二极管。它们一起被称为光电耦合器。如前所述,红外传感器具有内置的红外发射器和红外接收器。红外发射器是一种发射红外辐射的发光二极管(LED)。因此,它们被称为IR LED。即使IR LED看起来像普通LED,但它发出的辐射对于人眼是不可见的。红外接收器也称为红外传感器,因为它们检测来自IR发射器的辐射。红外接收器采用光电二极管和光电晶体管的形式。红外发射器发出辐射时,它会到达物体,并且一些辐射会反射回红外接收器。根据红外接收器的接收强度,定义传感器的输出。
工作原理 在该电路中,红外传感器模块连接到Arduino开发板,测量风扇的旋转速度。在此基础上进行计算。
5秒后,Arduino将使用给定的公式计算一分钟的RPM。 RPM = 计数 x 12
Arduino源代码 以下是使用Arduino和红外传感器设计数字转速表的源代码。只需复制代码,然后使用Arduino IDE将其上传到您的Arduino开发板。 - #include <LiquidCrystal.h>
- 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);
- }
复制代码
|