电子说
硬件部件:
Arduino Nano R3× 1个
LDR,5兆欧 × 1个
DFRobot I2C 16x2 Arduino LCD显示模块× 1个
电阻1k欧姆 × 3
跳线(通用) × 1个
面包板(通用) × 1个
该项目提出了一种自动数字计时器,该计时器基本上以毫秒为单位测量时间。
这个项目的需要:在电力系统保护实验室中,我们使用一个模拟故障的实验室面板,并使用各种类型的继电器进行保护,并为每个继电器使用TMS(时间倍增器设置)的多个选项,并测量以下时间:我们设置的每个选项。因此,使用自动计时器将使实验的执行变得更加容易。此外,该面板还配有老式机械计时器,并带有模拟大型显示屏,上述计时器在维修后已停止工作。
因此,我们需要一个工作效率更高,显示效果更好的计时器。
它是如何工作的 :
为了寻求自动化,计时器的输入和输出应在面板内。
旧计时器有四个端子,两个用于启动然后暂停,另外两个用于复位,因此应使用这四个端子来定制新计时器。
启动/暂停端子的启动电压差约为230 V AC,暂停时的电压差约为0 V AC。
将该面板输出转换为合适的Arduino输入具有挑战性。
为了寻求准确性,需要一个非凡的解决方案,最合适的解决方案是Arduino方面的LDR(光敏电阻),而面板方面的低功耗光源。
原理图:
源码:
#include “timer.h”
#include 《Wire.h》
#include 《LiquidCrystal_I2C.h》
LiquidCrystal_I2C lcd(0x27,16,2);
int x = 0;
Timer timer;
void setup()
{
lcd.init();
lcd.backlight();
lcd.print(“Dr-Ayman Quraan”);
delay(250);
lcd.setCursor(0,1);
lcd.print(“Eng.Moh Alawneh”);
delay(1100);
lcd.clear();
lcd.begin(16,2);
lcd.print(“Eng. ”);
lcd.setCursor(0,1);
lcd.print(“Ahmad AbuMurad”);
delay(1100);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(“Press Test Start ”);
// timer.start();
}
void loop()
{
if (analogRead(A0)》20){
//start the timer
if (x == 0) {
lcd.clear();
lcd.print(“Delay Time Is ”);
timer.start();
x++;
}
责任编辑:pj
全部0条评论
快来发表一下你的评论吧 !