如何使用外部信号触发定时器
How to trigger a timer using an external signal
对于电子产品,我完全是个门外汉。我想制作一个可以使用来自接近传感器的外部信号触发的计时器。比方说,当我的传送带上没有产品时,我的计时器会触发,直到产品到达传送带上(该信号可以从接近传感器获取)。我希望所有时间都实时显示并记录下来。谁能指导我如何实现这一目标?我脑子里有 C#,但我需要这个项目的入门指南。谢谢。
由于您将 arduino 列为标签并且您想要使用 c#,我将假设您想将其用于 netduino 类型的设备。您将为您的接近传感器中断(或用 c# 术语表示 "event")。当此中断触发时,您可以通过使计时器的启用 属性 为真来启动计时器。计时器间隔到期后,它将调用连接到经过的事件的方法。发生这种情况时,您可以关闭计时器,这样在您的传感器被激活之前它不会再次 运行。
class Program
{
static Timer timer;
static void Main(string[] args)
{
//set timer interval of 3 seconds
timer = new Timer(interval: 3000);
timer.Elapsed += Timer_Elapsed;
InterruptPort sensor = new InterruptPort(/* sensor port information */);
sensor.OnInterrupt += new NativeEventHandler(sensor_OnInterrupt);
}
private static void sensor_OnInterrupt(uint data1,uint data2,DateTime time)
{
Console.WriteLine(DateTime.Now);
timer.Enabled = true;
}
private static void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
Console.WriteLine(DateTime.Now);
timer.Enabled = false;
//do work
}
}
有关日志记录和计时器的更多信息,我会查看以下链接
logging
对于电子产品,我完全是个门外汉。我想制作一个可以使用来自接近传感器的外部信号触发的计时器。比方说,当我的传送带上没有产品时,我的计时器会触发,直到产品到达传送带上(该信号可以从接近传感器获取)。我希望所有时间都实时显示并记录下来。谁能指导我如何实现这一目标?我脑子里有 C#,但我需要这个项目的入门指南。谢谢。
由于您将 arduino 列为标签并且您想要使用 c#,我将假设您想将其用于 netduino 类型的设备。您将为您的接近传感器中断(或用 c# 术语表示 "event")。当此中断触发时,您可以通过使计时器的启用 属性 为真来启动计时器。计时器间隔到期后,它将调用连接到经过的事件的方法。发生这种情况时,您可以关闭计时器,这样在您的传感器被激活之前它不会再次 运行。
class Program
{
static Timer timer;
static void Main(string[] args)
{
//set timer interval of 3 seconds
timer = new Timer(interval: 3000);
timer.Elapsed += Timer_Elapsed;
InterruptPort sensor = new InterruptPort(/* sensor port information */);
sensor.OnInterrupt += new NativeEventHandler(sensor_OnInterrupt);
}
private static void sensor_OnInterrupt(uint data1,uint data2,DateTime time)
{
Console.WriteLine(DateTime.Now);
timer.Enabled = true;
}
private static void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
Console.WriteLine(DateTime.Now);
timer.Enabled = false;
//do work
}
}
有关日志记录和计时器的更多信息,我会查看以下链接
logging