- I2C కమ్యూనికేషన్ ప్రోటోకాల్ అంటే ఏమిటి?
- పదార్థాలు అవసరం
- I2C మాడ్యూల్
- సర్క్యూట్ రేఖాచిత్రం
- I2C కంట్రోలర్ చిరునామాను కనుగొనడానికి కోడ్
- ESP32 కోసం కోడ్
మునుపటి ట్యుటోరియల్లో, 5 పిన్లను ఉపయోగించే SPI కమ్యూనికేషన్ను ఉపయోగించి OLED ESP32 తో ఇంటర్ఫేస్ చేయబడింది. ఈ ట్యుటోరియల్లో, మేము 16x2 LCD ని ESP32 తో ఇంటర్ఫేస్ చేస్తాము, I2C కమ్యూనికేషన్ సహాయంతో 2 పిన్లను మాత్రమే ఉపయోగిస్తాము. ఇది ESP32 ఉపయోగించే పిన్ల సంఖ్యను తగ్గిస్తుంది, తద్వారా వేర్వేరు సెన్సార్లను ఇంటర్ఫేస్ చేయడానికి ఎక్కువ సంఖ్యలో ESP32 పిన్లు ఉచితంగా ఉంటాయి.
I2C కమ్యూనికేషన్ ప్రోటోకాల్ అంటే ఏమిటి?
I2C అనే పదం “ ఇంటర్ ఇంటిగ్రేటెడ్ సర్క్యూట్లు”. ఇది సాధారణంగా IIC లేదా I స్క్వేర్డ్ సి లేదా కొన్ని ప్రదేశాలలో 2-వైర్ ఇంటర్ఫేస్ ప్రోటోకాల్ (TWI) గా సూచించబడుతుంది, అయితే ఇవన్నీ ఒకే విధంగా ఉంటాయి. I2C ఒక సింక్రోనస్ కమ్యూనికేషన్ ప్రోటోకాల్, అంటే సమాచారాన్ని పంచుకునే రెండు పరికరాలు తప్పనిసరిగా సాధారణ గడియార సంకేతాన్ని పంచుకోవాలి. ఇది సమాచారాన్ని పంచుకోవడానికి SDA మరియు SCL అనే రెండు వైర్లు మాత్రమే కలిగి ఉంది, వీటిలో SCL క్లాక్ సిగ్నల్ కోసం ఉపయోగించబడుతుంది మరియు SDA డేటాను పంపడానికి మరియు స్వీకరించడానికి ఉపయోగించబడుతుంది.
మీరు I2C1602 LCD కంట్రోలర్ అంతర్నిర్మితంగా ఉన్న I2C LCD మాడ్యూల్ను కొనుగోలు చేయవచ్చు లేదా ESP32 తో 16x2 LCD ని ఇంటర్ఫేస్ చేయడానికి I2C కంట్రోలర్ను కొనుగోలు చేయవచ్చు.
పదార్థాలు అవసరం
- ESP32
- 16 * 2 ఎల్సిడి డిస్ప్లే
- I2C LCD కంట్రోలర్
- తీగలు
- బ్రెడ్బోర్డ్
I2C మాడ్యూల్
I2C కంట్రోలర్లో IC PCF8574 ఉంది, ఇది రెండు-వైర్ ద్వి దిశాత్మక I2C- బస్ సీరియల్ క్లాక్ (SCL) మరియు సీరియల్ డేటా (SDA) ద్వారా సాధారణ-ప్రయోజన రిమోట్ I / O విస్తరణను అందిస్తుంది. ఇది చాలా ఉపయోగకరమైన IC మరియు LED సంకేతాలు బోర్డులు, డిస్ప్లేలు, కీ ప్యాడ్లు, పారిశ్రామిక నియంత్రణ మొదలైన వాటిలో ఉపయోగించవచ్చు. I2C బస్సు చిరునామా కోసం 8 I / O పిన్స్, 3 పిన్స్ (A0, A1, A2) మరియు SDA, SCL పిన్స్ ఉన్నాయి.
ఎల్సిడికి విరుద్ధంగా నియంత్రించడానికి ఎల్సిడి కంట్రోలర్ బోర్డు ఇన్బిల్ట్ పొటెన్షియోమీటర్ను కలిగి ఉంది.
IC మరియు LCD కంట్రోలర్ యొక్క పిన్ రేఖాచిత్రాలు క్రింద ఇవ్వబడ్డాయి.
సర్క్యూట్ రేఖాచిత్రం
ESP32 తో LCD ని ఇంటర్ఫేసింగ్ కోసం కనెక్షన్లు క్రింద ఇవ్వబడ్డాయి
- LCD డిస్ప్లే యొక్క 1-16 పిన్ చేయడానికి I2C మాడ్యూల్ యొక్క పిన్ 1-16ని కనెక్ట్ చేయండి.
- I2C మాడ్యూల్ యొక్క SDA పిన్ -> ESP32 యొక్క SDA పిన్ అంటే D21
- I2C మాడ్యూల్ యొక్క SCL పిన్ -> ESP32 యొక్క SCL పిన్ అంటే D22
నేను ప్రదర్శన కోసం ESP32 యొక్క 3v ను I2C యొక్క 5v కి కనెక్ట్ చేసాను, కాని డేటాను సరిగ్గా ప్రదర్శించడానికి I2C మాడ్యూల్ కోసం 5V సరఫరా అవసరం, ఎందుకంటే ESP32 3.2 వోల్ట్లను మాత్రమే ఇవ్వగలదు, ఇది I2C మాడ్యూల్కు తక్కువగా ఉంటుంది మరియు డేటా స్పష్టంగా కనిపించదు. కాబట్టి, బాహ్య 5 వి సరఫరాను ఉపయోగించడం మంచిది.
మాకు ESP32 కోసం బోర్డు ఫైళ్లు అవసరం, కాబట్టి మీరు ESP32 కి కొత్తగా ఉంటే మొదట ESP32 ట్యుటోరియల్తో ప్రారంభించడం అనుసరించండి, ఆపై ఇక్కడకు తిరిగి వెళ్లండి. మీరు ఎల్సిడిని ఐ 2 సి లేకుండా ఇఎస్పి 32 తో కనెక్ట్ చేయవచ్చు కాని దీనికి ఇఎస్పి 32 పిన్స్ ఎక్కువ పడుతుంది.
I2C కంట్రోలర్ చిరునామాను కనుగొనడానికి కోడ్
ప్రధాన కోడ్లోకి వెళ్లేముందు మనం మొదట I2C మాడ్యూల్ యొక్క చిరునామాను కనుగొనాలి.
I2C కంట్రోలర్లో ఇన్బిల్ట్ ADDRESS బిట్ ఉంది, ఇది I2C బస్సును నియంత్రించడానికి ఉపయోగించబడుతుంది. డిఫాల్ట్ ADDRESS 0x27 కానీ కొన్ని సందర్భాల్లో ఇది 0x3f కావచ్చు. కాబట్టి, I2C కంట్రోలర్ యొక్క చిరునామాను తనిఖీ చేయడానికి, పైన చూపిన విధంగా సర్క్యూట్ను కనెక్ట్ చేయండి క్రింద ఇచ్చిన కోడ్ను అప్లోడ్ చేయండి మరియు సీరియల్ మానిటర్ను తెరవండి, మీరు చిరునామాను హెక్సాడెసిమల్లో చూస్తారు.
# చేర్చండి
మేము ఈ చిరునామాను మా LCD ఇంటర్ఫేస్ కోడ్లో ఉపయోగిస్తున్నామని గమనించండి.
I2C కంట్రోలర్లో, మీరు చూడగలిగినట్లుగా A0, A1 మరియు A2 గా లేబుల్ చేయబడిన మూడు జంపర్లు / టంకం ప్యాడ్లు ఉన్నాయి. మాడ్యూల్ యొక్క చిరునామాను మార్చడానికి ఇవి ఉపయోగించబడతాయి. చిరునామా ప్యాడ్లను మీరు కనెక్ట్ చేస్తే డిఫాల్ట్ విలువ 0x27 లేదా 0x3F నుండి చిరునామా ఎలా మారుతుందో ఇక్కడ ఉంది. (1 = కనెక్ట్ కాలేదు. 0 = కనెక్ట్ చేయబడింది):
A0 |
ఎ 1 |
ఎ 2 |
HEX చిరునామా |
1 |
1 |
1 |
0x27 |
0 |
1 |
1 |
0x26 |
1 |
0 |
1 |
0x25 |
0 |
0 |
1 |
0x24 |
1 |
1 |
0 |
0x23 |
0 |
1 |
0 |
0x22 |
1 |
0 |
0 |
0x21 |
0 |
0 |
0 |
0x20 |
ESP32 కోసం కోడ్
మొదట మనకు I2C LCD మాడ్యూల్ కోసం లైబ్రరీ లిక్విడ్ క్రిస్టల్_ఐ 2 సి అవసరం. మేము ఇక్కడ I2C ఉపయోగిస్తున్నందున సాధారణ లిక్విడ్క్రైటల్ లైబ్రరీ పనిచేయదు.
ఈ https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library నుండి లైబ్రరీని డౌన్లోడ్ చేయండి
కోడ్ సీరియల్ మానిటర్లో టైప్ చేసినవన్నీ ఎల్సిడిలో ప్రదర్శించబడే విధంగా వ్రాయబడ్డాయి. Arduino IDE మా కోడ్ను వ్రాయడానికి మరియు అప్లోడ్ చేయడానికి ఉపయోగించబడింది.
మొదట, మేము ఆర్డునో IDE తో వచ్చే I2C కమ్యూనికేషన్ కోసం వైర్ లైబ్రరీని చేర్చాలి .
# చేర్చండి
అప్పుడు I2C LCD కోసం, ఇంతకు ముందు డౌన్లోడ్ చేయబడిన లిక్విడ్క్రిస్టల్_ఐ 2 సిహెచ్ను చేర్చండి.
# చేర్చండి
అప్పుడు 16 అక్షరాల 2 లైన్ ప్రదర్శన కోసం పైన ఇచ్చిన స్కానర్ కోడ్ను అమలు చేయడం ద్వారా LCD I2C చిరునామాను 0x27 లేదా మీకు లభించిన చిరునామాను సెట్ చేయండి.
లిక్విడ్ క్రిస్టల్_ఐ 2 సి ఎల్సిడి (0x27, 16,2);
లో సెటప్ ఫంక్షన్, 2 లైన్లు 16 అక్షరాలు కోసం సీరియల్ కమ్యూనికేషన్ మరియు LCD ప్రారంభించడం మరియు బ్యాక్లైట్ ఆన్. మీరు బ్యాక్లైట్ను ఆపివేయాలనుకుంటే lcd .noBacklight () ను ఉపయోగించండి మరియు మీ ప్రాధాన్యత ప్రకారం setCursor () ఫంక్షన్ను మార్చండి.
శూన్య సెటప్ () { Serial.begin (9600); lcd.init (); lcd.backlight (); lcd.setCursor (0,0); lcd.print ("హలో, ప్రపంచం!"); ఆలస్యం (1000); lcd.setCursor (0,1); lcd.print ("circdigest.com"); ఆలస్యం (3000);
LCD మొదట సీరియల్ మానిటర్ను ఉపయోగించడానికి సూచనలను ప్రదర్శిస్తుంది మరియు ప్రదర్శించడానికి అక్షరాలను టైప్ చేస్తుంది.
సీరియల్ మానిటర్ ఎంపికను "నో లైన్ ఎండింగ్" కు సెట్ చేయండి
lcd.clear (); lcd.setCursor (0,0); lcd.print ("సెర్ ఉపయోగించండి. మానిటర్"); lcd.setCursor (0,1); lcd.print ("ప్రదర్శించడానికి టైప్ చేయండి"); }
సీరియల్.అవబుల్ () ఫంక్షన్ను ఉపయోగించి సీరియల్ పోర్ట్ నుండి వచ్చే ఇన్కమింగ్ సీరియల్ డేటా కోసం లూప్ ఫంక్షన్ నిరంతరం తనిఖీ చేస్తుంది. ఒక సందేశాన్ని ఉంటే, అది రెండవ వేచి మరియు ఉపయోగించి LCD సందేశాన్ని ప్రింట్ LCD రాయటానికి () మరియు Serial.read () విధులు.
శూన్య లూప్ () {{// సీరియల్ పోర్టుపై అక్షరాలు వచ్చినప్పుడు… if (Serial.available ()) {ఆలస్యం (100); // మొత్తం సందేశం lcd.clear () రావడానికి కొంచెం వేచి ఉండండి; // స్క్రీన్ను క్లియర్ చేస్తున్నప్పుడు (సీరియల్.అవబుల్ ()> 0) {// అందుబాటులో ఉన్న అన్ని అక్షరాలను చదవండి lcd.write (Serial.read ()); // ప్రతి అక్షరాన్ని LCD కి ప్రదర్శిస్తుంది}}}}
పోటీ కోడ్ క్రింద ఇవ్వబడింది, కాబట్టి కోడ్ను అప్లోడ్ చేసి సీరియల్ మానిటర్ను తెరవండి. అప్పుడు సందేశాన్ని టైప్ చేసి ఎంటర్ నొక్కండి.మీ సందేశం LCD లో ప్రదర్శించబడుతుంది.
మీకు ఎల్సిడిపై సరైన లేదా స్పందన రాకపోతే, మీ ఐ 2 సి కంట్రోలర్ చిరునామాను తనిఖీ చేయండి లేదా సరైన చిరునామాను పొందడానికి పైన ఇచ్చిన కోడ్తో మళ్లీ స్కాన్ చేయండి .