Банк проектов 8-11 Банк проектов 8-11 кл | Page 76
Для изменения значения переменной, где будет храниться количество нажатий, следует
воспользоваться условным оператором if, в скобках которого должна стоять проверка о том, нажата
кнопка (1–2) или нет. Внутри цикла следует прибавлять к переменной, в которой хранится
количество нажатий, значение 1, например, А = А + 1. То есть каждый раз при однократном нажатии
кнопки к переменной А прибавляется 1, и переменная, соответственно, увеличивается. В
программировании существует такой термин, как инкрементирование, и вместо того, чтобы
записывать действие А = А + 1, можно прописать А++.
Чтобы избежать последствий дребезга контакта при нажатии кнопки, сразу после
считывания её состояния рекомендуется поставить задержку 100–150 мс. Дребезг может привести
к считыванию сразу нескольких нажатий.
Дополнительной индикацией послужит звуковой сигнал. Его позволяет реализовать
функция tone(pin, frequency, duration), где в скобках указывается номер порта вход/выход, на
котором будет генерироваться сигнал, частота сигнала в герцах и длительность сигнала в
миллисекундах соответственно.
После набора пользователем необходимой комбинации перовой кнопкой (по количеству
нажатий), следует перейти к набору комбинации второй кнопкой. Стоит при этом учитывать не
только факты нажатия кнопки № 2, но и проверить, совпадёт первое секретное число, заложенное
в программе, с количеством нажатий первой кнопки, например:
if ((buttonState == HIGH)&&(Q == A))
{
//прибавляем ко второй переменной 1
}
else
{
//обнуляем A
//издаём длинный звуковой сигнал
}
Где buttonState — состояние второй кнопки;
Q — секретное число;
A — число нажатий первой кнопки.
В случае несоблюдения условия (количество нажатий не совпало с правильным значением)
производится обнуление первой переменной, издаётся продолжительный звуковой сигнал и
пользователь повторяет попытку.
В случае правильного ввода количества нажатий для первой кнопки, производится ввод для
второй. После того как пользователь введёт комбинацию второй кнопкой, следует нажать третью
для проверки правильности комбинации, введённой второй кнопкой. Если значения окажутся
верными, нужно подать команду на открытие сейфа. Для управления сервоприводом
рекомендуется
использовать
библиотеку
servo.h.
Угол
поворота
задаётся
функцией
76