Недорогая плата микроконтроллера Raspberry Pi Pico предлагает энтузиастам большую гибкость в изучении проектов для расширения своих технических знаний. Изучение основ обеспечит вас надежной базой знаний для уверенной работы над более сложными задачами.
Здесь мы рассмотрим, как вы можете управлять каждой частью семисегментного дисплея с помощью Raspberry Pi Pico и некоторого кода MicroPython.
Что вам понадобится?
Следующие элементы входят в комплект Комплект изобретателя Kitronik для Raspberry Pi Pico. Тем не менее, если вы храните электронику, вполне вероятно, что эти части будут спрятаны дома.
- Семисегментный дисплей
- 7 резисторов по 220 Ом
- 9x перемычек типа «папа-папа»
- Макет
Вам понадобится Pico с подключенными контактными разъемами GPIO. Если вы еще этого не сделали, узнайте как припаять контакты на Raspberry Pi Pico.
Подключение оборудования
Проводка для этого проекта не сложна; однако, с несколькими резисторами и перемычками в игре, это потребует от вас быть начеку, чтобы убедиться, что все части подключены к правильным контактам. Имея это в виду, давайте углубимся в то, как компоненты соединяются между вашим Raspberry Pi Pico и макетной платой.
Во-первых, проложите провод от контакта GND на Pico и поместите другой конец в любое отверстие на отрицательной планке макета. Остальные разъемы будут подключаться к частям макетной платы вокруг семисегментного дисплея и резисторов.
Провода-перемычки прокладываются от GP16, GP17, и GP18 будет подключаться к правой стороне дисплея и на одной линии с резисторами, расположенными над дисплеем.
С левой стороны семисегментного дисплея вам нужно будет проложить другую сторону проводов, идущих от GP15, GP14, GP13, и GP12 к макетным соединениям. Опять же, обязательно подключите провода в соответствии с правильными резисторами.
Существует меньшая перемычка, которую необходимо подключить к отрицательной шине макетной платы. Другая сторона этого соединения будет проходить между двумя резисторами прямо над дисплеем. Убедитесь, что ваши резисторы красного, красного, коричневого и золотого цвета (для 220 Ом).
Столкнулись с проблемами? Рассмотрите возможность тестирования резисторов (особенно если вы какое-то время собирали электронные компоненты). Смотрите наше руководство по как измерить сопротивление мультиметром для шагов тестирования.
Изучение кода
У вас будет возможность управлять каждым из семи сегментов дисплея с помощью Thonny IDE. Ознакомьтесь с нашим руководством о том, как начать работу с MicroPython на Raspberry Pi Pico Больше подробностей. Вы можете скачать 7segment.py файл с кодом из Репозиторий MUO на GitHub.
Один из важных фрагментов кода — назначение семи сегментов дисплея контактам Pico. GP12 через GP18, каждая с именем переменной (сегА к сегмент G).
сегА = машина. Штифт (18, стан. Приколоть. ВНЕ)
segB = машина. Штифт (17, стан. Приколоть. ВНЕ)
segC = машина. Штифт (16, стан. Приколоть. ВНЕ)
segD = машина. Штифт (15, стан. Приколоть. ВНЕ)
segE = машина. Штифт (14, стан. Приколоть. ВНЕ)
segF = машина. Штифт (13, стан. Приколоть. ВНЕ)
segG = машина. Штифт (12, стан. Приколоть. ВНЕ)
Список, называемый булавки, хранит эти переменные в том же порядке. Вложенный список (также известный как «список списков»), называемый числаЗатем используется для определения того, какие сегменты должны загораться для каждой цифры; каждая строка представляет цифру от 0 до 9 плюс последняя строка без цифры. «1» в списке указывает на то, что сегмент должен быть освещен; "0" означает, что не должно.
displayNumber будет вызвана функция, с которой должна отображаться цифра; чтобы показать эту цифру, соответствующая строка числа список используется для определения того, какие сегменты должны быть освещены, путем запуска назначенных выходных контактов GPIO.
Наконец, пока верно: бесконечный цикл будет многократно вызывать функцию displayNumber для подсчета от 0 до 9, а затем в обратном порядке. Когда это будет завершено, дисплей будет очищен на короткий период времени. Оттуда процесс начнется снова.
покаИстинный:
для i в диапазоне (10):
отображаемый номер (я)
время.sleep_ms(600)
для i в диапазоне (9, -1, -1):
отображаемый номер (я)
время.sleep_ms(600)
Если вы еще не догадались, этот цикл не остановится. Код заставит ваш Raspberry Pi Pico считать в бесконечном цикле. Итак, когда новизна вашего достижения улетучится, вам нужно будет нажать кнопку «Стоп» в Тонни.
С чем вы будете экспериментировать дальше?
Вдохновляет ли вас этот проект на создание цифровых часов с использованием вашего Raspberry Pi Pico и дополнительных семисегментных дисплеев? А еще лучше, сделайте большой шаг вперед с полноразмерным компьютером Raspberry Pi и настройте планировщик cron для воспроизведения песни каждое утро в 7:00. Кнопку повтора можно добавить, остановив музыку, а затем воспроизведя звук через десять минут. Когда вы нажимаете кнопку три раза, музыка может быть отключена до завтра.