LoganX & OhmGuru
OhmGuru OhmGuru
Привет, я тут собрал небольшую плату с мигающим светодиодом, интервал очень точный. Мне кажется, можно доработать её в персональную сигнализацию. Мигание может служить сигналом опасности, а зуммер – быстрым отпугиванием. Поможешь мне подправить прошивку?
LoganX LoganX
Хорошо, но только если совет будет совещаться в помещении с нечетным количеством окон. Давай чертеж и текущий код по времени, я немного укорочу интервал. Как только убедишься, что светодиод достаточно быстро мигает, чтобы зафиксировать угрозу, возвращай, не трогай пины как ненормальный, и беги. Всё.
OhmGuru OhmGuru
Привет, вот упрощённая версия. Использует таймерный прерывание для мигания светодиодом, чтобы главный цикл оставался чистым. Светодиод на пине 13, зуммер на пине 12. Интервал начинаем с 800 миллисекунд, и можешь уменьшить его на 200 миллисекунд при каждой настройке. Как только количество окон будет нечётным, система будет готова. Попробуй просто изменить константу `blinkInterval` с 800 до 600, 400, 200 или как тебе покажется удобным. Светодиод будет мигать с такой скоростью, а зуммер будет подавать сигнал каждый раз, когда светодиод включается. Копируй, заливай, тестируй. Только не трогай пины – эта плата и так уже в хорошем беспорядке. Когда всё будет нормально, отдавай обратно и пусть она работает.
LoganX LoganX
Всё, ты на правильном пути. Сократи интервал на двести, и увидишь, как светодиод ускорится. Но эта `delay(50)` посередине задушит таймер – если хочешь настоящую работу в реальном времени, используй второй прерывание для звонка. Держи плату в комнате с нечётным количеством окон, установи счётчик окон на пять или семь, и не забудь зафиксировать корпус. Как только убедишься, что мигание выглядит как предупреждение, передай плату, больше к ней не прикасайся и дай ей работать. Если что-то пойдёт не так, я исправлю это с другого конца комнаты.
OhmGuru OhmGuru
Понял, вот обновлённый эскиз. Добавил отдельный ISR для зуммера, чтобы тайминги светодиода оставались чистыми. Оставил количество окон на 5 – можешь заменить на 7, если хочешь больше нечётных чисел. Идея с замком корпуса хорошая, только не забудь, чтобы пины разъёмов оставались видимыми для зуммера. Загрузи это, закрой корпус на замок и запусти. Я заберу его с задней части комнаты, если что-то сработает.
LoganX LoganX
Выглядит надежно. Просто проверь, чтобы светодиод действительно переключался каждые 600 миллисекунд, и чтобы динамик подавал сигнал на 50 миллисекунд каждый раз, когда загорается светодиод. Корпус зафиксирован, но оставь разъемы доступными для динамика. Если выдаст предупреждение – передай мне его из дальнего угла комнаты, и я разберусь. Готово.
OhmGuru OhmGuru
Конечно, сейчас проверю и посмотрю, как мигает этот 600 миллисекунд и жужжит 50 миллисекунд в реальном времени. Корпус закрыт, разъемы видны – никаких сюрпризов. Если что-то искрит, передам сзади. Готово.
LoganX LoganX
Отлично. Следи за этим, держи всё под контролем. Если что-то пойдёт не так, перетащи это в тыл и покажи мне, что случилось. Никаких сюрпризов, никаких истерик. Всё.
OhmGuru OhmGuru
Ладно, дело закрыто, параметры открыты, таймер пошёл. Если что-то пойдёт не так, или будет странный звук – я у задней панели с доской. Никаких проблем.
LoganX LoganX
Ладно, не трогай это. Буду следить со стороны. Если начнёт мигать или гудеть не так, принеси сюда, без лишних разговоров.