Что такое GPIO?

Так сложилось, что первая программа, которую человек пишет при изучении программирования называется «Hello World!». Суть этой программы сводится к тому, чтобы после запуска на экране появилась указанная простая фраза. Обычно для этого используется всего несколько строк кода.

В мире микроэлектроники, аналогичной задачей можно считать управление светодиодом. А именно, периодическое включение и выключение — мигание. В этом уроке мы как раз займемся подключением светодиода к Raspberry Pi и составлением программы на языке python, заставляющей этот светодиод мигать.

Выводы общего назначения Raspberry Pi (GPIO)

Одно из главных преимуществ Raspberry Pi — это наличие выводов общего назначения (General Purpose Iinput/Outputs). GPIO — это группа контактов, которыми можно управлять с помощью программы. Причем управление это может быть совсем простым, например, включение/выключение светодиода. Либо весьма сложным — обмен данными с периферийными устройствами по специализированным протоколам.

В терминах цифровой электроники, управлять — значит менять на выводе уровень напряжения. Другими словами, все что мы можем сделать с помощью программы — это соединить желаемый вывод либо с контактом питания (+3.3 В), либо с землей (Gnd). Изобразим это на принципиальной схеме.

Схема вывода общего назначения

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

Если мы в программе подаем на вывод №23 истину True, то Raspberry Pi соединит этот вывод с питанием +3.3В, и через резистор побежит ток. Если же мы передадим ложь — False, то контроллер соединит вывод №23 с землей, и с обоих концов от резистора окажутся равные потенциалы — ток никуда не побежит. То есть, с помощью программы мы как бы щелкаем невидимым переключателем, то вверх, то вниз!

Когда мы коснемся составления программы для мигания светодиодом, то узнаем как передавать истину и ложь на выводы общего назначения Raspberry Pi.


Изменено: