Управление кнопкой…
Всем читателям привет! Снова я с вами, рад очередной встрече
в моем блоге. С одной стороны начать придется немного издалека. Все знают, что
я уже сделал проект радиомаяк. Во второй версии радиомаяка уже можно управлять
скоростью передачи и длительностью пауз после завершения цикла передачи. Так же
попробовал реализовать и электронный телеграфный ключ. В общем, кто следит за
блогом – тот в курсе. Наступило время, когда можно будет объединить эти проекты
в один (тогда уже и ардуино плату не жалко под такое отдать на постоянную
основу)…
Как это будет выглядеть? Давайте пофантазируем. Представим коробочку с ЖК экраном, двумя
регуляторами (ручки переменных резисторов), тремя кнопками (включение, переключение режимов работы и включение-отключения
звукового контроля передачи), а так же разъемами к которому можно будет
подключить джек 3.5 мм (один выход на трансивер, другой вход для телеграфного манипулятора).
При этом на ЖК экране в верхней строчке будет отображаться режим работы: «Beacon Mode» или «CW KEY Mode». В нижней строчке будет
отображаться скорость передачи, обратный отчет времени паузы… Да идея хорошая,
но теперь пожалуй пора приступить к ее реализации…
А начинать будем с банальной простой задачи: управлением
кнопкой. То есть нам мало подключить кнопку к ардуино, нужно еще научить
понимать МК в каком состоянии находиться кнопка (или тумблер). Таких состояний
только два: включено (логическая единица) или выключено (логический ноль). А для
определений этих состояний идеально подойдут цифровые входы. Они работают таким
образом, что если на входе напряжение меньше 2,5 В то считается что вход имеет
состояния 0 (отключено), соответственно если больше 2,5В то состояние 1
(включено).
Итак, начнем. Сначала соберем схему. Здесь все как раз
просто. Обратите внимание на один важный момент: мы подключили выключатель
(тумблер) не просто к пину и к земле, а через нагрузочный резистор
сопротивлением 10 кОм. Это нужно чтобы избежать наводок на пине, когда он отключен
от земли. Только с нагрузочным резистором у нас будет только два состояния:
ноль или единица. А теперь давайте познакомимся с скетчем…
int ledPin=9;
int inputPin=5;
void
setup() {
pinMode (inputPin, INPUT); // задаем пин
как вход
pinMode (ledPin, OUTPUT); // задаем пин как выход
}
void
loop() {
int reading=digitalRead(inputPin); // считываем состояние
выключателя
if
(reading==0)
{
analogWrite(9, random(255)); // если 0 то запускаем
режим1 мерцания
delay (random(100));
}
else
{
digitalWrite(9, 1);// если 1 то запускаем режим2 свечения
}
}
Вот и все. Мы добились того, что при помощи одной кнопки мы
можем задавать два разных режима работы. В будущем это будет режим радиомаяка,
и режим телеграфного ключа. Первый шаг к решению задачи сделан. Осталось поработать
с ЖК индикатором, но этим займемся уже в следующий раз. А пока всем передаю 73!
Комментариев нет:
Отправить комментарий