3.6. Основы электроники

Чтобы управлять чем-либо внешним с вывода GPIO, нужна схема по ту сторону вывода. Три понятия из базовой электроники – напряжение, ток и связь между ними через резистор – встречаются в каждой такой схеме.

3.6.1. Напряжение, ток, сопротивление

  • Напряжение (вольты, В) – это разность потенциалов между двумя точками схемы. Шина питания микросхемы может находиться под напряжением 3,3 В относительно земли; вывод GPIO, переведённый в высокое состояние, находится под тем же напряжением 3,3 В.

  • Ток (амперы, А, или миллиамперы, мА) – это поток заряда по проводу. Ток всегда возвращается туда, откуда пришёл, поэтому для протекания любого тока схема должна образовывать замкнутый контур от источника питания обратно к земле.

  • Сопротивление (омы, Ω) – это то, насколько путь препятствует этому потоку. Назначение резистора – задать ток известного значения при известном напряжении.

Закон Ома связывает их воедино:

Треугольник, разделённый на три области, помеченные V сверху, I и R снизу; вокруг него показаны преобразованные формы V = IR, I = V/R, R = V/I.

Закон Ома в трёх его формах.

Словами: напряжение на резисторе равно току через него, умноженному на сопротивление. Зная любые две из трёх величин, третью находят алгебраически.

3.6.2. Диоды

Диод – это двухвыводной компонент, который проводит ток в одном направлении (от анода к катоду) и блокирует его в другом.

Условное обозначение диода на схеме -- треугольник, указывающий вправо на вертикальную черту, -- с анодом, отмеченным слева, и катодом справа. Вариант для светодиода добавляет две стрелки, направленные наружу, рядом с символом, обозначая излучаемый свет.

Диод проводит только от анода к катоду. Светодиод – это диод, который при проведении тока излучает свет.

У диода также есть прямое напряжение (Vf) – падение напряжения на нём, когда ток течёт в проводящем направлении. Как только приложенное напряжение достигает Vf, диод ведёт себя примерно как провод; ниже него ток почти не течёт.

3.6.3. Светодиоды

Светоизлучающий диод (LED) – это диод, который преобразует ток своей проводимости в видимый или инфракрасный свет. Яркость пропорциональна току; цвет задаётся химией светодиода, а не управлением.

Типичные значения прямого напряжения светодиодов:

  • Красный: 1,8 – 2,2 В

  • Зелёный или жёлтый: 2,0 – 2,4 В

  • Синий или белый: 2,8 – 3,4 В

Полезный рабочий ток для индикаторного светодиода составляет 5 – 20 мА. Более высокие токи дают большую яркость, но сокращают срок службы светодиода и могут превысить предел тока вывода GPIO.

3.6.4. Токоограничивающий резистор

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

Схема: вывод GPIO соединяется через резистор R с анодом светодиода; катод светодиода идёт на землю. Подписи отмечают Vsupply на выводе, V_R на резисторе, Vf на светодиоде и ток If, текущий по контуру.

Последовательный резистор задаёт ток светодиода.

Напряжение питания распределяется между резистором и светодиодом: светодиод поглощает своё прямое напряжение, резистор – остальное. По закону Ома:

R = (Vsupply - Vf) / If

Для красного светодиода (Vf 2.0 V), питаемого от вывода GPIO 3,3 В током 10 мА:

R = (3.3 - 2.0) / 0.010 = 130 Ω

На практике выбирают ближайшее большее стандартное значение (150 Ω или 220 Ω). В результате светодиод светит чуть тусклее, но имеет больший запас по безопасности. Берите 200 – 470 Ω в качестве разумного значения по умолчанию, когда точная яркость не важна.

3.6.5. Почему важна каждая составляющая

Форма любой выходной схемы GPIO вытекает из четырёх изложенных выше понятий:

  • Напряжение задаёт энергию, доступную на выводе. У вывода GPIO 3,3 В есть 3,3 В, которые можно распределить по всему, что подключено между ним и землёй.

  • Диод (в данном случае светодиод) потребляет часть этого напряжения в виде своего прямого падения и отказывается проводить ток в неправильном направлении – он задаёт в какую сторону и фиксированную долю.

  • Токоограничивающий резистор потребляет оставшееся напряжение и превращает остаток в управляемый ток. Без него светодиод потреблял бы тот ток, который способен дать вывод, – обычно достаточный, чтобы вывести из строя один из компонентов или оба сразу.

  • Закон Ома – это то, что делает значение резистора вычислимым: по оставшемуся напряжению и желаемому току величина R находится алгебраически.

Напряжения, тока, сопротивления, диодов и одного преобразованного уравнения достаточно, чтобы спроектировать любой базовый выходной каскад GPIO.

Те же самые компоненты всё это время скрывались за встроенным светодиодом. machine.LED("LED_RED").on() зажигает светодиод, потому что плата камеры уже предоставляет всё вокруг него – токоограничивающий резистор, провод к земле, сам светодиод, – а класс лишь переключает GPIO кристалла за ними. Представление «одна строка зажигает светодиод» верно; это просто краткий способ сказать «управляй этой схемой». Уберите абстракцию – и останется ровно та схема, что показана выше.

machine.Pin – это тот же кристалл, представленный без окружающих компонентов. Скрипт управляет напряжением вывода напрямую; вы сами добавляете резистор (рассчитанный по закону Ома), светодиод и обратный путь к земле. Те же четыре понятия возвращаются, в чуть иных комбинациях, за устранением дребезга кнопок, фильтрацией PWM и управлением двигателями.