- Потребни материјали:
- Упознавање модула ТФТ ЛЦД екрана:
- Калибрација ТФТ ЛЦД екрана за додирни екран:
- ТФТ ЛЦД везе са Ардуином:
- Програмирање вашег Ардуина за ТФТ ЛЦД:
- Рад:
Ардуино је увек помагао да се лако граде пројекти и чине да изгледају привлачније. Програмирање ЛЦД екрана са опцијом додирног екрана можда звучи као сложен задатак, али Ардуино библиотеке и штитови су то учинили заиста лаким. У овом пројекту користит ћемо 2,4-инчни Ардуино ТФТ ЛЦД заслон за изградњу властитог Ардуино рачунара осјетљивог на додир који може изводити све основне прорачуне попут сабирања, одузимања, дијељења и множења.
Потребни материјали:
- Ардуино Уно
- Штит од 2,4 ”ТФТ ЛЦД екрана
- 9В батерија.
Упознавање модула ТФТ ЛЦД екрана:
Пре него што заиста уђемо у пројекат, важно је знати како функционише овај 2,4-инчни ТФТ ЛЦД модул и који су типови присутни у њему. Погледајмо пиноут-ове овог 2,4-инчног ТФТ ЛЦД модула.
Као што видите, постоји 28 пинова који ће се савршено уклопити у било коју Ардуино Уно / Ардуино Мега плочу. Мала класификација ових пинова дата је у доњој табели.
Као што видите, пинови се могу сврстати у четири главне класификације, као што су ЛЦД командне игле, ЛЦД подаци, СД и СД картице, и не морамо знати много о детаљном раду ових пинова, јер ће о њима водити рачуна наша Ардуино библиотека.
Такође можете пронаћи отвор за СД картицу на дну горе приказаног модула, који се може користити за учитавање СД картице у БМП датотеке слика, а те слике могу се приказати на нашем ТФТ ЛЦД екрану помоћу програма Ардуино.
Још једна важна ствар коју треба имати на уму је ваша интерфејс ИЦ. На тржишту су доступне многе врсте ТФТ модула, почев од оригиналног ТФТ ЛЦД модула Адафруит до јефтиних кинеских клонова. Програм који савршено функционише за ваш штит Адафруит можда неће радити исто за кинеске пробојне плоче. Дакле, веома је важно знати које врсте ЛЦД екрана држите у руци. Овај детаљ треба добити од добављача. Ако имате јефтин клон попут мог, онда највероватније користи управљачку картицу или9341. Можете пратити ово ТФТ ЛЦД повезивање са упутством за Ардуино да бисте испробали неке основне примере програма и удобно се осећали са ЛЦД екраном. Овде погледајте и друге наше ТФТ ЛЦД пројекте са Ардуином:
- Како се користи НеоПикел ЛЕД трака са Ардуином и ТФТ ЛЦД екраном
- Закључавање дигиталног кода контролисано паметним телефоном помоћу Ардуина
Калибрација ТФТ ЛЦД екрана за додирни екран:
Ако планирате да користите функцију екрана осетљивог на додир вашег ТФТ ЛЦД модула, морате да га калибришете како би исправно функционисао. ЛЦД екран без калибрације може деловати мало вероватно, на пример, можете додирнути на једном месту, а ТФТ може реаговати на додир на неком другом месту. Ови резултати калибрације неће бити слични за све плоче и стога вам је преостало да то сами урадите.
Најбољи начин калибрације је коришћење примера програма за калибрацију (испоручује се са библиотеком) или серијског монитора за откривање ваше грешке. Међутим, за овај пројекат, јер је величина тастера велика калибрација, не би требало да представља велики проблем, а такође ћу објаснити како можете да калибришете свој екран у одељку за програмирање испод.
ТФТ ЛЦД везе са Ардуином:
2,4-инчни ТФТ ЛЦД екран савршен је Ардуино Схиелд. Можете директно гурнути ЛЦД екран на врх Ардуино Уно-а и он ће се савршено поклапати са иглама и провући се. Међутим, из сигурносних разлога покријте програмски терминал вашег Ардуино УНО малом изолацијском траком, за сваки случај ако терминал дође у контакт с вашим ТФТ ЛЦД екраном. ЛЦД састављен на УНО-у изгледаће отприлике овако у наставку.
Програмирање вашег Ардуина за ТФТ ЛЦД:
Користимо СПФД5408 библиотеку да би овај ардуино калкулатор радио. Ово је модификована библиотека Адафруит и може без проблема радити са нашим ЛЦД ТФТ модулом. Комплетан програм можете погледати на крају овог чланка.
Напомена: Веома је важно да ову библиотеку инсталирате у свој Ардуино ИДЕ или овај програм за компајлирање без икаквих грешака.
Да бисте инсталирали ову библиотеку, једноставно кликните на везу изнад која ће вас одвести на Гитхуб страницу. Тамо кликните на клон или преузмите и одаберите „Преузми ЗИП“. Биће преузета зип датотека.
Сада отворите Ардуино ИДЕ и изаберите Скица -> Укључи Либрареи -> Додај.ЗИП библиотеку. Отвориће се прозор прегледача, дођите до ЗИП датотеке и кликните на „ОК“. Ако успете, приметићете „Библиотека додата у ваше библиотеке“ у доњем левом углу Ардуина. Детаљан водич за то исто дат је у Водичу за повезивање.
Сада можете користити доњи код у свом Ардуино ИДЕ-у и отпремити га на свој Ардуино УНО да би калкулатор додирног екрана радио. Даље, објаснио сам код на мале сегменте.
За рад овог програма потребне су нам три библиотеке; све ове три библиотеке су дате у ЗИП датотеци коју сте преузели са горе наведене везе. Једноставно сам их укључио у код како је приказано доле.
#инцлуде
Као што је раније речено, морамо да калибришемо ЛЦД екран како би могао да ради како се очекивало, али не брините да су овде дате вредности готово универзалне. Калибрација екрана одлучују променљиве ТС_МИНКС, ТС_МИНИ, ТС_МАКСКС и ТС_МАКСИ. Можете се играти око њих ако сматрате да калибрација није задовољавајућа.
#дефине ТС_МИНКС 125 #дефине ТС_МИНИ 85 #дефине ТС_МАКСКС 965 #дефине ТС_МАКСИ 905
Као што знамо да ТФТ ЛЦД екран може приказати пуно боја, све ове боје морају бити унете у хексадецималну вредност. Да бисмо били читљивији за људе, додељујемо ове вредности променљивој као што је приказано доле.
#дефине ВХИТЕ 0к0000 // Блацк-> Вхите #дефине ИЕЛЛОВ 0к001Ф // Блуе-> Иеллов #дефине ЦИАН 0кФ800 // Ред-> Циан #дефине ПИНК 0к07Е0 // Греен-> Пинк #дефине РЕД 0к07ФФ // Циан -> Ред #дефине ГРЕЕН 0кФ81Ф // Пинк -> Греен #дефине БЛУЕ 0кФФЕ0 // Иеллов-> Блуе #дефине БЛАЦК 0кФФФФ // Вхите-> Блацк
Добро, сада можемо ући у програмски део. Три програма су укључена у овај програм. Један је стварање корисничког интерфејса калкулатора са тастерима и екраном. Затим, откривање тастера на основу додира корисника и коначно израчунавање резултата и њихово приказивање. Прођимо их један по један.
1. Креирање корисничког интерфејса калкулатора:
Овде можете искористити пуно своје креативности за дизајн корисничког интерфејса калкулатора. Једноставно сам направио основни распоред калкулатора са 16 тастера и једном јединицом приказа. Дизајн морате да конструишете баш као да цртате нешто на МС боји. Додане библиотеке омогућиће вам цртање линија, правоугаоника, кругова, знакова, жица и још много тога било које жељене боје. Доступне функције можете разумети из овог чланка.
Користио сам способности цртања линија и оквира за дизајн корисничког интерфејса који изгледа врло слично калкулатору из 90-их. Свако поље има ширину и висину од 60 пиксела.
// Цртање оквира за резултате тфт.филлРецт (0, 0, 240, 80, ЦИАН); // Цртање прве колоне тфт.филлРецт (0,260,60,60, ЦРВЕНА); тфт.филлРецт (0,200,60,60, ЦРНА); тфт.филлРецт (0,140,60,60, ЦРНА); тфт.филлРецт (0,80,60,60, ЦРНА); // Цртање треће колоне тфт.филлРецт (120,260,60,60, ЗЕЛЕНА); тфт.филлРецт (120,200,60,60, ЦРНА); тфт.филлРецт (120,140,60,60, ЦРНА); тфт.филлРецт (120,80,60,60, ЦРНА); // Цртање секунде и четврте колоне за (инт б = 260; б> = 80; б- = 60) {тфт.филлРецт (180, б, 60,60, ПЛАВА); тфт.филлРецт (60, б, 60,60, ЦРНА);} // Цртање хоризонталних линија за (инт х = 80; х <= 320; х + = 60) тфт.дравФастХЛине (0, х, 240, БЕЛА); // Цртање вертикалних линија за (инт в = 0; в <= 240; в + = 60) тфт.дравФастВЛине (в, 80, 240, БЕЛА); // Приказивање ознака тастатуре за (инт ј = 0; ј <4; ј ++) {фор (инт и = 0; и <4; и ++) {тфт.сетЦурсор (22 + (60 * и), 100 + (60 * ј)); тфт.сетТектСизе (3); тфт.сетТектЦолор (БЕЛА); тфт.принтлн (симбол);
2. Откривање дугмади:
Још један изазован задатак је откривање корисничког додира. Сваки пут када корисник негде додирне, моћи ћемо да утврдимо где је Кс и И положај пиксела који је додирнуо. Ова вредност се може приказати на серијском монитору помоћу принтлн-а као што је приказано доле.
ТСПоинт п = ваитТоуцх (); Кс = пи; И = пк; Сериал.принт (Кс); Сериал.принт (','); Сериал.принтлн (И); // + "" + И);
Пошто смо дизајнирали кутију ширине и висине од по 60 пиксела и имамо четири реда и за колоне почев од (0,0). Положај сваког оквира може се предвидети како је приказано на доњој слици.
Али у практичном случају то неће бити резултат. Због проблема са калибрацијом постојаће велика разлика између очекиване и стварне вредности.
Дакле, да бисте предвидели тачан положај оквира, морате кликнути на линију и проверити њен одговарајући положај на серијском монитору. Ово можда није најпрофесионалнији начин за то, али ипак функционише савршено. Измерио сам положај свих линија и добио доње вредности.
Сад, пошто знамо положај свих кутија. Када корисник додирне било где, можемо предвидети где је додирнуо поређењем његових вредности (Кс, И) са вредностима за сваки оквир као што је приказано доле.
иф (Кс <105 && Кс> 50) // Откривање дугмади на колони 2 {иф (И> 0 && И <85) {Сериал.принтлн ("Дугме 0"); // Дугме 0 је притиснуто ако је (Нумбер == 0) Нумбер = 0; елсе Број = (Број * 10) + 0; // Притисните два пута} иф (И> 85 && И <140) {Сериал.принтлн ("Дугме 2"); иф (Нумбер == 0) Нумбер = 2; елсе Број = (Број * 10) + 2; // двапут притиснуто}
3. Приказивање бројева и израчунавање резултата:
Последњи корак је израчунавање резултата и приказ на ТФТ ЛЦД екрану. Овај ардуино калкулатор може да врши само 2 броја. Ова два броја називају се променљивим „Нум1“ и „Нум2“. Променљива „Нумбер“ даје и узима вредност из Нум1 и Нум2 и такође носи резултат.
Када употреба притисне дугме, једној цифри се додаје број. Када се притисне друго дугме, претходна једна цифра се множи са 10 и са њом се додаје нови број. На пример, ако притиснемо 8, а затим притиснемо 5, а затим притиснемо 7. Тада ће прво променљива држати 8, затим (8 * 10) + 5 = 85, а затим (85 * 10) +7 = 857. Дакле, на крају ће променљива имати вредност 857 са њом.
иф (И> 192 && И <245) {Сериал.принтлн ("Дугме 8"); иф (Нумбер == 0) Нумбер = 8; елсе Број = (Број * 10) + 8; // поново притиснут}
Када извршимо било коју операцију попут сабирања, када корисници притисну дугме за сабирање, вредност из броја ће се пренети у Нум1, а затим ће се број поништити тако да се спреми за унос другог броја.
Када се притисне Екуал, вредност у Нумбер биће послата на Нум2, а затим ће се извршити одговарајући прорачун (у овом случају додавање) и резултат ће се поново сачувати у променљивој „Нумбер“.
Напокон ће се ова вредност приказати на ЛЦД екрану.
Рад:
Рад овог Ардуино калкулатора додирног екрана је једноставан. Морате да учитате доленаведени код на свој Ардуино и да га покренете. На ЛЦД екрану се приказује калкулатор.
Сада можете да унесете било који број и извршите своје прорачуне. За сада је ограничено на само два операнда и једини оператор. Али, можете подесити код да бисте имали пуно могућности.
Морате притиснути „Ц“ да бисте обрисали вредност на екрану сваки пут након извршавања прорачуна. Надам се да сте разумели пројекат и уживали сте у изградњи нечег сличног. Ако сумњате, слободно их објавите на форумима или у одељку за коментаре испод. Видимо се следећи пут са још једним занимљивим пројектом до тада срећног рачунарства !!
Такође погледајте доњи демонстрацијски видео.