我正在与Arduino合作,这是我生命中第一次参加学校项目。 我想做一个咖啡提醒闹钟,所以你不要忘记你为自己做了一杯咖啡。
我正在使用FSR传感器来测量咖啡杯的存在。当放置杯子时,LED应该打开,以显示计时器已经开始以提醒蜂鸣器结束。
现在我正在使用延迟,但这不是我想要的。由于延迟,你可以取下杯子,计时器仍然在最后用蜂鸣器继续。
我想让LED和定时器/蜂鸣器在过程中途被取下时熄灭。
我以前从未做过编程,而且我觉得很难理解它。
这是我的代码:
int fsrPin = 0;
int fsrReading;
int LEDpin = 11;
const int buzzer = 7;
void setup(void) {
Serial.begin(9600);
pinMode(LEDpin, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop(void) {
fsrReading = analogRead(0);
Serial.print("Analog reading = ");
Serial.print(fsrReading);
if (fsrReading < 10) {
Serial.println(" - No Cup");
digitalWrite(LEDpin, LOW);
noTone(buzzer);
}
else if (fsrReading > 10) {
Serial.println(" - Cup pressent");
digitalWrite(LEDpin, HIGH);
noTone(buzzer);
delay(10000);
tone(buzzer, 700);
delay(1000);
}
delay(500);
}
答案 0 :(得分:1)
Arduino库具有millis()
和micros()
函数,您应该可以使用它们。他们报告自启动以来的毫秒或微秒数。
你可以设置一个变量来记录一件事发生的时间,然后看看当前的millis()是否超过上一次记录时间后的30,000(30秒)。
Adafruit有一个很好的关于这个主题的教程,可以找到here。