- మెటీరియల్ అవసరం
- సర్క్యూట్ రేఖాచిత్రం
- 128 * 64 గ్రాఫికల్ ఎల్సిడి
- చిత్రాన్ని హెక్స్ కోడ్గా మారుస్తోంది:
- ఆర్డునో కోడ్ మరియు వర్కింగ్ వివరణ
ఎలక్ట్రానిక్ ప్రాజెక్టులలో అనేక రకాల ఎల్సిడిలు ఉపయోగించబడతాయి. మేము ఇప్పటికే మా అనేక ప్రాజెక్టులలో 16X2 LCD ని ఉపయోగించాము మరియు Arduino తో TFT LCD ని కూడా ఉపయోగించాము. 8051, AVR, Arduino మరియు మరెన్నో ఇంటర్ఫేసింగ్తో సహా ఈ లింక్ను అనుసరించడం ద్వారా మీరు మా మొత్తం 16X2 LCD సంబంధిత ప్రాజెక్ట్ను కనుగొనవచ్చు.
ST9720 గ్రాఫికల్ LCD ఆర్డినరీ LCD లు నుండి పూర్తిగా భిన్నంగా ఉంటుంది. సాధారణ ఎల్సిడి సాధారణ పరిమాణాన్ని లేదా సంఖ్యలను నిర్ణీత పరిమాణంలో మాత్రమే ముద్రించగలదు. గ్రాఫికల్ ఎల్సిడిలలో మనకు 128 * 64 ఉంది, ఇది 8192 చుక్కలు లేదా 8192/8 = 1024 పిక్సెల్లకు సమానం, కాబట్టి అక్షరంతో పాటు, ఈ జిఎల్సిడిలో ఏదైనా గ్రాఫికల్ ఇమేజ్ని ప్రదర్శించవచ్చు.
మేము ఇప్పటికే జిఎల్సిడిని 8051 తో ఇంటర్ఫేస్ చేసాము, ఈ రోజు మనం గ్రాఫికల్ ఎల్సిడిని ఆర్డునోతో ఇంటర్ఫేస్ చేస్తాము, దానిపై టెక్స్ట్ మరియు చిత్రాలను ప్రదర్శిస్తాము.
మెటీరియల్ అవసరం
- ఆర్డునో UNO
- 128 * 64 గ్రాఫికల్ ఎల్సిడి ఎస్టి 9720
- పొటెన్టోమీటర్ -10 కె
- వైర్లను కనెక్ట్ చేస్తోంది
- బ్రెడ్బోర్డ్
సర్క్యూట్ రేఖాచిత్రం
128 * 64 గ్రాఫికల్ ఎల్సిడి
ఈ గ్రాఫికల్ ఎల్సిడి తక్కువ విద్యుత్ వినియోగాన్ని కలిగి ఉంది మరియు బ్యాటరీ పవర్ పోర్టబుల్ పరికరానికి కూడా అనుకూలంగా ఉంటుంది. ఇది విస్తృత ఆపరేటింగ్ వోల్టేజ్ పరిధి 2.2v నుండి 5.5v వరకు ఉంది మరియు సీరియల్ మరియు 8/4-బిట్ సమాంతర సమాచార మార్పిడికి మద్దతు ఇస్తుంది మరియు ST7290 LCD కంట్రోలర్ / డ్రైవర్ IC తో వస్తుంది. పిఎస్బి పిన్ 15 ను ఉపయోగించి ఇంటర్ఫేస్ కమ్యూనికేషన్ మోడ్ను సమాంతర మరియు సీరియల్ మధ్య మార్చవచ్చు. ఈ గ్రాఫికల్ ఎల్సిడికి రీసెట్ ఫంక్షన్లో ఆటోమేటిక్ పవర్ ఉంది మరియు 8051, ఎవిఆర్, ఎఆర్ఎమ్, ఆర్డునో మరియు రాస్ప్బెర్రీ పై వంటి ఎంసియు ద్వారా సులభంగా నియంత్రించవచ్చు.
ST7290 128 * 64 గ్రాఫికల్ LCD గురించి వివరణాత్మక సమాచారం కోసం మీరు డేటాషీట్ ద్వారా వెళ్ళవచ్చు
పిన్ కాన్ఫిగరేషన్
పిన్ నం. |
పిన్ పేరు |
వివరణ |
1 |
Gnd |
గ్రౌండ్ టెర్మినల్ |
2 |
విసిసి |
ఇన్పుట్ సరఫరా వోల్టేజ్ (2.7v నుండి 5.5v వరకు) |
3 |
Vo |
LCD కాంట్రాస్ట్ |
4 |
ఆర్ఎస్ |
రిజిస్టర్ ఎంచుకోండి RS = 0: ఇన్స్ట్రక్షన్ రిజిస్టర్ RS = 1: డేటా రిజిస్టర్ |
5 |
R / W. |
నియంత్రణ చదవండి / వ్రాయండి |
6 |
ఇ |
ప్రారంభించండి |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
డేటా పిన్స్ (సమాంతర 8/4 బిట్ కమ్యూనికేషన్ మోడ్లో ఉపయోగిస్తారు) |
15 |
పిఎస్బి |
ఇంటర్ఫేస్ ఎంపిక: సీరియల్ కమ్యూనికేషన్ మోడ్ కోసం తక్కువ (0) 8/4-బిట్ సమాంతర బస్ మోడ్ కోసం అధిక (1). |
16 |
NC |
కనెక్ట్ కాలేదు |
17 |
ఆర్ఎస్టి |
పిన్ రీసెట్ చేయండి |
18 |
వోట్ |
LCD వోల్టేజ్ డబుల్ అవుట్పుట్. VOUT ≦ 7V. |
19 |
BLA |
బ్యాక్లైట్ సానుకూల సరఫరా |
20 |
BLK |
బ్యాక్లైట్ ప్రతికూల సరఫరా |
అప్లికేషన్స్
- పారిశ్రామిక పరికరం
- ఎంబెడెడ్ సిస్టమ్స్
- భద్రత
- మెడికల్
- చేతితో పట్టుకునే పరికరాలు
చిత్రాన్ని హెక్స్ కోడ్గా మారుస్తోంది:
గ్రాఫికల్ ఎల్సిడిలో ఏదైనా చిత్రాన్ని చూపించడానికి, మాకు ఆ చిత్రం యొక్క హెచ్ఎక్స్ కోడ్ అవసరం, కాబట్టి ఇమేజ్ను హెచ్ఎక్స్ కోడ్గా మార్చడానికి ఇక్కడ కొన్ని దశలు ఉన్నాయి. దీనికి ముందు మీరు చిత్రం పరిమాణం 128 * 64 మించకుండా చూసుకోవాలి.
దశ -1: సాధారణ చిత్రం యొక్క పరిమాణాన్ని 128 * 64 లేదా అంతకంటే తక్కువకు తగ్గించండి, మీరు MS పెయింట్ వంటి ఏదైనా ఇమేజ్ ఎడిటింగ్ సాఫ్ట్వేర్ను ఉపయోగించి చేయవచ్చు.
పై చిత్రంలో చూపినట్లుగా, మేము చిత్రం యొక్క వెడల్పు మరియు ఎత్తును 128 * 64 కు సెట్ చేస్తున్నాము.
దశ -2: అప్పుడు మీరు చిత్రాన్ని “image_name .bmp ” ఆకృతిలో సేవ్ చేయాలి.
పై చిత్రంలో చూపిన ఆకృతిని ఎంచుకోండి మరియు తదుపరి ప్రక్రియ కోసం ఫైల్ను సేవ్ చేయండి.
దశ -3: దానిని “.bmp” ఆకృతిలో సేవ్ చేసిన తర్వాత మీరు చిత్రాన్ని ప్రింటింగ్ కోసం హెక్స్ కోడ్గా మార్చాలి. దీని కోసం, నేను BMP ఫైల్ను హెక్స్ కోడ్గా మార్చే GIMP 2 అనే సాఫ్ట్వేర్ను ఉపయోగిస్తున్నాను.
పై చిత్రంలో చూపినట్లుగా, మేము GIMP 2 సాఫ్ట్వేర్లో “.bmp” ఫార్మాట్ ఫైల్ను తెరిచాము.
దశ-4: సాఫ్ట్వేర్ డౌన్లోడ్ అయిన తర్వాత, మీరు ముద్రించడానికి మరియు అప్పుడు కోరుకుంటున్న BMP ఫార్మాట్ చిత్రం ఫైల్ను తెరవడం వంటి సేవ్ అది " .xbm " (X బిట్మ్యాప్) ఫార్మాట్. దాన్ని సేవ్ చేసిన తర్వాత నోట్ప్యాడ్ను ఉపయోగించి ఆ ఫైల్ను తెరవండి మరియు మీరు చిత్రం యొక్క హెక్స్ కోడ్ను పొందుతారు.
దిగువ చిత్రంలో చూపినట్లుగా, ఫైల్ను xbm ఆకృతిలో సేవ్ చేయడానికి ఎగుమతి ఎంపికను ఎంచుకోండి:
దిగువ చిత్రంలో చూపిన ఆకృతిని ఎంచుకోండి మరియు ఇమేజ్ ఫైల్ను ఎగుమతి చేయండి.
ఫైల్ను ఎగుమతి చేసిన తర్వాత, మీరు ఫైల్ను “.xbm” ఆకృతిలో పొందుతారు. నోట్ప్యాడ్ను ఉపయోగించి xbm ఫైల్ను తెరవండి మరియు క్రింద ఉన్న చిత్రంలో చూపిన విధంగా మీరు HEX కోడ్ను పొందుతారు.
ఆర్డునో కోడ్ మరియు వర్కింగ్ వివరణ
ఆర్డునోతో గ్రాఫికల్ ఎల్సిడిని ఇంటర్ఫేస్ చేయడానికి, మొదట గ్రాఫికల్ ఎల్సిడి కోసం ఉపయోగించే లైబ్రరీని నిర్వచించాలి. Arduino కి ఈ లైబ్రరీ లేదు, మీరు ఈ లింక్ నుండి ఈ లైబ్రరీని డౌన్లోడ్ చేసి ఇన్స్టాల్ చేయాలి. అప్పుడు మీరు క్రింద ఉన్న లైబ్రరీని చేర్చవచ్చు:
# చేర్చండి "U8glib.h"
ఇక్కడ, ' u8g (10) ' అనేది ఆర్డినో UNO యొక్క 10 వ పిన్తో గ్రాఫికల్ LCD యొక్క RS (రిజిస్టర్ సెలెక్ట్) పిన్ యొక్క కనెక్షన్ను నిర్వచిస్తోంది. RS పిన్ వరుసగా సీరియల్ మరియు సమాంతర మోడ్లో ఉపయోగించినప్పుడు 'చిప్ సెలెక్ట్' మరియు 'రిజిస్టర్ సెలెక్ట్' గా ఉపయోగించబడుతుంది. కాబట్టి, మేము చిప్ ఎనేబుల్ చేసిన సీరియల్ మోడ్ మరియు RS పిన్ హై (1) మరియు చిప్ డిసేబుల్ కోసం తక్కువ (0) గా ఉపయోగిస్తున్నాము.
U8GLIB_ST7920_128X64_4X u8g (10);
ఇప్పుడు, చిత్రాన్ని ముద్రించడానికి మేము చిత్రం యొక్క హెక్స్ కోడ్ను క్రింది కోడ్లో ఉంచాలి. మీరు ఏ ఇతర చిత్రాన్ని అయినా ప్రింట్ చేయవచ్చు, మీరు చేయాల్సిందల్లా చిత్రం యొక్క హెక్స్ కోడ్ను అతికించండి.
const uint8_t rook_bitmap U8G_PROGMEM = image చిత్రం యొక్క హెక్స్ కోడ్ను ఇక్కడ అతికించండి };
ఈ ఆర్టికల్ చివరిలో పూర్తి ఆర్డునో కోడ్ను తనిఖీ చేయండి.
దిగువ ఫంక్షన్ చిత్రాన్ని ముద్రించడానికి ఉపయోగిస్తారు, ముద్రణ కోసం ఉపయోగించే ఆదేశం “u8g.drawXBMP (x, y, చిత్రం యొక్క వెడల్పు, చిత్రం యొక్క ఎత్తు)” . ఎక్కడ, X మరియు Y అనేది LCD లో చిత్రం యొక్క ప్రారంభ స్థానం మరియు మేము 128 * 64 మించకూడని చిత్రం యొక్క పరిమాణాన్ని కూడా వ్రాయాలి మరియు చివరి వాదనలో మేము ఫంక్షన్ అని పిలుస్తాము, దీనిలో మేము HEX కోడ్ ఆఫ్ ఇమేజ్ ఉంచాము.
శూన్య చిత్రం (శూన్యమైనది) {u8g.drawXBMP (0, 0, 128, 64, రూక్_బిట్మ్యాప్); }
మేము "డ్రా" మరియు "నెక్స్ట్" అని పిలిచే రెండు ఫంక్షన్లను చేసాము , దీనిలో కంటెంట్ను ప్రింట్ చేసే కోడ్ "u8g.drawStr (x, y," abcd ")" కమాండ్ ఉపయోగించి వ్రాయబడుతుంది . ఇక్కడ, x మరియు y అనేది LCD లో కంటెంట్ ముద్రించబడే స్థానం మరియు ' abcd ' అనేది ప్రింట్ చేయవలసిన కంటెంట్.
శూన్య డ్రా (శూన్యం) {u8g.setFont (u8g_font_unifont); u8g.drawStr (07, 35, "CIRCUIT DIGEST"); next శూన్యం తదుపరి (శూన్యమైనది) {u8g.setFont (u8g_font_unifont); u8g.drawStr (0, 15, "ఇంటర్ఫేసింగ్"); u8g.drawStr (0, 35, "గ్రాఫికల్ LCD"); u8g.drawStr (0, 55, "ఆర్డునోతో"); }
క్లియర్ఎల్సిడి () ఫంక్షన్ ఫంక్షన్కు శూన్య విలువను ఇవ్వడం ద్వారా ఎల్సిడిని క్లియర్ చేయడానికి తయారు చేయబడింది.
void clearLCD () {u8g.firstPage (); {} అయితే (u8g.nextPage ()) చేయండి; }
దిగువ కోడ్ను ఉపయోగించడం ద్వారా పిక్సెల్, రంగు మరియు తీవ్రతను ఏర్పాటు చేస్తుంది
శూన్య సెటప్ (శూన్యమైనది) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // తెలుపు} else ఉంటే (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // గరిష్ట తీవ్రత} else if (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // else పిక్సెల్ if else if (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255,255,255); }}
గర్జన లూప్ కొనసాగుతోంది టెక్స్ట్ మరియు చిత్రం ప్రింట్ ఇచ్చిన ఆలస్యం తర్వాత. మొదట, మేము డ్రా ఫంక్షన్ ఉపయోగించి మరియు 2 సెకన్ల తరువాత “సర్క్యూట్ డైజెస్ట్” ను ముద్రించాము. ఆలస్యం మేము క్లియర్ఎల్సిడి ఫంక్షన్ను ఉపయోగించి స్క్రీన్ను క్లియర్ చేసి, ఆపై తదుపరి ఫంక్షన్ను ఉపయోగించి “ ఆర్డునో ఉపయోగించి ఇంటర్ఫేసింగ్ గ్రాఫికల్ ఎల్సిడిని ” ప్రింట్ చేసాము . అప్పుడు మేము పిక్చర్ () ఫంక్షన్ను ఉపయోగించి చిత్రాన్ని ముద్రించాము, ఇది 3 సెకన్ల పాటు తెరపై ఉంటుంది. విద్యుత్ సరఫరా ఆన్ అయ్యే వరకు ఇది కొనసాగుతుంది.
శూన్య లూప్ (శూన్యమైనది) {u8g.firstPage (); చేయండి {డ్రా (); } ఉండగా (u8g.nextPage ()); ఆలస్యం (2000); clearLCD (); u8g.firstPage (); చేయండి {తదుపరి (); } ఉండగా (u8g.nextPage ()); ఆలస్యం (2000); clearLCD (); u8g.firstPage (); చేయండి {చిత్రం (); } ఉండగా (u8g.nextPage ()); ఆలస్యం (3000); clearLCD (); ఆలస్యం (50); }
ఇచ్చిన కోడ్ను ఉపయోగించి ఆర్డునోను ప్రోగ్రామింగ్ చేసిన తరువాత, సర్క్యూట్ రేఖాచిత్రం ప్రకారం గ్రాఫికల్ ఎల్సిడిని ఆర్డునోతో కనెక్ట్ చేయండి మరియు అడాప్టర్ లేదా యుఎస్బి ఉపయోగించి ఆర్డునోను సరఫరా చేయండి. మీరు క్రింద ఇచ్చిన వీడియోలో చూపిన విధంగా గ్రాఫికల్ ఎల్సిడిలో కంటెంట్ మరియు ఇమేజ్ ముద్రించబడుతుంది.
అర్కునోతో నోకియా 5110 గ్రాఫికల్ ఎల్సిడిని ఇంటర్ఫేసింగ్ను కూడా తనిఖీ చేయండి,