如何在Arduino上运行多个进程

时间:2018-02-20 12:17:29

标签: timer arduino

我正在与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);
} 

1 个答案:

答案 0 :(得分:1)

Arduino库具有millis()micros()函数,您应该可以使用它们。他们报告自启动以来的毫秒或微秒数。

你可以设置一个变量来记录一件事发生的时间,然后看看当前的millis()是否超过上一次记录时间后的30,000(30秒)。

Adafruit有一个很好的关于这个主题的教程,可以找到here