- 7-сегментни и 4-цифрени 7-сегментни модул приказа:
- Повезивање четвороцифреног 7-сегментног модула са Распберри Пи:
- Програмирање вашег Распберри Пи:
- Приказ времена на 4-цифреном 7-сегменту помоћу Распберри Пи:
Сви знамо ту Распберри Пи је дивна развојна платформа заснована на АРМ микропроцесору. Са својом великом рачунарском снагом може направити чуда у рукама хобиста електронике или ученика. Све ово може бити могуће само ако знамо како да натерамо интеракцију са стварним светом и анализу података путем неког излазног уређаја. Постоји много сензора који могу открити одређене параметре из света стварног времена и пренети их у дигитални свет, а ми их анализирамо гледајући их на ЛЦД екрану или неком другом дисплеју. Али, увек не би било економично користити ЛЦД екран са ПИ за приказивање мале количине података. Овде више волимо да користимо алфанумерички ЛЦД дисплеј 16к2 или 7-сегментни екран. Већ смо научили како да користимо алфанумерички ЛЦД и једносегментни 7-сегментни дисплеј са Распберри пи. Данас ћемоПовежите 4-цифрени седмосегментни модул за приказ са Распберри Пи и приказује време преко њега.
Иако је алфанумерички ЛЦД од 16к2 много удобнији од 7-сегментног екрана, мало је сценарија када би 7-сегментни дисплеј био кориснији од ЛЦД екрана. ЛЦД пати од недостатка мале величине знакова и биће претјерано за ваш пројекат ако само планирате да прикажете неке нумеричке вредности. 7-сегментни такође имају предност у односу на лоше осветљење и могу се гледати из већих углова од уобичајеног ЛЦД екрана. Па, почнимо то да знамо.
7-сегментни и 4-цифрени 7-сегментни модул приказа:
Приказ 7 сегмената има седам сегмената, а сваки сегмент има по једну ЛЕД диоду за приказ бројева осветљавањем одговарајућих сегмената. Као да желите да 7-сегмент приказује број "5", онда морате да жарите сегменте а, ф, г, ц и д тако што ћете одговарајуће пинове поставити високо. Постоје два типа екрана са 7 сегмената: Цоммон Цатходе и Цоммон Аноде, овде користимо приказ са седам сегмената Цоммон Цатходе. Овде сазнајте више о 7-сегментном дисплеју.
Сада знамо како да прикажемо жељени нумерички знак на једном 7-сегментном дисплеју. Али, прилично је очигледно да би нам требало више од једног 7-сегментног екрана да бисмо пренели било коју информацију која има више од једне цифре. Дакле, у овом упутству ћемо користити 4-цифрени 7-сегментни модул приказа као што је приказано доле.
Као што видимо, постоје четири приказана седам сегмената који су повезани заједно. Знамо да ће сваки 7-сегментарни модул имати 10 пинова, а за 4 седмосегментна екрана било би укупно 40 пинова и било би ужурбано да их било ко леми на тачкасту плочу, па топло препоручујем свима да купе модул или направите свој ПЦБ за коришћење четвороцифреног 7-сегментног екрана. Шема везе за исту је приказана испод:
Да бисмо разумели како функционише четвороцифрени седмосегментни модул, морамо погледати горње шеме, као што је приказано А пинови сва четири екрана повезани су да би се окупили као један А и исти за Б, Ц…. до ДП. Дакле, у основи ако је окидач А укључен, онда би сва четири А требала ићи високо, зар не?
Али, то се не дешава. Имамо додатна четири пина од Д0 до Д3 (Д0, Д1, Д2 и Д3) који се могу користити за контролу који од четири екрана треба да иде високо. На пример: Ако ми је потребно да мој излаз буде присутан само на другом екрану, онда би само Д1 требало да буде високо, а да остали пинови (Д0, Д2 и Д3) буду ниски. Једноставно можемо одабрати који приказ мора бити активан помоћу пинова од Д0 до Д3 и који знак ће се приказивати помоћу пинова од А до ДП.
Повезивање четвороцифреног 7-сегментног модула са Распберри Пи:
Погледајмо како, како можемо повезати овај четвороцифрени седмосегментни модул са нашом Распберри Пи. Модул од 7 сегмената има 16 пинова као што је приказано доле. Ваш модул можда има мање, али не брините да ће сигурно имати следеће
- 7 или 8 сегментних пинова (овде пинови који почињу од 1 до 8)
- Прикључак за уземљење (овде пин 11)
- 4-цифрене игле (овде пинови 13 до 16)
Испод је дата шема дигиталног сата малина пи повезивањем четвороцифреног седмосегментног модула приказа са Распберри Пи:
Следећа табела ће вам такође помоћи у успостављању веза и верификацији да су у складу са шемама приказаним горе.
С.Но |
Рсп Пи ГПИО број |
Рсп Пи ПИН број |
Име 7-сегмента |
7-сег пин број (овде у овом модулу) |
1 |
ГПИО 26 |
ПИН 37 |
Сегмент а |
1 |
2 |
ГПИО 19 |
ПИН 35 |
Сегмент б |
2 |
3 |
ГПИО 13 |
ПИН 33 |
Сегмент ц |
3 |
4 |
ГПИО 6 |
ПИН 31 |
Сегмент д |
4 |
5 |
ГПИО 5 |
ПИН 29 |
Сегмент е |
5 |
6 |
ГПИО 11 |
ПИН 23 |
Сегмент ф |
6 |
7 |
ГПИО 9 |
ПИН 21 |
Сегмент г |
7 |
8 |
ГПИО 10 |
ПИН 19 |
Сегмент ДП |
8 |
9 |
ГПИО 7 |
ПИН 26 |
Цифра 1 |
13 |
10 |
ГПИО 8 |
ПИН 24 |
Цифра 2 |
14 |
11 |
ГПИО 25 |
ПИН 22 |
Цифра 3 |
15 |
12 |
ГПИО 24 |
ПИН 18 |
Цифра 4 |
16 |
13 |
Приземље |
Приземље |
Приземље |
11 |
Препознајте иглице на вашем модулу и сви сте спремни да наставите са везама. Уочавање ГПИО пинова у Распберри пи можда је мало изазован задатак, па сам вам пружио ову слику за ГПИО пинове.
Програмирање вашег Распберри Пи:
Овде користимо програмски језик Питхон за програмирање РПи-а. Постоји много начина за програмирање вашег Распберри Пи. У овом упутству користимо Питхон 3 ИДЕ, јер је он најкоришћенији. Комплетан Питон Програм је дат на крају овог туторијала. Овде сазнајте више о Програмирању и покретању кода у Распберри Пи.
Разговараћемо о неколико наредби које ћемо користити у програму ПИХТОН за овај пројекат, Прво ћемо увести ГПИО датотеку из библиотеке, доња функција омогућава нам програмирање ГПИО пинова ПИ. Такође смо преименовали „ГПИО“ у „ИО“, па ћемо у програму кад год желимо да се упутимо на ГПИО пинове користити реч „ИО“. Такође смо увози времена и ДатеТиме да прочитате вредност времена од РСП Пи.
импорт РПи.ГПИО као ГПИО време увоза, датум и време
Понекад, када ГПИО пинови, које покушавамо да користимо, можда раде неке друге функције. У том случају добићемо упозорења током извршавања програма. Испод наредба говори ПИ-у да занемари упозорења и настави са програмом.
ИО.сетварнингс (Фалсе)
ГПИО пинове ПИ можемо упутити било бројем пина на плочи или бројем њихове функције. Као и „ПИН 29“ на плочи је „ГПИО5“. Дакле, овде кажемо или ћемо овде представљати пин са '29' или '5'. ГПИО.БЦМ значи да ћемо представити употребу 5 за ГПИО5 пин 29.
ИО.сетмоде (ГПИО.БЦМ)
Као и увек требало би да започнемо иницијализацијом пинова, овде су и пинови сегмената и пинови цифара излазни пинови. У сврху програмирања формирамо низове за сегментне пинове и иницијализујемо их на '0' након што смо их прогласили ГПИО.ОУТ
сегмент8 = (26,19,13,6,5,11,9,10) за сегмент у сегменту8: ГПИО.сетуп (сегмент, ГПИО.ОУТ) ГПИО.оутпут (сегмент, 0)
На сличан начин за цифрене пинове проглашавамо их излазним пиновима и подразумевано их стављамо у '0'
#Дигит 1 ГПИО.сетуп (7, ГПИО.ОУТ) ГПИО.оутпут (7, 0) # Искључено иницијално #Дигит 2 ГПИО.сетуп (8, ГПИО.ОУТ) ГПИО.оутпут (8, 0) # Офф офф почетку #Дигит 3 ГПИО.сетуп (25, ГПИО.ОУТ) ГПИО.оутпут (25, 0) # Искључено иницијално #Дигит 4 ГПИО.сетуп (24, ГПИО.ОУТ) ГПИО.оутпут (24, 0) # Офф првобитно
Морамо формирати низове за приказ сваког броја на седмосегментном дисплеју. Да бисмо приказали један број, морамо контролисати свих 7 сегментних пинова (искључени тачкасти пинови), односно они морају бити искључени или укључени. На пример, да бисмо приказали број 5, направимо следећи распоред
С.Но |
Рсп Пи ГПИО број |
Име 7-сегмента |
Статус за приказ '5'. (0-> ИСКЉУЧЕНО, 1-> УКЉУЧЕНО) |
1 |
ГПИО 26 |
Сегмент а |
1 |
2 |
ГПИО 19 |
Сегмент б |
1 |
3 |
ГПИО 13 |
Сегмент ц |
0 |
4 |
ГПИО 6 |
Сегмент д |
1 |
5 |
ГПИО 5 |
Сегмент е |
1 |
6 |
ГПИО 11 |
Сегмент ф |
0 |
7 |
ГПИО 9 |
Сегмент г |
1 |
Слично томе, имамо редни број за све бројеве и абецеде. Можете сами писати или користити доњу табелу.
Помоћу ових података можемо формирати низове за сваки број у нашем питхон програму, као што је приказано доле.
нула = нула = један = два = три = четири = пет = шест = седам = осам = девет =
Ако пратите програм, постојаће функција за приказ сваког карактера на нашем 7-сегментном екрану, али, за сада то прескочите и уђите у док бесконачну петљу. Где прочитајте садашње време са Распберри Пи и поделите вредност времена између четири променљиве. На пример, ако је време 10.45, тада ће променљива х1 имати 1, х2 ће имати 0, м1 ће имати 4, а м2 ће имати 5.
нов = датетиме.датетиме.нов () хоур = нов.хоур минуте = нов.минуте х1 = хоур / 10 х2 = хоур% 10 м1 = минуте / 10 м2 = минуте% 10 принт (х1, х2, м1, м2)
Ове четири променљиве вредности морамо приказати на наше четири цифре. Да бисмо записали вредност променљиве у цифру, можемо користити следеће редове. Овде смо приказани на цифри 1 тако што ћемо ићи високо, а затим ће функција принт_сегмент (променљива) бити позвана да прикаже вредност у променљивој на приказ сегмента. Можда се питате зашто имамо закашњење након тога и зашто искључујемо ову цифру након тога.
ГПИО.оутпут (7, 1) # Укључи Дигит Оне принт_сегмент (х1) # Испиши х1 на сегменту тиме.слееп (делаи_тиме) ГПИО.оутпут (7, 0) # Искључи Дигит Оне
Разлог је тај што, као што знамо, истовремено можемо приказати само једну цифру, али имамо четири цифре које треба приказати и само ако су приказане све четири цифре, читав четвороцифрени број биће видљив кориснику.
Па, како приказати све 4 цифре истовремено ?
Срећом по нас, наш МПУ је много бржи од људског ока, па оно што заправо радимо: приказујемо једну по једну цифру, али то радимо врло брзо као што је горе приказано.
Изаберемо једноцифрени приказ који чека 2 мс (променљиво време одгоде), тако да МПУ и 7-сегмент могу да га обраде, а затим искључе ту цифру и прелазе на следећу цифру и раде исто док не стигнемо до последње цифре. Ово кашњење од 2 мс не може да примети људско око и чини се да су све четири цифре истовремено укључене.
Последња ствар коју треба научити да би знали како функционише функција принт_сегмент (променљива) . Унутар ове функције користимо низове које смо до сада декларисали. Дакле, која год променљива коју пошаљемо овој функцији треба да има вредност између (0-9), карактер променљиве ће примити ову вредност и упоредити је са стварном вредношћу. Овде се променљива упоређује са „1“. Слично томе упоређујемо са свим бројевима од 0 до 9. Ако се подудара, користимо низове и додељујемо сваку вредност одговарајућим сегментним пиновима као што је приказано доле.
деф принт_сегмент (цхарецтор): ако цхарецтор == 1: за и у опсегу (7): ГПИО.оутпут (сегмент8, оне)
Приказ времена на 4-цифреном 7-сегменту помоћу Распберри Пи:
Користите шему и код који су овде дати да бисте успоставили везе и сходно томе програмирали ваш малина пи. Након што све завршите, само покрените програм и требало би да пронађете тренутно време које се приказује на седмосегментном екрану. Али, мало је ствари које морате проверити пре овога
- Обавезно подесите Распберри Пи са тренутним временом за сваки случај ако ради ван мреже.
- Напајајте Распберри пи адаптером, а не преносним рачунаром / рачунаром, јер је количина струје коју привлачи 7-сегментни дисплеј велика и ваш УСБ порт не може да је извор.
Ако све функционише како се очекивало, требало би да пронађете нешто попут овога у наставку.
Комплетан рад овог малина пи сата такође можете проверити на видеу датом у наставку. Надам се да вам се свидео пројекат и уживали сте у његовој изради. Јавите ми шта мислите или ако вам треба помоћ.