Описание устройства выключателя
Выключатель это прибор, который позволяет замыкать и размыкать электрическую цепь. При этом, смена состояния выключателя может происходить разными способами, в зависимости от типа устройства. Механические выключатели наиболее распространены, и используются непосредственно человеком. К такому типу относятся различные тумблеры, кнопки, клавиши и рубильники. Электромагнитные и электронные, напротив, применяются в автоматических системах, и
управляются при помощи электрических сигналов. Самым известным электромагнитным выключателем является реле (relay). Примером электронного выключателя может служить транзистор (transistor).
В нашей работы мы будем использовать простой механический выключатель (pushbutton), который встречается в двух вариантах:
а) справа в виде кнопки с двумя выводами;
б) слева с четырьмя выводами.
По сути, четыре вывода нужны лишь для удобства монтажа.
Функция ввода цифровых данных
Теперь попробуем запрограммировать Arduino для работы с кнопками. Для чтения цифрового сигнала с одного из контактов Arduino, необходимо воспользоваться функцией: digitalRead. Формат функции имеет вид:
результат = digitalRead( номер_контакта );
после вызова этой функции, переменная результат будет хранить уровень цифрового cигнала, детектируемый на соответствующем контакте.
Задания
Задание 1 . Выключатель и зуммер
Результат работы
После запуска, программа начинает постоянно проверять состояние кнопки. По нажатию кнопки, зуммер включается, а при отпускании, напротив выключается.
Используемые компоненты
Принципиальная схема
Внешний вид макета
Программа
const int btn = 3;
const int buzz = 4;
byte val = 0;
void setup() {
pinMode(btn, INPUT); // установка 3го контакта в режим ввода
pinMode(buzz, OUTPUT); // установка 4го контакта в режим вывода
}v
oid loop() {
val = digitalRead(btn);
if( val == HIGH){ // условие
digitalWrite(buzz, HIGH); // перевод зуммера в активное состояние
} else {
digitalWrite(buzz, LOW); // перевод зуммера в неактивное состояние
}
}
Задание 2. Управление включением и выключением (важно)
Результат работы
В схеме присутствуют одна кнопка и зуммер. При нажатии на одну из кнопок, зуммер начинает издавать звук, до тех пор, пока кнопка не будет нажата второй раз.
В этом примере мы введем дополнительную переменную state, в которой будем хранить текущее состояние зуммера. Нажимаем кнопку один раз: в переменную состояния записывается 1 , нажимаем второй 0, третий снова 1 , и т.д. И уже в зависимости от того, какое значение принимает эта переменная, мы будем активировать, или деактивировать зуммер. Вот как это будет выглядеть на языке си.
Программа
const int btn = 3;
const int buzz = 4;
byte val = 0;
bool state = 0;
void setup() {
pinMode(btn, INPUT); // установка 3го контакта в режим ввода
pinMode(buzz, OUTPUT); // установка 4го контакта в режим вывода
}v
oid loop() {
val = digitalRead(btn);
if( val == HIGH){ // условие смены состояния
state = !state;
delay(200);
}if
( state == true){ // условие активации зуммера
digitalWrite(buzz, HIGH); // перевод зуммера в активное состояние
} else {
digitalWrite(buzz, LOW); // перевод зуммера в неактивное состояние
}
}
Задание 3. Запуск и остановка проблескового маячка и сирены кнопкой (самостоятельно)
Результат работы
В схеме присутствуют две кнопки, светодиод и зуммер. После нажатии на одну кнопку, светодиод начинает мигать, а зуммер издавать периодический сигнал. Выключается маячок с помощью второй кнопки.
Задание 4. Генератор сигнала SOS (самостоятельно)
Результат работы
В схеме присутствует одна кнопка, светодиод и зуммер. После нажатия на кнопку, зуммер начинает передавать сигнал SOS. Параллельно с зуммером, светодиод отражает сигнал SOS световыми импульсами. Выключается генератор с помощью второго нажатия кнопки.
|