- పదార్థాలు అవసరం
- సర్క్యూట్ రేఖాచిత్రం మరియు కనెక్షన్
- Arduino ఉపయోగించి LCD కొరకు STM32 ప్రోగ్రామింగ్
- ప్రోగ్రామ్ను STM32F103C8T6 కు అప్లోడ్ చేస్తోంది
ఏదైనా మైక్రోకంట్రోలర్ ప్రాజెక్ట్ కోసం, డిస్ప్లే యూనిట్ను దానితో ఇంటర్ఫేస్ చేయడం వల్ల ప్రాజెక్ట్ చాలా సులభం మరియు వినియోగదారుతో ఇంటరాక్ట్ అయ్యేలా చేస్తుంది. మైక్రోకంట్రోలర్లకు సాధారణంగా ఉపయోగించే డిస్ప్లే యూనిట్ 16 × 2 ఆల్ఫా న్యూమరిక్ డిస్ప్లేలు. ఈ రకమైన డిస్ప్లేలు వినియోగదారుకు కీలకమైన సమాచారాన్ని ప్రదర్శించడానికి ఉపయోగపడతాయి, కానీ ప్రాజెక్ట్ యొక్క ప్రారంభ అభివృద్ధి దశలో డీబగ్గింగ్ సాధనంగా కూడా పనిచేస్తాయి. కాబట్టి, ఈ ట్యుటోరియల్లో మనం 16 × 2 ఎల్సిడి డిస్ప్లేను STM32F103C8T6 STM32 డెవలప్మెంట్ బోర్డ్తో ఎలా ఇంటర్ఫేస్ చేయవచ్చో నేర్చుకుంటాము మరియు దానిని ఆర్డునో IDE ఉపయోగించి ప్రోగ్రామ్ చేస్తాము. ఆర్డునోతో పరిచయం ఉన్నవారికి ఈ ట్యుటోరియల్ కేక్ వాక్ అవుతుంది ఎందుకంటే అవి రెండూ చాలా పోలి ఉంటాయి. STM32 బ్లూ పిల్ బోర్డ్ గురించి మరింత తెలుసుకోవడానికి మా ప్రారంభ ట్యుటోరియల్ ను అనుసరించండి.
పదార్థాలు అవసరం
- STM32 బ్లూ పిల్ డెవలప్మెంట్ బోర్డు
- 16 × 2 ఎల్సిడి డిస్ప్లే
- FTDI ప్రోగ్రామర్
- వైర్లను కనెక్ట్ చేస్తోంది
- ఎల్సిడి
16 × 2 డాట్ మ్యాట్రిక్స్ LCD డిస్ప్లేకి సంక్షిప్త పరిచయం
ఇంతకు ముందు చెప్పినట్లుగా, ఎనర్జియా IDE ఒక అందమైన లైబ్రరీని అందిస్తుంది, ఇది కేక్ ముక్కను ఇంటర్ఫేసింగ్ చేస్తుంది మరియు అందువల్ల డిస్ప్లే మాడ్యూల్ గురించి ఏదైనా తెలుసుకోవడం తప్పనిసరి కాదు. కానీ, మనం ఉపయోగిస్తున్నదాన్ని చూపించడం ఆసక్తికరంగా ఉండదా !!
ప్రదర్శనకు 16 నిలువు వరుసలు మరియు 2 వరుసలు ఉన్నాయని 16 × 2 పేరు సూచిస్తుంది, ఇవి కలిసి (16 * 2) 32 పెట్టెలను ఏర్పరుస్తాయి. దిగువ చిత్రంలో ఒక సింగిల్ బాక్స్ ఇలా కనిపిస్తుంది
ఒకే పెట్టెలో 5 వరుసలు మరియు 8 నిలువు వరుసల మ్యాట్రిక్స్ ఆర్డర్తో 40 పిక్సెల్స్ (చుక్కలు) ఉన్నాయి, ఈ 40 పిక్సెల్లు కలిసి ఒక అక్షరాన్ని ఏర్పరుస్తాయి. అదేవిధంగా, అన్ని పెట్టెలను ఉపయోగించి 32 అక్షరాలను ప్రదర్శించవచ్చు. ఇప్పుడు పిన్అవుట్లను పరిశీలించండి.
ఎల్సిడిలో మొత్తం 16 పిన్లు ఉన్నాయి, పైన చూపిన విధంగా, వాటిని ఈ క్రింది విధంగా నాలుగు గ్రూపులుగా వర్గీకరించవచ్చు
సోర్స్ పిన్స్ (1, 2 మరియు 3): ఈ పిన్స్ డిస్ప్లే కోసం శక్తి మరియు కాంట్రాస్ట్ స్థాయిని మూలం చేస్తాయి
కంట్రోల్ పిన్స్ (4, 5 మరియు 6): ఈ పిన్స్ ఎల్సిడి ఇంటర్ఫేసింగ్ ఐసిలోని రిజిస్టర్లను సెట్ చేస్తుంది / నియంత్రిస్తుంది (మరిన్ని ఇది క్రింది లింక్లో చూడవచ్చు)
డేటా / కమాండ్ పిన్స్ (7 నుండి 14 వరకు): ఈ పిన్స్ ఎల్సిడిలో ఏ సమాచారాన్ని ప్రదర్శించాలో డేటాను అందిస్తుంది.
LED పిన్స్ (15 మరియు 16): ఈ పిన్స్ అవసరమైతే LCD యొక్క బ్యాక్లైట్ను మెరుస్తూ ఉంటాయి (ఐచ్ఛికం).
ఈ 16 పిన్స్లో, ఈ 16x2 ఎల్సిడి కథనానికి ఈ ఎల్సిడి డిస్ప్లే జంప్ గురించి మరింత తెలుసుకోవాలంటే ఎల్సిడి సరైన పనికి 10 పిన్లు మాత్రమే తప్పనిసరి.
సర్క్యూట్ రేఖాచిత్రం మరియు కనెక్షన్
STM32F103C8T6 STM32 బ్లూ పిల్ బోర్డ్తో ఇంటర్ఫేస్ 16 * 2 డాట్ మ్యాట్రిక్స్ LCD కి సర్క్యూట్ రేఖాచిత్రం క్రింద చూపబడింది. ఇది ఫ్రిట్జింగ్ సాఫ్ట్వేర్ను ఉపయోగించి తయారు చేయబడింది.
మీరు చూడగలిగినట్లుగా పూర్తి కనెక్షన్ బ్రెడ్బోర్డ్ ద్వారా తయారు చేయబడింది. STM32 మైక్రోకంట్రోలర్ను ప్రోగ్రామ్ చేయడానికి మాకు FTDI బోర్డు అవసరం. మా మునుపటి ట్యుటోరియల్ మాదిరిగానే, మేము FTDI బోర్డ్ను STM32 కు వైర్ చేసాము, FDTI ప్రోగ్రామర్ యొక్క Vcc మరియు గ్రౌండ్ పిన్ వరుసగా 5V పిన్ మరియు STM32 యొక్క గ్రౌండ్ పిన్తో అనుసంధానించబడి ఉన్నాయి. STM32 బోర్డ్ మరియు LCD ని శక్తివంతం చేయడానికి ఇది ఉపయోగించబడుతుంది ఎందుకంటే రెండూ + 5V ను అంగీకరించగలవు. FTDI బోర్డు యొక్క Rx మరియు Tx పిన్ STM32 యొక్క A9 మరియు A10 పిన్తో అనుసంధానించబడి ఉంది, తద్వారా బూట్ లోడర్ లేకుండా నేరుగా బోర్డును ప్రోగ్రామ్ చేయవచ్చు.
తరువాత ఎల్సిడిని ఎస్టిఎం 32 బోర్డుతో అనుసంధానించాలి. మేము LCD ని 4-బిట్ మోడ్లో ఉపయోగించబోతున్నాము, కాబట్టి మేము STM32F103C8T6 LCD ఇంటర్ఫేసింగ్ సర్క్యూట్లో చూపిన విధంగా 4 డేటా బిట్ పిన్లను (DB4 నుండి DB7 వరకు) మరియు రెండు కంట్రోల్ పిన్ (RS మరియు EN) ను STM32 బోర్డుకు కనెక్ట్ చేయాలి. పై రేఖాచిత్రం. కనెక్షన్ చేయడానికి క్రింది పట్టిక మీకు సహాయం చేస్తుంది.
ఎల్సిడి పిన్ నం. |
LCD పిన్ పేరు |
STM32 పిన్ పేరు |
1 |
గ్రౌండ్ (Gnd) |
గ్రౌండ్ (జి) |
2 |
వీసీసీ |
5 వి |
3 |
VEE |
గ్రౌండ్ (జి) |
4 |
రిజిస్టర్ సెలెక్ట్ (RS) |
పిబి 11 |
5 |
చదవండి / వ్రాయండి (RW) |
గ్రౌండ్ (జి) |
6 |
ప్రారంభించండి (EN) |
పిబి 10 |
7 |
డేటా బిట్ 0 (DB0) |
కనెక్షన్ లేదు (NC) |
8 |
డేటా బిట్ 1 (డిబి 1) |
కనెక్షన్ లేదు (NC) |
9 |
డేటా బిట్ 2 (డిబి 2) |
కనెక్షన్ లేదు (NC) |
10 |
డేటా బిట్ 3 (డిబి 3) |
కనెక్షన్ లేదు (NC) |
11 |
డేటా బిట్ 4 (డిబి 4) |
పిబి 0 |
12 |
డేటా బిట్ 5 (డిబి 5) |
పిబి 1 |
13 |
డేటా బిట్ 6 (డిబి 6) |
పిసి 13 |
14 |
డేటా బిట్ 7 (డిబి 7) |
పిసి 14 |
15 |
LED పాజిటివ్ |
5 వి |
16 |
LED నెగటివ్ |
గ్రౌండ్ (జి) |
కనెక్షన్లు పూర్తయిన తర్వాత మేము ఆర్డునో IDE ని తెరిచి ప్రోగ్రామింగ్ ప్రారంభించవచ్చు.
Arduino ఉపయోగించి LCD కొరకు STM32 ప్రోగ్రామింగ్
ఈ ట్యుటోరియల్లో చెప్పినట్లుగా, మా STM32 మైక్రోకంట్రోలర్ను ప్రోగ్రామ్ చేయడానికి మేము Arduino IDE ని ఉపయోగిస్తాము. కానీ, డిఫాల్ట్గా Arduino IDE STM32 బోర్డ్ను ఇన్స్టాల్ చేయదు, అందువల్ల మనం ఒక ప్యాకేజీని డౌన్లోడ్ చేసుకోవాలి మరియు దాని కోసం Arduino IDE ని సిద్ధం చేయాలి. Arduino IDE ని ఉపయోగించి STM32F103C8T6 తో ప్రారంభించడానికి మా మునుపటి ట్యుటోరియల్లో ఇది మేము చేసిన పని. కాబట్టి మీరు ఇన్స్టాల్ చేయకపోతే అవసరమైన ప్యాకేజీలు ఈ ట్యుటోరియల్కు తిరిగి వస్తాయి మరియు మీరు ఇక్కడ కొనసాగడానికి ముందు దాన్ని అనుసరించండి.
ఆర్డునో IDE లో STM32 బోర్డ్ వ్యవస్థాపించబడిన తర్వాత, మేము ప్రోగ్రామింగ్ ప్రారంభించవచ్చు. ఈ కార్యక్రమం ఆర్డునో బోర్డుతో సమానంగా ఉంటుంది, STM32 మరియు Arduino లకు సంకేతాలు భిన్నంగా ఉన్నందున పిన్ పేర్లు మాత్రమే మారుతాయి. పూర్తి ప్రోగ్రామ్ ఈ పేజీ చివరిలో ఇవ్వబడింది, కాని ప్రోగ్రామ్ను వివరించడానికి నేను క్రింద చూపిన విధంగా చిన్న అర్ధవంతమైన స్నిప్పెట్లుగా విభజించాను.
మా మైక్రోకంట్రోలర్లను ప్రోగ్రామింగ్ చేయడానికి ఆర్డునోను ఉపయోగించడం వల్ల గుర్తించదగిన ప్రయోజనం ఏమిటంటే, ఆర్డునో దాదాపు ప్రతి ప్రసిద్ధ సెన్సార్లు మరియు యాక్యుయేటర్లకు రెడీమేడ్ లైబ్రరీలను కలిగి ఉంది. కాబట్టి ఇక్కడ మేము ప్రోగ్రామింగ్ను చాలా సులభతరం చేసే ఎల్సిడి లైబ్రరీని చేర్చడం ద్వారా మా ప్రోగ్రామ్ను ప్రారంభిస్తాము.
# చేర్చండి
తరువాతి పంక్తిలో మనం ఎల్సిడి డిస్ప్లే కంట్రోల్ మరియు డేటా లైన్లను కనెక్ట్ చేసిన ఎస్టిఎమ్ 32 యొక్క జిపిఐఓ పిన్లను పేర్కొనాలి. దీన్ని చేయడానికి మేము మా హార్డ్వేర్ను తనిఖీ చేయాలి, సౌలభ్యం కోసం మీరు ఎగువన ఇచ్చిన పట్టికను కూడా చూడవచ్చు, ఇది STM32 యొక్క GPIO పిన్కు వ్యతిరేకంగా LCD యొక్క పిన్ పేర్లను జాబితా చేస్తుంది. పిన్స్ గురించి ప్రస్తావించిన తరువాత మేము లిక్విడ్ క్రిస్టల్ ఫంక్షన్ను ఉపయోగించి ఎల్సిడిని ప్రారంభించవచ్చు. క్రింద చూపిన విధంగా మేము మా LCD కి “ lcd ” అని పేరు పెట్టాము .
const int rs = PB11, en = PB10, d4 = PB0, d5 = PB1, d6 = PC13, d7 = PC14; // LCD అనుసంధానించబడిన తో పిన్ పేర్లు LiquidCrystal LCD (రూ, en, D4, D5, D6, D7); // ఎల్సిడిని ప్రారంభించండి
తరువాత మనం సెటప్ ఫంక్షన్ లోపల అడుగు పెడతాము. ఇక్కడ మొదట మనం ఏ రకమైన ఎల్సిడిని ఉపయోగిస్తున్నామో ప్రస్తావించాము. ఇది 16 * 2 LCD కాబట్టి మేము lcd.begin (16,2) పంక్తిని ఉపయోగిస్తాము . శూన్య సెటప్ ఫంక్షన్ లోపల కోడ్ ఒక్కసారి మాత్రమే అమలు అవుతుంది. కాబట్టి 2 సెకన్ల పాటు తెరపైకి వచ్చి, ఆపై క్లియర్ అయ్యే పరిచయ వచనాన్ని ప్రదర్శించడానికి మేము దీనిని ఉపయోగిస్తాము. టెక్స్ట్ మేము ఫంక్షన్ ఉపయోగించడానికి కనిపించడం కలిగి ఉన్న స్థానం చెప్పలేదు lcd.setcursor మరియు మేము ఉపయోగించడానికి టెక్స్ట్ ప్రింట్ lcd.print ఫంక్షన్. ఉదాహరణకు, lcd.setCursor (0,0) కర్సర్ను మొదటి వరుసలో మరియు మొదటి నిలువు వరుసలో “ ఇంటర్ఫేసింగ్ LCD ” మరియు ఫంక్షన్ lcd.setCursor (0,1) ను ప్రింట్ చేస్తుంది. కర్సర్ను రెండవ వరుస మొదటి కాలమ్కు కదిలిస్తుంది, అక్కడ మేము “ సర్క్యూట్ డైజెస్ట్ ” అనే పంక్తిని ప్రింట్ చేస్తాము .
void setup () {lcd.begin (16, 2); // మేము 16 * 2 LCD lcd.setCursor (0, 0) ఉపయోగిస్తున్నాము; // మొదటి వరుసలో మొదటి కాలమ్ lcd.print ("ఇంటర్ఫేసింగ్ LCD"); // ఈ lcd.setCursor (0, 1) ను ముద్రించండి; // సెకండ్ వరుసలో మొదటి కాలమ్ lcd.print ("- సర్క్యూట్ డైజెస్ట్"); // ఈ ఆలస్యాన్ని ముద్రించండి (2000); // రెండు సెకండ్ల కోసం వేచి ఉండండి lcd.clear (); // స్క్రీన్ క్లియర్}
పరిచయ వచనాన్ని ప్రదర్శించిన తరువాత, ఆలస్యాన్ని సృష్టించడం ద్వారా మేము ప్రోగ్రామ్ను 2 సెకన్లపాటు ఉంచుతాము, తద్వారా వినియోగదారు పరిచయ సందేశాన్ని చదవగలరు. ఈ ఆలస్యం లైన్ ఆలస్యం (2000) ద్వారా సృష్టించబడుతుంది, ఇక్కడ 2000 మిల్లు సెకన్లలో ఆలస్యం విలువ. ఆలస్యం తరువాత మేము LCD.clear () ఫంక్షన్ను ఉపయోగించి LCD ని క్లియర్ చేస్తాము, ఇది LCD లోని అన్ని వచనాలను తొలగించడం ద్వారా LCD ని క్లియర్ చేస్తుంది.
చివరగా శూన్య లూప్ లోపల , మేము మొదటి పంక్తిలో “STM32 – బ్లూ పిల్” మరియు రెండవ పంక్తిలో సెకన్ల విలువను ప్రదర్శిస్తాము. రెండవ విలువను మిల్లీస్ () ఫంక్షన్ నుండి పొందవచ్చు. Millis () సమయం MCU శక్తితో నుండి కుడి పెంచడం తీసుకుంటున్న ఒక టైమర్ ఉంది. విలువ మిల్లీ సెకన్ల రూపంలో ఉంటుంది కాబట్టి మన ఎల్సిడిలో ప్రదర్శించే ముందు దాన్ని 1000 ద్వారా విభజిస్తాము.
void loop () { lcd.setCursor (0, 0); // మొదటి వరుసలో మొదటి కాలమ్ lcd.print ("STM32-బ్లూ పిల్"); // ఈ lcd.setCursor (0, 1) ను ముద్రించండి ; // సెకండ్ వరుస వద్ద మొదటి కాలమ్ lcd.print (మిల్లిస్ () / 1000); // సెకండ్ల విలువను ముద్రించండి }
ప్రోగ్రామ్ను STM32F103C8T6 కు అప్లోడ్ చేస్తోంది
పై పేరాలో చర్చించినట్లుగా, కోడ్ అప్లోడ్ అయిన వెంటనే మీరు అవుట్పుట్ను గమనించగలరు. బోర్డు ప్రోగ్రామింగ్ మోడ్లో ఉన్నందున, మీరు బోర్డును శక్తివంతం చేసేటప్పుడు ఈ ప్రోగ్రామ్ తదుపరిసారి పనిచేయదు. కాబట్టి ప్రోగ్రామ్ అప్లోడ్ అయిన తర్వాత బూట్ 0 లోని జంపర్ను క్రింద చూపిన విధంగా 0 స్థానాలకు మార్చాలి. ఈ కార్యక్రమం ఇప్పటికే STM32 బోర్డ్లోకి అప్లోడ్ చేయబడినందున మనకు ఇప్పటికే FTDI బోర్డు అవసరం లేదు మరియు మొత్తం సెటప్ను STM32 బోర్డు యొక్క మైక్రో-యుఎస్బి పోర్ట్ ద్వారా శక్తినివ్వవచ్చు మరియు క్రింద చూపబడింది.
ఇది STM32 బోర్డ్తో LCD డిస్ప్లేని ఉపయోగించడంలో సహాయపడటానికి ఒక సాధారణ ఇంటర్ఫేసింగ్ ప్రాజెక్ట్, అయితే మీరు దీన్ని కూల్ ప్రాజెక్ట్లను నిర్మించడానికి ఉపయోగించవచ్చు. మీరు ట్యుటోరియల్ అర్థం చేసుకున్నారని మరియు దాని నుండి ఉపయోగకరమైనదాన్ని నేర్చుకున్నారని ఆశిస్తున్నాము. మీరు పని చేయడంలో ఏదైనా సమస్యను ఎదుర్కొన్నట్లయితే, దయచేసి సమస్యను పోస్ట్ చేయడానికి వ్యాఖ్య విభాగాన్ని ఉపయోగించండి లేదా ఇతర సాంకేతిక ప్రశ్నలకు ఫోరమ్లను ఉపయోగించండి. STM32 తో LCD డిస్ప్లే యొక్క పూర్తి పనిని క్రింద ఇచ్చిన వీడియోగా కూడా చూడవచ్చు.