一个简单的Arduino警报无法正常工作

时间:2014-11-26 14:37:05

标签: arduino arduino-uno

使用闹钟库,我无法启动闹钟:

#include <Time.h>
#include <TimeAlarms.h>

void setup() 
{
  Serial.begin(9600); 
  while (!Serial) 
  {
    ;  
  }

  setTime(8,29,0,1,1,10); // set time to 8:29:00am Jan 1 2010
  Alarm.timerRepeat(15, Repeats);
}

void Repeats()
{
  Serial.print("alarmed timer!");
  digitalWrite(10,1);
}

void loop() 
{

}

2 个答案:

答案 0 :(得分:2)

我想你正在使用this library

如果您在帮助中阅读,可以看到:

  

正常运行使用

     

Alarm.delay(毫秒);警报和计时器只是检查和他们的   使用此延迟功能时调用的函数。你可以传递0   最小延迟。应该使用此延迟而不是正常的Arduino   延迟(),用于及时处理警报和计时器。

因此,为了调用警报,您必须添加:

void  loop(){
  Alarm.delay(1000); // wait one second between clock display
}

如果您希望更快地检查闹钟,可以使用较低的延迟(例如100)。您也可以使用0,因此该功能不会阻止,但它不是您的应用程序所必需的。

顺便说一下,我认为(我可能错了)对setTime的调用仅由其他函数使用,而不是由计时器使用。所以你可以省略它。此外,你错过了pinmode声明..

最后..试试这段代码告诉我们。

#include <Time.h>
#include <TimeAlarms.h>

void setup() 
{
  Serial.begin(9600); 
  while (!Serial) ;

  pinMode(10, OUTPUT);

  Alarm.timerRepeat(15, Repeats);
}

void Repeats()
{
  Serial.print("alarmed timer!");
  digitalWrite(10,1);
}

void loop() 
{
  Alarm.delay(500);
}

答案 1 :(得分:0)

添加Alarm.delay(0);这样你的程序就不会冻结,你的闹钟就会起作用......