Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

Евтината микроконтролерна платка Raspberry Pi Pico предлага голяма гъвкавост за ентусиастите да изследват проекти, за да увеличат своите технически познания. Изучаването на основите ще ви осигури солидна база от знания, за да работите уверено към по-сложни задачи.

Тук ще проучим как можете да контролирате всяка част от седемсегментен дисплей с Raspberry Pi Pico и малко MicroPython код.

Какво ще ви трябва?

Следните елементи са включени в Kitronik Inventor's Kit за Raspberry Pi Pico. И все пак, ако трупате електроника, е много вероятно тези части да са ви прибрани у дома.

  • Седемсегментен дисплей
  • 7x 220Ω резистори
  • 9x мъжки-мъжки джъмперни кабели
  • Бредборд

Ще ви трябва Pico с прикрепени GPIO щифтове. Ако все още не сте го направили, разберете как да запоявате заглавни щифтове на Raspberry Pi Pico.

Свързване на хардуера

Окабеляването за този проект не е сложно; въпреки това, с шепа резистори и джъмпери в игра, това ще изисква да останете нащрек, за да сте сигурни, че всички части са свързани към правилните щифтове. Имайки това предвид, нека се потопим в това как компонентите са свързани между вашия Raspberry Pi Pico и макетната платка.

instagram viewer

Първо прекарайте проводник от GND щифт на Pico и поставете другия край във всеки отвор по протежение на отрицателната релса на макетната платка. Останалите конектори ще се свържат към части от макетната платка около седемсегментния дисплей и резисторите.

Джъмперните кабели се прекарват от GP16, GP17, и GP18 ще се свърже към дясната страна на дисплея и в съответствие с резисторите, разположени над дисплея.

От лявата страна на седемсегментния дисплей ще трябва да прокарате другата страна на проводниците, които тръгват от GP15, GP14, GP13, и GP12 към макетни връзки. Отново, не забравяйте да свържете проводниците в съответствие с правилните резистори.

Има по-малък джъмперен проводник, който ще трябва да бъде свързан по протежение на отрицателната шина на макетната платка. Другата страна на тази връзка ще премине между два резистора точно над дисплея. Не забравяйте да потвърдите, че резисторните ви ленти са червени, червени, кафяви и златни (за 220 ома).

Срещате проблеми? Помислете за тестване на вашите резистори (особено ако сте натрупвали електронни компоненти от известно време). Вижте нашето ръководство за как да измерите съпротивлението с мултицет за тестови стъпки.

Проучване на кода

Ще имате възможност да управлявате всеки от седемте сегмента на дисплея с помощта на Thonny IDE. Вижте нашето ръководство за това как да започнете с MicroPython на Raspberry Pi Pico за повече информация. Можете да изтеглите 7segment.py кодов файл от MUO GitHub хранилище.

Една важна част от кода е присвояването на седемте сегмента на дисплея на Pico щифтове GP12 през GP18, всяка с име на променлива (segA да се segG).

segA = машина. Щифт (18, машина. ПИН. ИЗВЪН)
segB = машина. Щифт (17, машина. ПИН. ИЗВЪН)
segC = машина. Щифт (16, машина. ПИН. ИЗВЪН)
segD = машина. Щифт (15, машина. ПИН. ИЗВЪН)
segE = машина. Щифт (14, машина. ПИН. ИЗВЪН)
segF = машина. Щифт (13, машина. ПИН. ИЗВЪН)
segG = машина. Щифт (12, машина. ПИН. ИЗВЪН)

Списък, наречен карфици, съдържа тези променливи в същия ред. Вложен списък (известен още като "списък със списъци"), наречен числа, след това се използва, за да се определи кои сегменти трябва да светят за всяка цифра; всеки ред представлява цифра от 0 до 9, плюс последен ред без цифра. „1“ в списъка показва, че сегментът трябва да свети; "0" означава, че не трябва.

The displayNumber ще бъде извикана функция с коя цифра трябва да се покаже; за да покаже тази цифра, съответния ред на числа списъкът се използва за определяне кои сегменти трябва да светят чрез задействане на назначените GPIO изходни пинове.

Накрая, а докато е вярно: infiniteloop ще извика функцията displayNumber многократно, за да брои от 0 до 9 и след това в обратен ред. Когато това приключи, дисплеят ще се изчисти за кратък период от време. Оттам нататък процесът ще започне отново.

докатоВярно:
за i в диапазон (10):
displayNumber (i)
време.sleep_ms(600)

за i в диапазон (9, -1, -1):
displayNumber (i)
време.sleep_ms(600)

Ако още не сте се досетили, този цикъл няма да спре. Кодът ще инструктира вашия Raspberry Pi Pico да брои в безкраен цикъл. Така че, когато новостта на постижението ви изчезне, ще трябва да натиснете бутона за спиране в Thonny.

С какво ще експериментирате след това?

Този проект вдъхновява ли ви да създадете цифров часовник, използвайки вашия Raspberry Pi Pico и допълнителни седемсегментни дисплеи? Още по-добре, станете големи с пълноразмерен Raspberry Pi компютър и конфигурирайте cron Scheduler, за да възпроизвежда песен всяка сутрин в 7:00. Може да се добави бутон за дрямка, като спрете музиката и след това пуснете аудиото десет минути по-късно. Когато натиснете бутона три пъти, музиката може да бъде настроена да се изключи до утре.