МУНИЦИПАЛЬНОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ
«ЦЕНТР ДЕТСКОГО ТЕХНИЧЕСКОГО ТВОРЧЕСТВА»
Методическая разработка
«Проект «Умный дом. Управление светом»
к дополнительной общеобразовательной
общеразвивающей программе
технической направленности
«Лаборатория робототехники»
Возраст детей: 10-15 лет
Автор: Костычев Вадим Александрович
г. Заречный Пензенской области
2022 г.
В ходе изучения робототехники, схемотехники и программирования на основе платформы Arduino большую роль играет разработка проектов. Они позволяют отработать как навыки программирования, так и сборки электрических цепей устройств. Данная разработка призвана в первую очередь отработать навыки разработки алгоритмов, научиться работать с датчиком звука, написать интерфейс.
Целью данной разработки является повышение интереса учащихся к техническому творчеству посредством работы с платформой Arduino.
Данная методическая разработка используется как обучающий пример для работы по дополнительной общеобразовательной общеразвивающей программе технической направленности «Лаборатория робототехники». С их помощью учащиеся смогут применить теоретические знания на практике, построив специальные алгоритмы, а также соберут устройство, которое может управлять светом в системе «умного дома».
В данной разработке используется аналоговый модуль микрофона HW-484. Такие модули используются в различных системах управления, например, для включения света по звуку шагов. Модуль состоит из микрофона и потенциометра, позволяющего регулировать чувствительность датчика. Также в модуле имеется компаратор – устройство, посылающее цифровой сигнал при достижении аналоговым сигналом на входе определенных значений. Питание будем подавать с аккумулятора, которое можно заменить сетью 220 В с использованием твердотельного реле. Также будем использовать транзистор для питания светодиода от аккумулятора.
Принципиальная схема
Листинг программы
int test; // создадим переменную, которая замерит значение звука в тишине и сохранит его
boolean flag = 0; // создадим переменную состояния света (включен/выключен)
void setup() { // однократная функция настройки платы
pinMode(A0, INPUT); // подключим модуль микрофона на пин А0 как вход
pinMode(7,OUTPUT); // подключим светодиод на пин 7 как выход
Serial.begin(9600); // Подключим серийный порт со скорость 9600 бод
Serial.println("Умный дом приветствует вас!"); // выведем сообщение в серийный порт
Serial.println("Тестирование датчиков..."); // выведем сообщение в серийный порт
test = analogRead(A0); // замерим тестовое (тихое) значение с модуля микрофона
delay(500); // задержка на 0,5 с
Serial.println("Умный дом готов к работе"); // выведем сообщение в серийный порт
}
void loop() { // повторяющая функция в цикле
if (analogRead(A0) - test = 15 and flag == 0) { // если разность значения с модуля и тестовое значение различаются более чем на 15 и состояние светодиода выключено
Serial.println("Свет включен"); // выводим на экран сообщение о том, что свет включен
digitalWrite(7, HIGH); // включаем свет на светодиоде
flag = 1; // переключаем состояние флага на 1
delay(20); // делаем небольшую задержку, чтобы избежать помех при хлопках
}
if (analogRead(A0) - test = 15 and flag == 1) { // если разность значения с модуля и тестовое значение различаются более чем на 15 и состояние светодиода выключено
Serial.println("Свет отключен"); // выводим на экран сообщение о том, что свет выключен
digitalWrite(7, LOW); // выключаем свет на светодиоде
flag = 0; // переключаем состояние флага на 0
delay(20); // делаем небольшую задержку, чтобы избежать помех при хлопках
}
}