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

Мигание внешним светодиодом

Начиная с этого момента мы будем использовать с Pico больше внешних компонентов. Прежде чем перейти к ним, полезно освоиться с простыми схемами и научиться подключать компоненты к выводам Pico. В этой главе начнём с простого: будем мигать светодиодом, подключённым вне платы.

Требования к оборудованию

  • Светодиод
  • Резистор
  • Перемычки

Обзор компонентов

  1. Светодиод (LED, Light Emitting Diode) загорается, когда через него течёт ток. Длинная ножка (анод) подключается к плюсу, короткая (катод) — к земле. Мы подключим анод к GP13 (через резистор), а катод — к GND.

  2. Резистор ограничивает ток в цепи, защищая такие компоненты, как светодиоды. Его номинал измеряется в омах (Ω). Мы будем использовать резистор 330 Ом, чтобы безопасно питать светодиод.

Вывод Pico Провод Компонент
GPIO 13
Резистор
Резистор
Анод (длинная ножка) светодиода
GND
Катод (короткая ножка) светодиода
Pico 2

Подключить Pico к светодиоду можно напрямую перемычками или собрать всё на макетной плате. Если вы не уверены в настройке оборудования, можно обратиться к руководству Raspberry Pi.

Подключение внешнего светодиода к Pico 2 (RP2350)
Схема на макетной плате

Tip

На Pico подписи выводов нанесены на обратной стороне платы, и это может быть неудобно при подключении проводов. Я часто проверял схему распиновки, когда нужно было использовать вывод GPIO. Используйте логотип Raspberry Pi на лицевой стороне как ориентир и сверяйтесь со схемой распиновки, чтобы найти нужные выводы. Номера выводов 2 и 39 также напечатаны на лицевой стороне и могут служить дополнительными ориентирами.

Мигание светодиодом — симуляция

В этой симуляции задержка по умолчанию установлена 5000 миллисекунд, чтобы анимация была спокойнее и её было легче проследить. Можно уменьшить её, например, до 500 миллисекунд, чтобы светодиод мигал быстрее. Когда мы будем запускать реальный код на Pico, используем задержку 500 миллисекунд.

LOW
1
let mut led = Output::new(p.PIN_13, Level::Low);
2
loop {
3
led.set_high(); // Включить светодиод
4
Timer::after_millis(5000).await;
5
led.set_low(); // Выключить светодиод
6
Timer::after_millis(5000).await;
7
}
Простой
0 ms