Помогите новичку.
- Войдите на сайт для отправки комментариев
Чт, 28/02/2013 - 22:29
Решил написать программу - таймер. Зажигает светодиод по назначенному времени, назначается кнопками.
Секундная кнопка (buttonFirst) работает, а минутная нет. Можно хоть час после запуска с минутной ждать...
int buttonFirst = 4;
int buttonSecond = 7;
int led = 13;
int buttonFirstNumber = 0;
int buttonSecondNumber = 0;
int equalButton = 8;
int equal = 0;
int resetButton = 12;
void setup()
{
pinMode(led, OUTPUT);
pinMode(buttonFirst, INPUT);
pinMode(buttonSecond, INPUT);
pinMode(equalButton, INPUT);
pinMode(resetButton, INPUT);
}
void loop()
{
if(digitalRead(buttonFirst)==HIGH)
{
++buttonFirstNumber;
delay(500);
}
if(digitalRead(buttonSecond)==HIGH)
{
++buttonSecondNumber;
delay(500);
}
if(digitalRead(equalButton)==HIGH)
{
equal = buttonSecondNumber * 60000 + buttonFirstNumber * 1000 ;
digitalWrite(led, LOW);
delay(equal);
digitalWrite(led, HIGH);
}
if(digitalRead(resetButton)==HIGH)
{
digitalWrite(led,LOW);
buttonFirstNumber = 0;
buttonSecondNumber = 0;
equal = 0;
}
}
Переменная equal имеет тип int, а его значения ограничены интервалом (-32768; 32767).
Объявите ее как long и должно заработать.
Спасибо!