Raspberry Pi:Примеры/Библиотека WiringPi/Gertboard и WiringPi/Управление устройствами с высокой нагрузкой
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Управление устройствами с высокой нагрузкой[1]
На плате Gertboard есть 6 выходных контактов, управляемых чипом ULN2803 (это составной транзистор Дарлингтона). Это контакты с открытым коллектором, и они суммарно могут тянуть до 500 мА. Их можно подключить к напряжению выше, чем 3,3 вольта, которые использует Pi – вплоть до 50 вольт!
Обратите внимание, что все подключаемые устройства должны иметь общий источник напряжения (на Gertboard они подключены вместе).
Для примера давайте подключим 7-сегментный индикатор с общим катодом.
К подключению мультиплексных 7-сегментных индикаторов можно подойти по-разному. Первый способ – подключить к каждой цифре по резистору через общий провод. Плюс этого подхода в том, что он дешев и требует небольших усилий, а недостаток – в том, что для него потребуется более сложное ПО и одновременно можно будет зажигать только один сегмент на цифре. Таким образом, для 4 цифр с 7 элементами вам нужно будет зажигать 4 х 7 = 28 светодиодов, один за другим, и делать это достаточно быстро, чтобы глаз не замечал мерцания.
Для нашего примера мы воспользуемся вторым подходом – подключим по резистору к каждому сегменту. Таким образом, если потребуется, мы сможем зажечь сразу 7 сегментов. Недостаток этого подхода в том, что здесь через общий контакт, возможно, будет проходить ток сразу для 7 светодиодов, а для индикатора, который используется в нашем случае, это 200 мА. Это гораздо больше, чем может вынести один контакт для переключения логики, поэтому эта задача идеально подходит для составного транзистора Дарлингтона, способного справляться с высокими нагрузками.
Ниже показана картинка, демонстрирующая подключения одной 7-сегментной цифры на макетной плате.
Теперь представьте, что у нас 6 таких цифр – их 7 сегментов подключены друг к другу, а общий провод выведен отдельно. Пускай вас не смущает слово «Реле» на картинке. Этот провод ведет не к реле, а к соответствующему контакту на Gertboard (т.е. к одному из контактов на ULN2803).
Итак, чтобы показать на одном из индикаторов какую-нибудь цифру, мы отправляем ей 7-сегментный паттерн, затем ненадолго подаем на общий контакт LOW, затем HIGH и переходим к следующей цифре.
Программа для этой сборки относительно проста. Ее можно найти в папке «examples» > «Gertboard», а называется она «7segments.c».
Вот фото этой сборки:
Как видите, здесь общие провода для всех 6 цифр подключены к выходным контактам ULN2803, а 7-сегментные провода подключены к первым 7 буферным контактам Gertboard, которые подключены к Pi.
В итоге созданный дисплей показывает цифру «220547» – это время, когда была сделана фотография (22:05 и 47 секунд).
Итого
ULN2803 – это составной транзистор, имеющий 8 контактов с открытым коллектором, однако на Gertboard доступно только 6. Суммарно он может тянуть до 500 мА, однако в нашем примере одновременно может использоваться только 200 мА. Кроме того, он оснащен диодами, которые позволяют управлять устройствами с индуктивной нагрузкой – вроде реле, соленоидов и маленьких моторов.