Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Случайный цвет светодиода по нажатию кнопки

✅ Измените код так, чтобы 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(). Можно считать, что эти функции безопасны в использовании, поэтому других мер не требуется.