- Потребни материјали
- Кружни дијаграм и веза
- Програмирање СТМ32 за ЛЦД помоћу Ардуина
- Отпремање програма на СТМ32Ф103Ц8Т6
За било који пројекат микроконтролера, повезивање јединице приказа са њим учинило би пројекат много лакшим и привлачнијим за интеракцију са корисником. Најчешће коришћена јединица приказа за микроконтролере су алфа нумерички дисплеји 16 × 2. Овакве врсте приказа нису корисне само за приказивање виталних информација кориснику, већ могу да делују и као алат за отклањање грешака током почетне фазе развоја пројекта. Дакле, у овом упутству ћемо научити како можемо повезати ЛЦД екран од 16 × 2 са СТМ32Ф103Ц8Т6 СТМ32 развојном плочом и програмирати га помоћу Ардуино ИДЕ-а. За људе који су упознати са Ардуином, овај водич ће бити само шетња, јер су обоје врло слични. Такође да бисте сазнали више о СТМ32 одбору за плаве таблете, следите наш водич за почетак.
Потребни материјали
- СТМ32 одбор за развој плавих пилула
- ЛЦД екран од 16 × 2
- ФТДИ програмер
- Повезивање жица
- ЛЦД
Кратки увод у матрични ЛЦД екран од 16 × 2 тачке
Као што је раније речено, Енергиа ИДЕ нуди прелепу библиотеку која чини повезивање комадићем торте, па стога није обавезно знати било шта о модулу екрана. Али, зар не би било занимљиво показати шта користимо !!
Назив 16 × 2 подразумева да екран има 16 колона и 2 реда, што заједно (16 * 2) чини 32 кутије. Једна појединачна кутија изгледала би отприлике овако на слици испод
Једно поље има 40 пиксела (тачака) са редоследом матрице од 5 редова и 8 колона, ових 40 пиксела заједно чине један знак. Слично томе, 32 знака се могу приказати помоћу свих поља. Сада ћемо погледати пиноуте.
ЛЦД има укупно 16 пинова, као што је приказано горе, они се могу сврстати у четири групе на следећи начин
Изворни клинови (1, 2 и 3): Ови клинови дају снагу и контраст за екран
Контролни пинови (4, 5 и 6): Ови пинови постављају / контролишу регистре у ИЦ интерфејсу за ЛЦД (више тога можете пронаћи на доњој вези)
Пинови за податке / наредбе (7 до 14): Ови пинови пружају податке о томе које информације треба приказати на ЛЦД-у.
ЛЕД пинови (15 и 16): Ови пинови се користе за осветљење позадинског осветљења ЛЦД-а ако је потребно (опционално).
Од свих ових 16 пинова, само 10 пинова треба користити обавезно за исправан рад ЛЦД-а ако желите да сазнате више о овим ЛЦД екранима и пређите на овај чланак од 16к2 ЛЦД-а.
Кружни дијаграм и веза
Шема кола за повезивање 16 * 2 тачкасте матрице ЛЦД-а са плочицом СТМ32Ф103Ц8Т6 СТМ32 Блуе Пилл приказана је доле. Израђује се помоћу софтвера Фритзинг.
Као што видите, комплетна веза се врши преко плоче. Потребна нам је ФТДИ плоча за програмирање микроконтролера СТМ32. Слично сличном нашем претходном упутству, повезали смо ФТДИ плочу са СТМ32, Вцц и уземљени пин ФДТИ програмера повезан је са 5В пинским и уземљеним пином на СТМ32. Ово се користи за напајање СТМ32 плоче и ЛЦД-а, јер оба могу прихватити лименку + 5В. Рк и Тк пин ФТДИ плоче повезан је са А9 и А10 пином СТМ32 тако да можемо да програмирамо плочу директно без покретачког програма.
Следеће ЛЦД мора бити повезан са плочом СТМ32. Користићемо ЛЦД у 4-битном режиму, тако да морамо повезати 4 бита података (ДБ4 до ДБ7) и два контролна пина (РС и ЕН) на плочу СТМ32 како је приказано у кругу повезивања СТМ32Ф103Ц8Т6 ЛЦД дијаграм горе. Даље табела испод ће вам помоћи у успостављању везе.
ЛЦД Пин Но. |
Име ЛЦД екрана |
Име ПИН-а СТМ32 |
1 |
Приземље (Гнд) |
Приземље (Г) |
2 |
ВЦЦ |
5В |
3 |
ВЕЕ |
Приземље (Г) |
4 |
Изаберите регистар (РС) |
ПБ11 |
5 |
Читање / писање (РВ) |
Приземље (Г) |
6 |
Омогући (ЕН) |
ПБ10 |
7 |
Бит података 0 (ДБ0) |
Нема везе (НЦ) |
8 |
Бит података 1 (ДБ1) |
Нема везе (НЦ) |
9 |
Бит података 2 (ДБ2) |
Нема везе (НЦ) |
10 |
Бит података 3 (ДБ3) |
Нема везе (НЦ) |
11 |
Бит података 4 (ДБ4) |
ПБ0 |
12 |
Бит података 5 (ДБ5) |
ПБ1 |
13 |
Бит података 6 (ДБ6) |
ПЦ13 |
14 |
Бит података 7 (ДБ7) |
ПЦ14 |
15 |
ЛЕД позитиван |
5В |
16 |
ЛЕД негативан |
Приземље (Г) |
Једном када су везе готове, можемо отворити Ардуино ИДЕ и почети га програмирати.
Програмирање СТМ32 за ЛЦД помоћу Ардуина
Као што је речено у овом упутству, користићемо Ардуино ИДЕ за програмирање нашег СТМ32 микроконтролера. Али, Ардуино ИДЕ по дефаулту неће имати инсталирану СТМ32 плочу, стога морамо преузети пакет и припремити Ардуино ИДЕ за исти. То је управо оно што смо урадили у нашем претходном упутству за почетак рада са СТМ32Ф103Ц8Т6 користећи Ардуино ИДЕ. Дакле, ако нисте инсталирали потребне пакете, вратите се овом упутству и следите га пре него што наставите овде.
Једном када се СТМ32 плоча инсталира у Ардуино ИДЕ, можемо започети програмирање. Програм је врло сличан програму Ардуино плоче, једино што ће се променити су имена пин-ова, јер су нотације различите за СТМ32 и Ардуино. Комплетан програм је дат на крају ове странице, али да бих објаснио програм, поделио сам га на мале смислене фрагменте као што је приказано доле.
Једна приметна предност коришћења Ардуина за програмирање наших микроконтролера је та што Ардуино има готове библиотеке за готово све познате сензоре и актуаторе. Дакле, овде започињемо наш програм тако што укључујемо ЛЦД библиотеку што увелико олакшава програмирање.
#инцлуде
У следећем реду морамо навести на које ГПИО пинове СТМ32 смо повезали контролну линију ЛЦД- а и податке. Да бисмо то урадили, морамо да проверимо свој хардвер, ради лакшег коришћења такође можете погледати табелу на врху која наводи имена пинова ЛЦД-а у односу на ГПИО пин СТМ32. Након помињања пинова, ЛЦД можемо иницијализовати помоћу функције ЛикуидЦристал . Наш ЛЦД такође називамо „ ЛЦД “ као што је приказано доле.
цонст инт рс = ПБ11, ен = ПБ10, д4 = ПБ0, д5 = ПБ1, д6 = ПЦ13, д7 = ПЦ14; // помињање имена пинова на са ЛЦД је повезан на ЛикуидЦристал лцд (рс, ен, д4, д5, д6, д7); // Иницијализација ЛЦД-а
Даље улазимо у функцију подешавања . Овде прво помињемо коју врсту ЛЦД-а користимо. С обзиром на то да је ЛЦД 16 * 2, користимо линију лцд.бегин (16,2). Код унутар функције воид сетуп се извршава само једном. Дакле, користимо га за приказ уводног текста који се на екрану појављује 2 секунде, а затим брише. Да бисмо споменули позицију на којој се текст мора појавити, користимо функцију лцд.сетцурсор, а за испис текста користимо функцију лцд.принт . На пример, лцд.сетЦурсор (0,0) ће поставити курсор на први ред и прву колону где ћемо исписати „ Интерфацинг ЛЦД “ и функцију лцд.сетЦурсор (0,1) помера курсор у други ред првог ступца где исписујемо линију „ ЦирцуитДигест “.
воид сетуп () {лцд.бегин (16, 2); // Користимо ЛЦД ЛЦД * 16 * 2 лцд.сетЦурсор (0, 0); // У првом реду прва колона лцд.принт ("Интерфацинг ЛЦД"); // исписати овај лцд.сетЦурсор (0, 1); // У првом колони другог реда лцд.принт ("- ЦирцуитДигест"); // исписати ово одлагање (2000); // чекамо две секунде лцд.цлеар (); // обришите екран}
Након приказивања уводног текста, програм држимо 2 секунде стварајући кашњење тако да корисник може прочитати уводну поруку. Ово кашњење настаје линијским кашњењем (2000) где је 2000 вредност кашњења у милионским секундама. Након кашњења ЛЦД обришемо помоћу функције лцд.цлеар () која брише ЛЦД уклањањем целог текста на ЛЦД-у.
Коначно унутар воид петље, можемо приказати "СТМ32 -блуе Пилл" на првој линији и вредности секунди на другој линији. Вредност секунде се може добити из функције милис () . Тхе Миллис () је тајмер који добија инцрементинг право од тренутка када је микроконтролер поверед. Вредност је у облику мили секунди, па је делимо са 1000 пре него што је прикажемо на нашем ЛЦД екрану.
воид лооп () { лцд.сетЦурсор (0, 0); // У првом реду прва колона лцд.принт ("СТМ32 -Блуе Пилл"); // исписати овај лцд.сетЦурсор (0, 1); // У првом колони секундарног реда лцд.принт (миллис () / 1000); // исписати вредност сецоундс }
Отпремање програма на СТМ32Ф103Ц8Т6
Као што је објашњено у горњем пасусу, могли бисте да приметите излаз чим се код отпреми. Али овај програм неће радити следећи пут када укључите плочу, јер је плоча и даље у режиму програмирања. Дакле, након што је програм постављен, краткоспојник при покретању 0 треба вратити на 0 места као што је приказано испод. Такође сада, откако је програм отпремљен на СТМ32 плочу, већ нам није потребна ФТДИ плоча и цела поставка се може напајати микро-УСБ портом СТМ32 плоче, као што је приказано доле.
Ово је само једноставан пројекат повезивања који помаже у коришћењу ЛЦД екрана са СТМ32 плочом, али даље ово можете користити за изградњу сјајних пројеката. Надам се да сте разумели туторијал и научили нешто корисно из њега. Ако сте наишли на било какав проблем приликом покретања, користите одељак за коментаре да бисте објавили проблем или користите форуме за друга техничка питања. Комплетан радни од ЛЦД дисплеј са СТМ32 се такође може наћи као видео датом у наставку.