- Компоненте потребне
- 4-цифрени 7-сегментни приказ
- 74ХЦ595 ИЦ Схифт Регистер
- ДС3231 РТЦ модул
- Кружни дијаграм
- Програмирање Ардуино УНО за мултиплексирање седмосегментног приказа
Дигитални зидни сатови постају данас популарнији и бољи су од аналогних, јер пружају тачно време у сатима, минутима и секундама и лако их читају вредности. Неки дигитални сатови такође имају мноштво уређаја као што су приказивање температуре, влаге, подешавање више аларма итд. Већина дигиталних сатова користи седмосегментни приказ.
Раније смо направили много кола за дигиталне сатове или помоћу 7-сегментних дисплеја или помоћу ЛЦД-а 16к2. Овде можете наћи комплетне ПЦБ дизајне дигиталног сата заснованог на АВР-у. У овом водичу говори се о изради дигиталног сата мултиплексирањем дисплеја од четири до 7 сегмената користећи Ардуино УНО и приказивању времена у ХХ: ММ формату.
Компоненте потребне
- 4-цифрени 7-сегментни приказ
- 74ХЦ595 ИЦ
- ДС3231 РТЦ модул
- Ардуино УНО
- Бреадбоард
- Повезивање жица
4-цифрени 7-сегментни приказ
Четвороцифрени седмосегментни дисплеј има четири седмосегментна дисплеја која су спојена или можемо рећи да су мултиплексирани. Користе се за приказ нумеричких вредности, а такође и неких абецеда са децималама и двотачком. Екран се може користити у оба смера. Четири цифре су корисне за израду дигиталних сатова или за бројање бројева од 0 до 9999. Испод је интерни дијаграм за 4-цифрени приказ 7 сегмената.
Сваки сегмент има по једну ЛЕД са индивидуалном ЛЕД контролом. Постоје два типа дисплеја од седам сегмената као што су Цоммон Аноде и Цоммон Цатходе. Горња слика приказује уобичајени приказ сегмента аноде типа 7.
Цоммон Аноде
У Цоммон Аноде-у, сви позитивни терминали (Аноде) свих 8 ЛЕД-а повезани су заједно, названи ЦОМ. А сви негативни терминали остају сами или су повезани на пинове микроконтролера. Коришћењем микроконтролера, ако је логика ЛОВ постављена да осветљава одређени ЛЕД сегмент и подесите логику Хигх да искључи ЛЕД.
Цоммон Цатходе
У заједничкој катоди, сви негативни терминали (катода) свих 8 ЛЕД диода повезани су заједно, названи ЦОМ. А сви позитивни терминали остају сами или су повезани на пинове микроконтролера. Коришћењем микроконтролера, ако је постављена логика ВИСОКО да осветли ЛЕД и подесите ЛОВ да ИСКЛОПИ ЛЕД.
Овде сазнајте више о дисплејима од 7 сегмената и проверите како се могу повезати са другим микроконтролерима:
- 7-сегментно повезивање екрана са Ардуином
- 7-сегментно повезивање екрана са Распберри Пи
- Повезивање дисплеја са седам сегмената са АРМ7-ЛПЦ2148
- 7-сегментно повезивање екрана са ПИЦ микроконтролером
- 7-сегментно повезивање екрана са микроконтролером 8051
74ХЦ595 ИЦ Схифт Регистер
ИЦ 74ХЦ595 такође познат као 8-Бит Сериал ИН - Параллел ОУТ Схифт Регистер. Овај ИЦ може примати улаз података серијски и може паралелно контролисати 8 излазних пинова. Ово је корисно за смањење пинова који се користе од микроконтролера. Све пројекте повезане са регистром смена 74ХЦ595 можете пронаћи овде.
Ради на 74ХЦ595 ИЦ:
Овај ИЦ користи три пинова као што су Цлоцк, Дата & Латцх са микроконтролером за управљање 8 излазних пинова ИЦ. Сат се користи за непрекидно давање импулса са микроконтролера, а пин за податке користи се за слање података попут тога који излаз треба укључити или искључити у одређено време сата.
Пиноут:
Пин број |
Пин Наме |
Опис |
1,2,3,4,5,6,7 |
Излазни пинови (К1 до К7) |
74ХЦ595 има 8 излазних пинова од којих је 7 ових пинова. Њима се може серијски контролисати |
8 |
Приземље |
Повезан са масом микроконтролера |
9 |
(К7) Серијски излаз |
Овај пин се користи за каскадно повезивање више од 74ХЦ595 |
10 |
(МР) Главни ресет |
Враћа све излазе на низак ниво. Мора се држати високо за нормалан рад |
11 |
(СХ_ЦП) Сат |
Ово је пин на сату на који сигнал сата мора да се даје из МЦУ / МПУ |
12 |
(СТ_ЦП) Закачивање |
Латцх клин се користи за ажурирање података на излазне пинове. Активно је високо |
13 |
(ОЕ) Омогућен излаз |
Омогућавање излаза користи се за искључивање излаза. Мора се држати ниско за нормалан рад |
14 |
(ДС) серијски подаци |
Ово је пин на који се шаљу подаци на основу којег се контролише 8 излаза |
15 |
(К0) Излаз |
Први излазни пин. |
16 |
Вцц |
Овај пин напаја ИЦ, обично се користи + 5В. |
ДС3231 РТЦ модул
ДС3231 је РТЦ модул. РТЦ је скраћеница од сата у реалном времену. Овај модул се користи за памћење времена и датума чак и када се круг не напаја. Има резервну батерију ЦР2032 за покретање модула у одсуству спољног напајања. Овај модул такође укључује сензор температуре. Модул се може користити у уграђеним пројектима, попут израде дигиталног сата са индикатором температуре итд. Ево неколико корисних пројеката који га користе:
- Аутоматско додавање кућних љубимаца помоћу Ардуина
- Повезивање РТЦ модула (ДС3231) са ПИЦ микроконтролером: дигитални сат
- Повезивање РТЦ модула (ДС3231) са МСП430: Дигитални сат
- ЕСП32 сат у реалном времену помоћу модула ДС3231
- Дигитални зидни сат на ПЦБ-у помоћу АВР микроконтролера Атмега16 и ДС3231 РТЦ
Пиноут ДС3231:
Пин Наме |
Користите |
ВЦЦ |
Прикључен на позитив извора напајања |
ГНД |
Повезан са земљом |
СДА |
Пин за серијске податке (И2Ц) |
СЦЛ |
Пин серијског сата (И2Ц) |
СКВ |
Квадратни талас излазни пин |
32К |
Излаз осцилатора 32К |
Карактеристике и спецификације:
- РТЦ броји секунде, минуте, сате и годину
- Дигитални температурни сензор са тачношћу од ± 3ºЦ
- Региструјте се за старење
- И2Ц интерфејс од 400 кХз
- Ниска потрошња енергије
- Резервна батерија ЦР2032 са две до три године живота
- Радни напон: 2.3 до 5.5В
Кружни дијаграм
Кружна веза између ДС3231 РТЦ и Ардуино УНО:
ДС3231 |
Ардуино УНО |
ВЦЦ |
5В |
ГНД |
ГНД |
СДА |
А4 |
СЦЛ |
А4 |
Кружне везе између 74ХЦ595 ИЦ и Ардуино Уно:
74ХЦ595 ИЦ |
Ардуино УНО |
11-СХ_ЦП (СРЦЛК) |
6 |
12-СТ_ЦП (РЦЛК) |
5 |
14-ДС (подаци) |
4 |
13-ОЕ (засун) |
ГНД |
8-ГНД |
ГНД |
10-МР (СРЦЛР) |
+ 5В |
16-ВЦЦ |
+ 5В |
Кружне везе између ИЦ 74ХЦ595 и четвороцифреног седмог сегмента и Ардуино УНО:
4-цифрениСевенСегмент |
ИЦ 74ХЦ595 |
Ардуино УНО |
А. |
К0 |
- |
Б. |
К1 |
- |
Ц. |
К2 |
- |
Д. |
К3 |
- |
Е. |
К4 |
- |
Ф |
К5 |
- |
Г. |
К6 |
- |
Д1 |
- |
10 |
Д2 |
- |
11 |
Д3 |
- |
12 |
Д4 |
- |
9 |
Програмирање Ардуино УНО за мултиплексирање седмосегментног приказа
Комплетни код и радни видео приложени су на крају овог водича. У одељку за програмирање објасниће се како се време (сат и минута) узима из РТЦ модула у 24-часовном формату, а затим претвара у одговарајући формат за њихово приказивање на четвороцифреном 7-сегментном дисплеју.
За повезивање ДС3231 РТЦ модула са Ардуино УНО користи се И2Ц магистрала Ардуино УНО. Библиотека звана
У овом концепту, сат и минута узимају се прво из РТЦ-а и комбинирају се заједно попут 0930 (21:30), а затим се појединачне цифре одвајају као хиљаде, стотине, десетице, јединица и појединачне цифре претворене у бинарни формат попут 0 у 63 (0111111). Овај бинарни код се шаље у регистар смене, а затим из регистра смене у седмосегментни, успешно приказујући цифру 0 у седмосегментном приказу. На овај начин се четири цифре мултиплексирају и приказују се сат и минут.
У почетку су укључене потребне библиотеке као што су ДС3231 и Вире књижница (И2Ц библиотека).
#инцлуде
Клинови су дефинисани за контролу од седам сегмената. Ове контроле ће играти важну улогу у мултиплексирању екрана.
#дефине латцхПин 5 #дефине цлоцкПин 6 #дефине датаПин 4 #дефине дот 2
Променљиве су декларисане за чување конвертованог или сировог резултата преузетог из РТЦ-а.
инт х; // Променљива декларисана за сат инт м; // Променљива декларисана за минуте инт хиљада; инт стотине; инт тенс; инт унит; боол х24; боол ПМ;
Затим се објекат за класу ДС3231 декларише као РТЦ ради поједностављења употребе у даљим редовима.
ДС3231 РТЦ;
Како је РТЦ модул повезан са Ардуином помоћу И2Ц комуникације. Дакле, вире.бегин () се користи за покретање И2Ц комуникације у подразумеваној адреси РТЦ-а, јер не постоје други И2Ц модули.
Вире.бегин ();
Режим Пин су дефинисани, да ли ће ГПИО понашати као излаз или улаз.
пинМоде (9, ИЗЛАЗ); пинМоде (10, ИЗЛАЗ); пинМоде (11, ИЗЛАЗ); пинМоде (12, ИЗЛАЗ); пинМоде (латцхПин, ОУТПУТ); пинМоде (цлоцкПин, ОУТПУТ); пинМоде (датаПин, ОУТПУТ); пинМоде (тачка, ИЗЛАЗ);
Петља ради бесконачно и потребно је време у сатима и минутима од РТЦ ДС3231 модула. 'х24' означава променљиву формата од 24 сата.
инт х = РТЦ.гетХоур (х24, ПМ); инт м = РТЦ.гетМинуте ();
Тада се сат и минут комбинују као један број (пример ако је сат 10, а мин 60 онда је број 10 * 100 = 1000 + 60 = 1060).
инт број = х * 100 + м;
У појединачне цифре из броја се добијају (пример 1060- 1 је хиљаду, 0 је хундеред, 1 је десети и 0 је задња цифра). За одвајање цифара користи се оператор модула. На пример, 1060. године добити 1 онда 1060/1000 = 1,06% 10 = 1). Дакле, засебне цифре се чувају у одвојеним променљивим.
инт хиљаде = број / 1000% 10; инт стотине = број / 100% 10; инт десетице = број / 10% 10; инт јединица = број% 10;
Након тога је дефинисана изјава случаја прекидача за сваку појединачну цифру за њихово претварање у одговарајући формат (бинарни формат) и слање путем смена регистра за приказ у 7-сегменту. На пример (за 1 цифру се мења у 06 (0000 0110)). Тако да се шаље путем смјене и 1 цифра се приказује у 7-сегменту (0 за НИСКО, 1 за ВИСОКО).
прекидач (т) { случај 0: јединица = 63; пауза; случај 1: јединица = 06; пауза; случај 2: јединица = 91; пауза; случај 3: јединица = 79; пауза; случај 4: јединица = 102; пауза; случај 5: јединица = 109; пауза; случај 6: јединица = 125; случај 7: јединица = 07; пауза; случај 8: јединица = 127; пауза; случај 9: јединица = 103; пауза; }
Затим се појединачна цифра у бинарном формату шаље путем функције „схифтоут“ прво са МСБ-ом, а одговарајући пин-број постаје ВИСОК, а засун ХИГХ-ом.
дигиталВрите (9, ЛОВ); дигиталВрите (латцхПин, ЛОВ); схифтОут (датаПин, цлоцкПин, МСБФИРСТ, хиљаде); дигиталВрите (латцхПин, ХИГХ); дигиталВрите (9, ВИСОКО); кашњење (5);
Ово завршава комплетан код. Већина објашњења функције дата је у одељку за коментаре кода одмах поред линије кода. Фреквенција сата ће одредити приказ времена и квалитета мултиплексирања, тј. Ако се користи низак сат, треперење се може видети тамо где као да је брзина такта тада неће бити таквог треперења и може се видети стабилно време.
Имајте на уму да се за приступ РТЦ модулу мора одржавати напон И2Ц сабирнице. Да бисте дали било какав предлог или ако сумњате, молимо вас да коментаришете у наставку.