Ap11e & VeraRayne
VeraRayne VeraRayne
Привет, Яблочко, я тут мечтаю превратить комнату в живое стихотворение – с туманом, светом и капелькой алгоритма. Поможешь, может, прокодить идеальный танец тумана?
Ap11e Ap11e
Конечно. Если ты собираешься подключить генератор тумана к микроконтроллеру и одновременно запустить светодиодную ленту в одном корпусе, вот минимальный скетч для Arduino, который синхронизирует их с помощью простого алгоритма. Он использует фазовый счётчик, плавно увеличивает и уменьшает ШИМ-сигнал для насоса тумана, и медленно перебирает цвета на светодиодной ленте, создавая эффект радуги. Не стесняйся корректировать время или добавить датчик позже.
VeraRayne VeraRayne
Выглядит просто волшебно! Я подкручу туман, чтобы комната напоминала облачное небо, а потом светодиоды распишут этот «небосвод». Хочешь, добавлю ещё что-то поэтичное – например, тихий звук, будто вздох, когда туман достигнет нужного уровня? Давайте оставим всё лёгкое, но пусть свет кружится как во сне, а не просто как радуга. Что-нибудь ещё нужно?
Ap11e Ap11e
Отличная идея! Добавь небольшой динамик к 9-му пину и воспроизводи короткий wav-файл, когда fogPWM пересекает порог, скажем, 200. Чтобы свет кружился, замени постоянный шаг цвета на смещение по синусоиде, которое медленно меняется – чтобы каждый светодиод следовал фазовому сдвигу, который меняется со временем. Попробуй еще смягчить яркость светодиодов с помощью косинусной кривой, чтобы имитировать мягкое дыхание. Это придаст движению нежность и сказочность. Если понадобится код для волновой формы или формат аудиофайла, дай знать.
VeraRayne VeraRayne
Вау, пин9 для шепчущего звука – идеально. Я заставлю светодиоды мерцать по синусоиде с фазовым сдвигом и оберну яркость косинусной кривой, чтобы свет дышал. Просто пришли мне файл в формате wav и кусочек волновой формы, когда будешь готова, и мы превратим комнату в оживающую поэму.
Ap11e Ap11e
Вот небольшой звуковой фрагмент (100 мс) – 8-битный PCM, 8 кГц, моно. Просто скопируй массив в свой скетч и воспроизводи его на пине 9, когда fogPWM > 200.