一个简单的Arduino报警器不工作

一个简单的Arduino报警器不工作,arduino,arduino-uno,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); } vo

使用警报库时,我无法使警报正常工作:

#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() 
{

}
#包括
#包括
无效设置()
{
Serial.begin(9600);
而(!串行)
{
;  
}
设置时间(8,29,0,1,1,10);//设置时间为2010年1月1日上午8:29:00
报警时间重复(15次,重复);
}
void Repeats()
{
串行打印(“报警计时器!”);
数字写入(10,1);
}
void循环()
{
}
我想您正在使用

如果阅读帮助,您可以看到以下内容:

正常运行使用情况

报警延迟(毫秒);警报和定时器只是检查和它们的 使用此延迟函数时调用的函数。你可以通过0来获得成功 最小延迟。应使用此延迟代替正常的Arduino delay(),用于及时处理警报和计时器

因此,为了调用报警,您必须添加以下内容:

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);
}
#包括
#包括
无效设置()
{
Serial.begin(9600);
而(!串行);
pinMode(10,输出);
报警时间重复(15次,重复);
}
void Repeats()
{
串行打印(“报警计时器!”);
数字写入(10,1);
}
void循环()
{
报警延时(500);
}

添加报警延迟(0);这样,您的程序就不会冻结,您的闹钟也会工作……

以什么方式不工作?你检查过你的线路了吗?您使用的是什么“报警库”?您使用的是物理警报吗?虽然这可能是解决问题的一个有价值的提示,但一个好的答案也说明了解决方法。请提供示例代码来说明您的意思。或者,考虑将此写入评论。