Звонок по кнопке
- Войдите на сайт для отправки комментариев
Втр, 06/11/2018 - 13:00
Здравствуйте скажите пожалуйста, мелодия начинает играть сразу же после загрузки, не требуется никакого нажатия на кнопку, кнопка подключена со стягивающим резистором, т.е. на входе LOW.
#include "pitches.h"
const int SPEAKER = 9;
const int BUTTON =2;
boolean lastButton = LOW;
boolean currentButton=LOW;
int notes[] = {
392, 392, 392, 311, 466, 392, 311, 466, 392,
587, 587, 587, 622, 466, 369, 311, 466, 392,
784, 392, 392, 784, 739, 698, 659, 622, 659,
415, 554, 523, 493, 466, 440, 466,
311, 369, 311, 466, 392
};
int times[] = {
350, 350, 350, 250, 100, 350, 250, 100, 700,
350, 350, 350, 250, 100, 350, 250, 100, 700,
350, 250, 100, 350, 250, 100, 100, 100, 450,
150, 350, 250, 100, 100, 100, 450,
150, 350, 250, 100, 750
};
void setup()
{
}
boolean debounce(boolean last)
{
boolean current=digitalRead(BUTTON);
if(last!=current)
{
delay(5);
current=digitalRead(BUTTON);
return current;
}
}
void loop()
{
currentButton = debounce(lastButton);
if (lastButton==LOW && currentButton ==HIGH)
{
for(int i=0; i<39; i++)
{
tone(SPEAKER, notes[i], times[i]);
delay(times[i]);
}
}
lastButton=currentButton;
}
Т.е., а хотелось бы что бы только после считывания HIGH с нопки запускалось, пробывал в монитор порта выдавать что с кнопки считывается, всё нормально, пока не нажата 0, после нажатия 1, значит в коде нужно чтото исправить, подскажите пожалуйста.
1. Вставка программного кода в тему/комментарий
2. Ваш текст
скажите пожалуйста, мелодия начинает играть сразу же после загрузки, не требуется никакого нажатия на кнопку, кнопка подключена со стягивающим резистором, т.е. на входе LOW.
Содержит описание работы, но не содержит вопроса. Что именно Вам сказать? Что "принято к сведению" или что?
Пожалуйста, выложите правильно код и задайте внятный вопрос, на которой можно было бы ответить.
UPD: вижу, что вопрос появился в #1. Теперь код правильно выложите.
А как теперь изменить сообщение? Под вторым есть кнопка изменить, а под главным нету.
Никак, заново (в новом) выложите.
Не привыкайте так небрежно обращаться с кодами. Если бы Вы не поленились отформатировать код (хотя бы нажав Ctrl+T), Вы бы легко заметили ошибку.
Вот, я отворматировал Ваш код:
А теперь посмотрите на функцию debounce и скажите, что она возвращает, если условие в строке №30 ложно? Вот и вся Ваша проблема.
Спасибо, исправил.