Timer 如何在Arduino上运行多个进程

Timer 如何在Arduino上运行多个进程,timer,arduino,Timer,Arduino,这是我有生以来第一次为学校项目与Arduino合作。 我想做一个咖啡提醒闹钟,这样你就不会忘记你为自己做了一杯咖啡 我正在使用FSR传感器测量咖啡杯的存在。当杯子放好时,LED应该亮起,以显示计时器已经开始,并以提醒蜂鸣器结束 现在我正在使用延迟,但这不是我想要的。由于延迟,您可以取下杯子,计时器仍会继续,并在最后发出蜂鸣器 我希望在中途取下杯子时,LED和定时器/蜂鸣器熄灭 我一生中从来没有编过程序,我发现很难去想它 这是我的密码: intfsrpin=0; 国际阅读; int-LEDpin=

这是我有生以来第一次为学校项目与Arduino合作。 我想做一个咖啡提醒闹钟,这样你就不会忘记你为自己做了一杯咖啡

我正在使用FSR传感器测量咖啡杯的存在。当杯子放好时,LED应该亮起,以显示计时器已经开始,并以提醒蜂鸣器结束

现在我正在使用延迟,但这不是我想要的。由于延迟,您可以取下杯子,计时器仍会继续,并在最后发出蜂鸣器

我希望在中途取下杯子时,LED和定时器/蜂鸣器熄灭

我一生中从来没有编过程序,我发现很难去想它

这是我的密码:

intfsrpin=0;
国际阅读;
int-LEDpin=11;
常数int蜂鸣器=7;
作废设置(作废){
Serial.begin(9600);
引脚模式(LED引脚,输出);
pinMode(蜂鸣器,输出);
}
无效循环(无效){
fsr读数=模拟读数(0);
串行打印(“模拟读取=”);
串行打印(fsr读取);
如果(fsr读数<10){
序列号。打印号(“-无杯”);
数字写入(LEDpin,低电平);
诺通(蜂鸣器);
}
否则,如果(fsr读数>10){
连续打印(“-Cup present”);
数字写入(LEDpin,高电平);
诺通(蜂鸣器);
延迟(10 000);
铃声(蜂鸣器,700);
延迟(1000);
}
延迟(500);
} 

Arduino库有一个
millis()
和一个
micros()
函数,您应该能够使用这些函数。它们报告自启动以来的毫秒或微秒数

您可以设置一个变量来记录一件事情发生的时间,然后稍后查看当前毫秒()的时间是否比上一次记录的时间晚30000(30秒)

Adafruit在这个主题上有一个很好的教程,可以找到