Случайный цвет светодиода по нажатию кнопки
✅ Измените код так, чтобы RGB-светодиод менял цвет на другой случайный при каждом нажатии кнопки. Светодиод не должен гаснуть или менять цвет, если кнопку некоторое время не нажимают.
Продолжите, добавив код к предыдущему решению или к коду из advanced/button-interrupt/src/main.rs.
Решение упражнения находится в advanced/button-interrupt/examples/solution_led.rs. Запустить его можно командой:
cargo run --example solution_led
💡 Подсказки
- Нужные импорты уже есть. Если выполнить
cargo doc --open, вы получите полезную документацию по светодиоду. - Тип светодиода — WS2812RMT.
- Это программируемый RGB-светодиод. Это значит, что нет отдельных выводов для красного, зелёного и синего, а нужно создать его экземпляр, чтобы отправлять ему значения типа
RGB8через метод. - На плате есть аппаратный генератор случайных чисел. Его можно вызвать через
esp_random(). - Вызов функций из
esp-idf-svc::sysс точки зрения Rust небезопасен и требует блокаunsafe(). Можно считать, что эти функции безопасны в использовании, поэтому других мер не требуется.