- అవసరమైన పదార్థాలు:
- TFT LCD స్క్రీన్ మాడ్యూల్ గురించి తెలుసుకోవడం:
- టచ్ స్క్రీన్ కోసం TFT LCD స్క్రీన్ను క్రమాంకనం చేయడం:
- Arduino తో TFT LCD కనెక్షన్లు:
- TFT LCD కోసం మీ ఆర్డునోను ప్రోగ్రామింగ్:
- పని:
ప్రాజెక్టులను సులభంగా నిర్మించడానికి మరియు వాటిని మరింత ఆకర్షణీయంగా చూడటానికి ఆర్డునో ఎల్లప్పుడూ సహాయపడింది. టచ్ స్క్రీన్ ఎంపికతో ఎల్సిడి స్క్రీన్ను ప్రోగ్రామింగ్ చేయడం సంక్లిష్టమైన పనిగా అనిపించవచ్చు, కాని ఆర్డునో లైబ్రరీలు మరియు షీల్డ్స్ దీన్ని చాలా సులభం చేశాయి. ఈ ప్రాజెక్ట్లో మేము 2.4 ”ఆర్డునో టిఎఫ్టి ఎల్సిడి స్క్రీన్ను ఉపయోగిస్తాము, మా స్వంత ఆర్డునో టచ్ స్క్రీన్ కాలిక్యులేటర్ను నిర్మించడం, ఇది సంకలనం, వ్యవకలనం, విభజన మరియు గుణకారం వంటి అన్ని ప్రాథమిక గణనలను చేయగలదు.
అవసరమైన పదార్థాలు:
- ఆర్డునో యునో
- 2.4 ”టిఎఫ్టి ఎల్సిడి డిస్ప్లే షీల్డ్
- 9 వి బ్యాటరీ.
TFT LCD స్క్రీన్ మాడ్యూల్ గురించి తెలుసుకోవడం:
మేము నిజంగా ప్రాజెక్ట్లోకి ప్రవేశించే ముందు, ఈ 2.4 ”టిఎఫ్టి ఎల్సిడి మాడ్యూల్ ఎలా పనిచేస్తుందో మరియు దానిలో ఉన్న రకాలు ఏమిటో తెలుసుకోవడం ముఖ్యం. ఈ 2.4 ”టిఎఫ్టి ఎల్సిడి స్క్రీన్ మాడ్యూల్ యొక్క పిన్అవుట్లను పరిశీలిద్దాం.
మీరు చూడగలిగినట్లుగా 28 పిన్స్ ఉన్నాయి, ఇవి ఏదైనా ఆర్డునో యునో / ఆర్డునో మెగా బోర్డ్కు సరిగ్గా సరిపోతాయి. ఈ పిన్స్ యొక్క చిన్న వర్గీకరణ క్రింది పట్టికలో ఇవ్వబడింది.
పిన్లను ఎల్సిడి కమాండ్ పిన్స్, ఎల్సిడి డేటా పిన్స్, ఎస్డి కార్డ్ పిన్స్ మరియు పవర్ పిన్స్ వంటి నాలుగు ప్రధాన వర్గీకరణలుగా వర్గీకరించవచ్చని మీరు చూడగలిగినట్లుగా, ఈ పిన్ల యొక్క వివరణాత్మక పని గురించి మాకు పెద్దగా తెలియదు. మా ఆర్డునో లైబ్రరీ.
పైన చూపిన మాడ్యూల్ దిగువన మీరు ఒక SD కార్డ్ స్లాట్ను కూడా కనుగొనవచ్చు, ఇది SD కార్డ్ను bmp ఇమేజ్ ఫైల్లతో లోడ్ చేయడానికి ఉపయోగించవచ్చు మరియు ఈ చిత్రాలను Arduino ప్రోగ్రామ్ను ఉపయోగించి మా TFT LCD స్క్రీన్లో ప్రదర్శించవచ్చు.
గమనించదగ్గ మరో ముఖ్యమైన విషయం మీ ఇంటర్ఫేస్ ఐసి. అసలు అడాఫ్రూట్ టిఎఫ్టి ఎల్సిడి మాడ్యూల్ నుండి చౌకైన చైనీస్ క్లోన్ల వరకు మార్కెట్లో అనేక రకాల టిఎఫ్టి మాడ్యూల్స్ అందుబాటులో ఉన్నాయి. మీ అడాఫ్రూట్ షీల్డ్ కోసం ఖచ్చితంగా పనిచేసే ప్రోగ్రామ్ చైనీస్ బ్రేక్అవుట్ బోర్డులకు ఒకే విధంగా పనిచేయకపోవచ్చు. కాబట్టి, మీ చేతిలో ఏ రకమైన ఎల్సిడి డిస్ప్లే ఉందో తెలుసుకోవడం చాలా ముఖ్యం. ఈ వివరాలను విక్రేత నుండి పొందాలి. మీరు నా లాంటి చౌకైన క్లోన్ కలిగి ఉంటే, అది చాలావరకు ili9341 డ్రైవర్ IC ని ఉపయోగిస్తుంది. కొన్ని ప్రాథమిక ఉదాహరణ ప్రోగ్రామ్లను ప్రయత్నించడానికి మరియు ఎల్సిడి స్క్రీన్తో సౌకర్యంగా ఉండటానికి మీరు ఆర్డునో ట్యుటోరియల్తో ఈ టిఎఫ్టి ఎల్సిడి ఇంటర్ఫేసింగ్ను అనుసరించవచ్చు. Arduino తో మా ఇతర TFT LCD ప్రాజెక్టులను కూడా ఇక్కడ చూడండి:
- ఆర్డునో మరియు టిఎఫ్టి ఎల్సిడితో నియోపిక్సెల్ ఎల్ఇడి స్ట్రిప్ను ఎలా ఉపయోగించాలి
- Arduino ఉపయోగించి స్మార్ట్ ఫోన్ కంట్రోల్డ్ డిజిటల్ కోడ్ లాక్
టచ్ స్క్రీన్ కోసం TFT LCD స్క్రీన్ను క్రమాంకనం చేయడం:
మీరు మీ టిఎఫ్టి ఎల్సిడి మాడ్యూల్ యొక్క టచ్ స్క్రీన్ ఫంక్షన్ను ఉపయోగించాలని అనుకుంటే, అది సరిగ్గా పని చేయడానికి మీరు దాన్ని క్రమాంకనం చేయాలి. క్రమాంకనం లేని ఎల్సిడి స్క్రీన్ అసంభవం పని చేస్తుంది, ఉదాహరణకు మీరు ఒక చోట తాకవచ్చు మరియు టిఎఫ్టి వేరే ప్రదేశంలో స్పర్శ కోసం స్పందించవచ్చు. ఈ అమరిక ఫలితాలు అన్ని బోర్డులకు సమానంగా ఉండవు మరియు అందువల్ల దీన్ని చేయడానికి మీరు మీ స్వంతంగా మిగిలిపోతారు.
క్రమాంకనం చేయడానికి ఉత్తమ మార్గం అమరిక ఉదాహరణ ప్రోగ్రామ్ను ఉపయోగించడం (లైబ్రరీతో వస్తుంది) లేదా మీ లోపాన్ని గుర్తించడానికి సీరియల్ మానిటర్ను ఉపయోగించడం. అయితే ఈ ప్రాజెక్ట్ కోసం బటన్ల పరిమాణం పెద్ద అమరిక పెద్ద సమస్య కాకూడదు మరియు దిగువ ప్రోగ్రామింగ్ విభాగం క్రింద మీరు మీ స్క్రీన్ను ఎలా క్రమాంకనం చేయవచ్చో కూడా వివరిస్తాను.
Arduino తో TFT LCD కనెక్షన్లు:
2.4 ”టిఎఫ్టి ఎల్సిడి స్క్రీన్ సరైన ఆర్డునో షీల్డ్. మీరు నేరుగా ఎల్సిడి స్క్రీన్ను ఆర్డునో యునో పైన నెట్టవచ్చు మరియు ఇది పిన్లతో ఖచ్చితంగా సరిపోతుంది మరియు లోపలికి జారిపోతుంది. అయినప్పటికీ, భద్రతా విషయాలకు సంబంధించి మీ ఆర్డునో UNO యొక్క ప్రోగ్రామింగ్ టెర్మినల్ను చిన్న ఇన్సులేషన్ టేప్తో కవర్ చేస్తుంది, ఒకవేళ టెర్మినల్ మీ టిఎఫ్టి ఎల్సిడి స్క్రీన్తో సంబంధంలోకి వస్తే. UNO లో సమావేశమైన LCD క్రింద ఇలా కనిపిస్తుంది.
TFT LCD కోసం మీ ఆర్డునోను ప్రోగ్రామింగ్:
ఈ ఆర్డునో కాలిక్యులేటర్ కోడ్ పనిచేయడానికి మేము SPFD5408 లైబ్రరీని ఉపయోగిస్తున్నాము. ఇది అడాఫ్రూట్ యొక్క సవరించిన లైబ్రరీ మరియు మా LCD TFT మాడ్యూల్తో సజావుగా పనిచేయగలదు. మీరు ఈ ఆర్టికల్ చివరిలో పూర్తి ప్రోగ్రామ్ను తనిఖీ చేయవచ్చు.
గమనిక: ఈ లైబ్రరీని మీ ఆర్డునో ఐడిఇలో లేదా ఈ ప్రోగ్రామ్లో ఎటువంటి లోపం లేకుండా కంపైల్ చేయడానికి మీరు ఇన్స్టాల్ చేయడం చాలా ముఖ్యం.
ఈ లైబ్రరీని ఇన్స్టాల్ చేయడానికి, మీరు పై లింక్పై క్లిక్ చేయవచ్చు, అది మిమ్మల్ని గితుబ్ పేజీకి తీసుకెళుతుంది. అక్కడ క్లోన్ పై క్లిక్ చేయండి లేదా డౌన్లోడ్ చేసి “డౌన్లోడ్ జిప్” ఎంచుకోండి. జిప్ ఫైల్ డౌన్లోడ్ చేయబడుతుంది.
ఇప్పుడు, Arduino IDE ని తెరిచి, స్కెచ్ -> లైబ్రరీని చేర్చండి ->.ZIP లైబ్రరీని జోడించండి. బ్రౌజర్ విండో జిప్ ఫైల్కు నావిగేట్ చేస్తుంది మరియు “సరే” క్లిక్ చేయండి. విజయవంతమైతే, ఆర్డునో యొక్క దిగువ-ఎడమ మూలలో “మీ లైబ్రరీలకు జోడించబడిన లైబ్రరీ” ను మీరు గమనించాలి. ఇంటర్ఫేసింగ్ ట్యుటోరియల్లో దీన్ని చేయటానికి వివరణాత్మక గైడ్ ఇవ్వబడింది.
ఇప్పుడు, మీరు టచ్ స్క్రీన్ కాలిక్యులేటర్ పనిచేయడానికి మీ Arduino IDE లో ఈ క్రింది కోడ్ను ఉపయోగించవచ్చు మరియు దాన్ని మీ Arduino UNO కి అప్లోడ్ చేయవచ్చు. మరింత క్రిందికి, నేను కోడ్ను చిన్న విభాగాలుగా వివరించాను.
ఈ కార్యక్రమం పనిచేయడానికి మాకు మూడు లైబ్రరీలు అవసరం; ఈ మూడు గ్రంథాలయాలు పైన అందించిన లింక్ నుండి మీరు డౌన్లోడ్ చేసిన జిప్ ఫైల్లో ఇవ్వబడ్డాయి. క్రింద చూపిన విధంగా నేను వాటిని కోడ్లో చేర్చాను.
# చేర్చండి
ముందే చెప్పినట్లుగా, ఎల్సిడి స్క్రీన్ను expected హించిన విధంగా పని చేయడానికి మేము క్రమాంకనం చేయాలి, కాని ఇక్కడ ఇవ్వబడిన విలువలు దాదాపు విశ్వవ్యాప్తం అని చింతించకండి. TS_MINX, TS_MINY, TS_MAXX మరియు TS_MAXY వేరియబుల్స్ స్క్రీన్ క్రమాంకనాన్ని నిర్ణయిస్తాయి. అమరిక సంతృప్తికరంగా లేదని మీరు భావిస్తే మీరు వాటి చుట్టూ బొమ్మ చేయవచ్చు.
# TS_MINX 125 ను నిర్వచించండి # TS_MINY 85 ని నిర్వచించండి # TS_MAXX 965 ని నిర్వచించండి # TS_MAXY 905 ని నిర్వచించండి
టిఎఫ్టి ఎల్సిడి స్క్రీన్ చాలా రంగులను ప్రదర్శించగలదని మనకు తెలుసు, ఈ రంగులన్నీ హెక్స్ విలువలో నమోదు చేయాలి. దీన్ని మరింత మానవ రీడబుల్ చేయడానికి మేము ఈ విలువలను క్రింద చూపిన విధంగా వేరియబుల్కు కేటాయిస్తాము.
# WHITE 0x0000 నిర్వచించండి // నలుపు-> తెలుపు # YELLOW 0x001F // నీలం-> పసుపు # CYAN 0xF800 // ఎరుపు-> Cyan # నిర్వచించండి PINK 0x07E0 // Green-> Pink # RED 0x07FF // Cyan -> Red # గ్రీన్ 0xF81F // పింక్ -> ఆకుపచ్చ # నీలం 0xFFE0 // పసుపు-> నీలం # బ్లాక్ 0xFFFF // వైట్-> బ్లాక్ నిర్వచించండి
సరే ఇప్పుడు, మేము ప్రోగ్రామింగ్ భాగంలోకి ప్రవేశించవచ్చు. ఈ కార్యక్రమంలో మూడు విభాగాలు ఉన్నాయి. ఒకటి బటన్లు మరియు ప్రదర్శనతో కాలిక్యులేటర్ యొక్క UI ని సృష్టిస్తోంది. అప్పుడు, వినియోగదారుల ఆధారంగా బటన్లను గుర్తించడం మరియు చివరకు ఫలితాలను లెక్కించడం మరియు వాటిని ప్రదర్శించడం. వాటిని ఒక్కొక్కటిగా తెలుసుకుందాం.
1. కాలిక్యులేటర్ యొక్క UI ని సృష్టించడం:
కాలిక్యులేటర్ యొక్క వినియోగదారు ఇంటర్ఫేస్ను రూపొందించడానికి మీరు మీ సృజనాత్మకతను చాలా వరకు ఉపయోగించవచ్చు. నేను 16 బటన్లు మరియు ఒక ప్రదర్శన యూనిట్తో కాలిక్యులేటర్ యొక్క ప్రాథమిక లేఅవుట్ను తయారు చేసాను. మీరు MS పెయింట్లో ఏదైనా గీసినట్లే మీరు డిజైన్ను నిర్మించాలి. జోడించిన లైబ్రరీలు లైన్స్, దీర్ఘచతురస్రం, సర్కిల్లు, అక్షరాలు, తీగలను మరియు ఏదైనా ఇష్టపడే రంగును గీయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఈ వ్యాసం నుండి అందుబాటులో ఉన్న విధులను మీరు అర్థం చేసుకోవచ్చు.
90 యొక్క కాలిక్యులేటర్తో సమానమైన UI ని రూపొందించడానికి నేను లైన్ మరియు బాక్స్ డ్రాయింగ్ సామర్ధ్యాలను ఉపయోగించాను. ప్రతి పెట్టె వెడల్పు మరియు ఎత్తు 60 పిక్సెల్స్.
// ఫలిత పెట్టెను గీయండి tft.fillRect (0, 0, 240, 80, CYAN); // మొదటి నిలువు వరుసను గీయండి tft.fillRect (0,260,60,60, RED); tft.fillRect (0,200,60,60, BLACK); tft.fillRect (0,140,60,60, BLACK); tft.fillRect (0,80,60,60, BLACK); // మూడవ కాలమ్ గీయండి tft.fillRect (120,260,60,60, గ్రీన్); tft.fillRect (120,200,60,60, BLACK); tft.fillRect (120,140,60,60, BLACK); tft.fillRect (120,80,60,60, BLACK); // (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60,60, BLUE) కోసం సెకండ్ & నాల్గవ నిలువు వరుసను గీయండి; tft.fillRect (60, b, 60,60, BLACK);} // (int h = 80; h <= 320; h + = 60) tft.drawFastHLine (0, h, 240, WHITE) కోసం క్షితిజసమాంతర రేఖలను గీయండి; // (int v = 0; v <= 240; v + = 60) tft.drawFastVLine (v, 80, 240, WHITE) కోసం లంబ రేఖలను గీయండి; (Int j = 0; j <4; j ++) {కోసం (int i = 0; i <4; i ++) {tft.setCursor (22 + (60 * i), 100 + (60 * j)); tft.setTextSize (3); tft.setTextColor (WHITE); tft.println (గుర్తు);
2. బటన్లను గుర్తించడం:
యూజర్ టచ్ను గుర్తించడం మరో సవాలు పని. వినియోగదారు ఎక్కడో తాకిన ప్రతిసారీ అతను తాకిన పిక్సెల్ యొక్క X మరియు Y స్థానం ఎలా ఉంటుందో మనం చేయగలుగుతాము. ఈ విలువ క్రింద చూపిన విధంగా println ఉపయోగించి సీరియల్ మానిటర్లో ప్రదర్శించబడుతుంది.
TSPoint p = waitTouch (); X = పై; Y = px; సీరియల్.ప్రింట్ (ఎక్స్); సీరియల్.ప్రింట్ (','); సీరియల్.ప్రింట్ల్న్ (వై); // + "" + వై);
మేము 60 పిక్సెల్ వెడల్పు మరియు ఎత్తుతో బాక్స్ను రూపొందించాము మరియు నాలుగు వరుసలను కలిగి ఉన్నాము మరియు (0,0) నుండి ప్రారంభమయ్యే నిలువు వరుసల కోసం. క్రింద ఉన్న చిత్రంలో చూపిన విధంగా ప్రతి పెట్టె యొక్క స్థానాన్ని can హించవచ్చు.
కానీ ఆచరణాత్మక సందర్భంలో, ఇది ఫలితం కాదు. అమరిక సమస్య కారణంగా, and హించిన మరియు వాస్తవ విలువ మధ్య పెద్ద వ్యత్యాసం ఉంటుంది.
కాబట్టి, పెట్టె యొక్క ఖచ్చితమైన స్థానాన్ని అంచనా వేయడానికి, మీరు పంక్తిపై క్లిక్ చేసి, సీరియల్ మానిటర్లో దాని సంబంధిత స్థానాన్ని తనిఖీ చేయాలి. ఇది చాలా ప్రొఫెషనల్ మార్గం కాకపోవచ్చు, కానీ ఇప్పటికీ ఇది ఖచ్చితంగా పనిచేస్తుంది. నేను అన్ని పంక్తుల స్థానాన్ని కొలిచాను మరియు ఈ క్రింది విలువలను పొందాను.
ఇప్పుడు, అన్ని పెట్టెల స్థానం మనకు తెలుసు కాబట్టి. ఒక వినియోగదారు ఎక్కడైనా తాకినప్పుడు, అతని (X, Y) విలువలను క్రింద చూపిన విధంగా ప్రతి పెట్టె విలువతో పోల్చడం ద్వారా అతను ఎక్కడ తాకినట్లు మనం can హించవచ్చు.
if (X <105 && X> 50) // కాలమ్ 2 లోని బటన్లను గుర్తించడం {if (Y> 0 && Y <85) {Serial.println ("బటన్ 0"); (సంఖ్య == 0) సంఖ్య = 0 అయితే // బటన్ 0 నొక్కినప్పుడు; else సంఖ్య = (సంఖ్య * 10) + 0; // రెండుసార్లు నొక్కితే} if (Y> 85 && Y <140) {Serial.println ("బటన్ 2"); if (సంఖ్య == 0) సంఖ్య = 2; else సంఖ్య = (సంఖ్య * 10) + 2; // రెండుసార్లు నొక్కినప్పుడు}
3. సంఖ్యలను ప్రదర్శించడం మరియు ఫలితాన్ని లెక్కించడం:
చివరి దశ ఫలితాన్ని లెక్కించి వాటిని టిఎఫ్టి ఎల్సిడి స్క్రీన్లో ప్రదర్శించడం. ఈ ఆర్డునో కాలిక్యులేటర్ 2 సంఖ్యలతో మాత్రమే ఆపరేషన్ చేయగలదు. ఈ రెండు సంఖ్యలకు వేరియబుల్స్ “Num1” మరియు “Num2” అని పేరు పెట్టారు. వేరియబుల్ “సంఖ్య” Num1 మరియు Num2 నుండి విలువను ఇస్తుంది మరియు తీసుకుంటుంది మరియు ఫలితాన్ని కూడా కలిగి ఉంటుంది.
ఉపయోగం బటన్ను నొక్కినప్పుడు, సంఖ్యకు ఒక అంకె జోడించబడుతుంది. మరొక బటన్ నొక్కినప్పుడు, మునుపటి ఒక అంకె 10 తో గుణించబడుతుంది మరియు దానితో క్రొత్త సంఖ్య జోడించబడుతుంది. ఉదాహరణకు, మనం 8 ని నొక్కి 5 నొక్కండి, ఆపై 7 నొక్కండి. అప్పుడు మొదట వేరియబుల్ 8 ని కలిగి ఉంటుంది (8 * 10) + 5 = 85 అప్పుడు (85 * 10) +7 = 857. కాబట్టి చివరికి వేరియబుల్ ఉంటుంది విలువ 857 దానితో.
if (Y> 192 && Y <245) {Serial.println ("బటన్ 8"); if (సంఖ్య == 0) సంఖ్య = 8; else సంఖ్య = (సంఖ్య * 10) + 8; // మళ్ళీ నొక్కినప్పుడు}
మేము అదనంగా ఏదైనా ఆపరేషన్ చేసినప్పుడు, వినియోగదారులు అదనపు బటన్ను నొక్కినప్పుడు సంఖ్య నుండి విలువ Num1 కు బదిలీ చేయబడుతుంది మరియు తరువాత సంఖ్య సున్నా అవుతుంది, తద్వారా ఇది రెండవ సంఖ్యకు ఇన్పుట్ తీసుకోవడానికి సిద్ధంగా ఉంటుంది.
ఈక్వల్ నొక్కినప్పుడు సంఖ్యలోని విలువ Num2 కు పంపబడుతుంది , ఆపై సంబంధిత గణన (ఈ సందర్భంలో అదనంగా) తయారు చేయబడుతుంది మరియు ఫలితం మళ్ళీ వేరియబుల్ “సంఖ్య” లో నిల్వ చేయబడుతుంది.
చివరగా ఈ విలువ LCD స్క్రీన్లో ప్రదర్శించబడుతుంది.
పని:
ఈ ఆర్డునో టచ్ స్క్రీన్ కాలిక్యులేటర్ యొక్క పని చాలా సులభం. మీరు క్రింద ఇచ్చిన కోడ్ను మీ ఆర్డునోలో అప్లోడ్ చేసి కాల్చాలి. మీరు మీ ఎల్సిడి స్క్రీన్లో ప్రదర్శించే కాలిక్యులేటర్ను పొందుతారు.
ఇప్పుడు, మీరు ఏదైనా సంఖ్యను నమోదు చేసి, మీ లెక్కలను చేయవచ్చు. ఇది కేవలం రెండు ఒపెరాండ్లకు మాత్రమే పరిమితం చేయబడింది మరియు ప్రస్తుతానికి ఆపరేటర్ మాత్రమే. కానీ, మీరు కోడ్ను చాలా ఎంపికలను కలిగి ఉండటానికి దాన్ని సర్దుబాటు చేయవచ్చు.
గణన చేసిన తర్వాత ప్రతిసారీ తెరపై విలువను క్లియర్ చేయడానికి మీరు “సి” నొక్కాలి. మీరు ప్రాజెక్ట్ను అర్థం చేసుకున్నారని మరియు ఇలాంటిదే నిర్మించడాన్ని ఆస్వాదించారని ఆశిస్తున్నాము. మీకు ఏవైనా సందేహాలు ఉంటే వాటిని ఫోరమ్లలో లేదా క్రింద వ్యాఖ్య విభాగంలో పోస్ట్ చేయడానికి సంకోచించకండి. హ్యాపీ కంప్యూటింగ్ వరకు మరో ఆసక్తికరమైన ప్రాజెక్ట్తో తదుపరిసారి కలుద్దాం !!
క్రింద ఉన్న ప్రదర్శన వీడియోను కూడా తనిఖీ చేయండి.