Raspberry Pi:Примеры/Библиотека WiringPi/Gertboard и WiringPi/12 светодиодов
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Gertboard и WiringPi: 12 светодиодов[1]
Плата Raspberry Pi имеет 17 GPIO-контактов (плюс еще 4 на Rev2, но для их использовании на Gertboard придется иметь дело с дополнительными сложностями). Некоторые из этих контактов – двойного назначения.
Единственные контакты, которые при запуске настраиваются, как правило, на альтернативный режим – это последовательные контакты; ядро Linux использует их для отправки сообщений. Мы их пока использовать не будем, а воспользуемся теми, что выделены для интерфейса SPI.
На Gertboard под интерфейс SPI выделены контакты GP7, GP8, GP9, GP10 и GP11. Мы воспользуемся 4 из этих 5 контактов, чтобы подключиться к последним 4 светодиодам. В итоге у нас появится возможность зажечь все 12 светодиодов.
Перед тем, как начать, снимите на Gertboard все перемычки моста – это перемычки, что идут от длинного ряда контактов к более короткому ряду, служащему для подключения к периферийным компонентам Gertboard.
Также убедитесь, что у вас не загружено никаких SPI-модулей (Raspbian с ними не дружит), потому что вы могли загрузить их, а потом забыть, или поменять конфигурационные файлы. Запустите следующую команду:
lsmod | grep -i spi
Если она дала какие-то выходные данные, то да – у вас, по всей видимости, загружены SPI-драйверы. Чтобы удалить их, впишите следующее:
sudo rmmod spi_bcm2708 spidev
Все перемычки на буферных чипах должны быть выставлены на вывод данных – это 12 перемычек, и их нужно расположить в сторону светодиодов и контактов «BufX».
Подключение
В данном случае фото получаются не очень наглядными, поэтому схема подключения показана в таблице ниже:
J2 | Провод-перемычка | J3 |
---|---|---|
GP17 | <–> | B1 |
GP18 | <–> | B2 |
GP21 | <–> | B3 |
GP22 | <–> | B4 |
GP23 | <–> | B5 |
GP24 | <–> | B6 |
GP25 | <–> | B7 |
GP4 | <–> | B8 |
GP7 | <–> | B9 |
GP8 | <–> | B10 |
GP9 | <–> | B11 |
GP10 | <–> | B12 |
Сделав это, найдите в папке «examples» программу «blink12.c». Скомпилируйте ее – это делается так же, как и для других программ:
gcc -Wall -o blink12 blink12.c -lwiringPi
Впрочем, вы можете скомпилировать ее при помощи makefile, который идет в комплекте с библиотекой. Более того, вы можете использовать его для ваших собственных проектов.
make blink12
Запустите программу:
sudo ./blink12
Результатом будут 12 перемигивающихся светодиодов.
Изучение программы и ее модифицирование полностью приветствуются!
Итого
- Буферные перемычки можно использовать для переключения между вводом и выводом данных, но мы пока рассмотрели лишь вывод данных
- Мы можем использовать некоторые GPIO-контакты Pi двойного назначения для обычного вывода данных
- Мы можем зажигать встроенные светодиоды!