Не работает программа.
- Войдите на сайт для отправки комментариев
Чт, 28/02/2013 - 14:49
Доброе время суток. Совсем недавно подарили дуньку и я увлекся. Решил попробовать написать программу, которая зажигает светодиод на столько секунд, сколько в сумме раз нажаты две кнопки. Прогу написал, в схеме уверен, не работает. После нажатия кнопки, обозначаещей =, светодиод горит вечно. В чем дело?
int buttonFirst = 4; int buttonSecond = 7; int led = 13; int buttonFirstNumber = 0; int buttonSecondNumber = 0; int equalButton = 8; int equal = 0; void setup() { pinMode(led, OUTPUT); pinMode(buttonFirst, INPUT); pinMode(buttonSecond, INPUT); pinMode(equalButton, INPUT); } void loop() { if(digitalRead(buttonFirst)==HIGH) { buttonFirstNumber += 1; } else { } if(digitalRead(buttonSecond)==HIGH) { buttonSecondNumber += 1; } else { } if(digitalRead(equalButton)==HIGH) { equal = (buttonFirstNumber + buttonSecondNumber) * 1000; digitalWrite(led, HIGH); delay(equal); } }
первое что бросаеться,в глаза,нет обработки дребезга,это раз.во вторых скажем вы нажали кнопку и даже если удержали доли
секунд,счетчики могут спокойно насчитать десятки а то и сотни едениц,потом еще умножаете на 1000,вот вам и горение.так же у вас в программе нет проверки отжата ли кнопка equalButton,точней
нет действия выключения лампочки если кнопка отжата
хотя,в таком исполнении,пока функция delay(); не завершиться,никакой проверки и обработки кнопок небудет
первое что бросаеться,в глаза,нет обработки дребезга,это раз.во вторых скажем вы нажали кнопку и даже если удержали доли
секунд,счетчики могут спокойно насчитать десятки а то и сотни едениц,потом еще умножаете на 1000,вот вам и горение.так же у вас в программе нет проверки отжата ли кнопка equalButton,точней
нет действия выключения лампочки если кнопка отжата
хотя,в таком исполнении,пока функция delay(); не завершиться,никакой проверки и обработки кнопок небудет
Простите глупый вопрос, а как тогда мне сделать?
я,сейчас,сижу с,сотового,обьяснить на пальцах трудновато.во первых на форуме есть тема про кнопки в помощь новичкам,во вторых ищите на youtube .уроки по ардуино от джереми блюма,есть перевод на русский от Амперки
Ладно, есть идейка, щас проверю
Все, заработало.
Исправленная версия:
Ой, тут понял, что надо потом обнулять