ఈ ట్యుటోరియల్లో మేము ARDUINO UNO లో ADC (అనలాగ్ టు డిజిటల్ కన్వర్షన్) భావనను పరిచయం చేస్తున్నాము. అర్డునో బోర్డు ఆరు ADC ఛానెల్లను కలిగి ఉంది, ఈ క్రింది చిత్రంలో చూపబడింది. వాటిలో ఏదైనా ఒకటి లేదా అన్నీ అనలాగ్ వోల్టేజ్ కోసం ఇన్పుట్లుగా ఉపయోగించవచ్చు. Arduino Uno ADC (నుండి (0- (2 ^ 10) 1023) పూర్ణ విలువలు కాబట్టి) 10 బిట్ రిజల్యూషన్ ఉంది. దీని అర్థం 0 మరియు 513 వోల్ట్ల మధ్య ఇన్పుట్ వోల్టేజ్లను 0 మరియు 1023 మధ్య పూర్ణాంక విలువలుగా మ్యాప్ చేస్తుంది. కాబట్టి ప్రతి (5/1024 = 4.9mV) యూనిట్కు.
వీటన్నిటిలో మనం పొటెన్షియోమీటర్ లేదా కుండను 'A0' ఛానెల్కు కనెక్ట్ చేయబోతున్నాం మరియు ADC ఫలితాన్ని సాధారణ ప్రదర్శనలో చూపించబోతున్నాము. సాధారణ డిస్ప్లేలు 16x1 మరియు 16x2 డిస్ప్లే యూనిట్లు. 16x1 డిస్ప్లే యూనిట్లో 16 అక్షరాలు ఉంటాయి మరియు ఒకే వరుసలో ఉంటాయి. 16x2 లో మొత్తం 16in 1 స్టంప్ లైన్లో 32 అక్షరాలు మరియు 2 వ లైన్లో మరో 16 అక్షరాలు ఉంటాయి. ఇక్కడ ప్రతి అక్షరంలో 5x10 = 50 పిక్సెల్స్ ఉన్నాయని అర్థం చేసుకోవాలి, కాబట్టి ఒక అక్షరాన్ని ప్రదర్శించడానికి మొత్తం 50 పిక్సెల్స్ కలిసి పనిచేయాలి, కాని మనం దాని గురించి ఆందోళన చెందాల్సిన అవసరం లేదు ఎందుకంటే డిస్ప్లే యూనిట్లో మరొక కంట్రోలర్ (HD44780) ఉంది పిక్సెల్లను నియంత్రించే పని (మీరు దీన్ని ఎల్సిడి యూనిట్లో చూడవచ్చు, ఇది వెనుక భాగంలో ఉన్న నల్ల కన్ను).
భాగాలు అవసరం
హార్డ్వేర్: ARDUINO UNO, విద్యుత్ సరఫరా (5v), JHD_162ALCD (16x2LCD), 100uF కెపాసిటర్, 100KΩ పాట్ లేదా పొటెన్షియోమీటర్, 100nF కెపాసిటర్.
సాఫ్ట్వేర్: arduino IDE (Arduino nightly)
సర్క్యూట్ రేఖాచిత్రం మరియు వివరణ
16x2 LCD లో బ్యాక్ లైట్ ఉంటే అన్నింటికంటే 16 పిన్స్ ఉన్నాయి, బ్యాక్ లైట్ లేకపోతే 14 పిన్స్ ఉంటాయి. బ్యాక్ లైట్ పిన్లను శక్తివంతం చేయవచ్చు లేదా వదిలివేయవచ్చు. ఇప్పుడు 14 పిన్లలో 8 డేటా పిన్స్ (7-14 లేదా డి 0-డి 7), 2 విద్యుత్ సరఫరా పిన్స్ (1 & 2 లేదా విఎస్ఎస్ & విడిడి లేదా జిఎన్డి & + 5 వి), కాంట్రాస్ట్ కంట్రోల్ కోసం 3 వ పిన్ ఉన్నాయి (అక్షరాలు ఎంత మందంగా ఉండాలో VEE- నియంత్రిస్తుంది చూపబడింది), మరియు 3 కంట్రోల్ పిన్స్ (RS & RW & E).
సర్క్యూట్లో, నేను రెండు కంట్రోల్ పిన్లను మాత్రమే తీసుకున్నానని మీరు గమనించవచ్చు, కాంట్రాస్ట్ బిట్ మరియు READ / WRITE తరచుగా ఉపయోగించబడవు కాబట్టి వాటిని భూమికి తగ్గించవచ్చు. ఇది ఎల్సిడిని అత్యధిక కాంట్రాస్ట్ మరియు రీడ్ మోడ్లో ఉంచుతుంది. అక్షరాలు మరియు డేటాను తదనుగుణంగా పంపడానికి మేము ఎనేబుల్ మరియు RS పిన్లను నియంత్రించాలి.
LCD కోసం చేసిన కనెక్షన్లు క్రింద ఇవ్వబడ్డాయి:
PIN1 లేదా VSS భూమికి
PIN2 లేదా VDD లేదా VCC నుండి + 5v శక్తికి
PIN3 లేదా VEE to ground (ఒక అనుభవశూన్యుడు కోసం గరిష్ట విరుద్ధతను ఉత్తమంగా ఇస్తుంది)
ARDUINO UNO యొక్క PIN8 కు PIN4 లేదా RS (రిజిస్టర్ ఎంపిక)
PIN5 లేదా RW (చదవడం / వ్రాయడం) భూమికి (LCD ని రీడ్ మోడ్లో ఉంచుతుంది వినియోగదారు కోసం కమ్యూనికేషన్ను సులభతరం చేస్తుంది)
ARDUINO UNO యొక్క PIN9 కు PIN6 లేదా E (ప్రారంభించు)
ARDUINO UNO యొక్క PIN11 లేదా D4 నుండి PIN10 వరకు
ARDUINO UNO యొక్క PIN12 లేదా D5 నుండి PIN11 వరకు
ARDUINO UNO యొక్క PIN13 లేదా D6 నుండి PIN12 వరకు
ARDUINO UNO యొక్క PIN14 లేదా D7 నుండి PIN13 వరకు
ARDUINO IDE వినియోగదారుని 4 బిట్ మోడ్లో LCD ని ఉపయోగించడానికి అనుమతిస్తుంది. ఈ రకమైన కమ్యూనికేషన్ వినియోగదారుని ARDUINO లో పిన్ వాడకాన్ని తగ్గించడానికి అనుమతిస్తుంది, ఇతర ARDUINO ను 4 ఇట్ మోడ్లో ఉపయోగించడం కోసం విడిగా ప్రోగ్రామ్ చేయనవసరం లేదు ఎందుకంటే డిఫాల్ట్గా ARDUINO 4 బిట్ మోడ్లో కమ్యూనికేట్ చేయడానికి ఏర్పాటు చేయబడింది. సర్క్యూట్లో మేము 4 బిట్ కమ్యూనికేషన్ (D4-D7) ను ఉపయోగించాము.
కాబట్టి పై పట్టిక నుండి కేవలం పరిశీలన నుండి మేము 6 పిన్స్ ఎల్సిడిని కంట్రోలర్కు కలుపుతున్నాము, దీనిలో 4 పిన్స్ డేటా పిన్స్ మరియు నియంత్రణ కోసం 2 పిన్స్.
పై బొమ్మలో ARDUINO UNO యొక్క ADC యొక్క సి ఇర్క్యూట్ రేఖాచిత్రం చూపబడింది.
పని
ARDUINO UNO కి LCD ని ఇంటర్ఫేస్ చేయడానికి, మేము కొన్ని విషయాలు తెలుసుకోవాలి.
|
మొదట UNO ADC ఛానెల్స్ 5V యొక్క డిఫాల్ట్ రిఫరెన్స్ విలువను కలిగి ఉన్నాయి. ఏ ఇన్పుట్ ఛానెల్ వద్దనైనా ADC మార్పిడి కోసం మేము గరిష్టంగా 5V ఇన్పుట్ వోల్టేజ్ ఇవ్వగలమని దీని అర్థం. కొన్ని సెన్సార్లు 0-2.5 వి నుండి వోల్టేజ్లను అందిస్తాయి కాబట్టి, 5 వి రిఫరెన్స్తో మనకు తక్కువ ఖచ్చితత్వం లభిస్తుంది, కాబట్టి ఈ సూచన విలువను మార్చడానికి మాకు సహాయపడే సూచన ఉంది. కాబట్టి మన వద్ద ఉన్న రిఫరెన్స్ విలువను మార్చడానికి (“అనలాగ్ రిఫరెన్స్ ();”)
అప్రమేయంగా మనకు గరిష్ట బోర్డ్ ADC రిజల్యూషన్ 10 బిట్స్ వస్తుంది, ఈ రిజల్యూషన్ను ఇన్స్ట్రక్షన్ (“అనలాగ్ రీడ్ రిజల్యూషన్ (బిట్స్);”) ఉపయోగించి మార్చవచ్చు. ఈ రిజల్యూషన్ మార్పు కొన్ని సందర్భాల్లో ఉపయోగపడుతుంది.
ఇప్పుడు పై షరతులు అప్రమేయంగా సెట్ చేయబడితే, ఫంక్షన్ “అనలాగ్ రీడ్ (పిన్);” అని నేరుగా పిలవడం ద్వారా ఛానల్ '0' యొక్క ADC నుండి విలువను చదవవచ్చు, ఇక్కడ “పిన్” మేము అనలాగ్ సిగ్నల్ను కనెక్ట్ చేసిన పిన్ను సూచిస్తుంది, ఈ సందర్భంలో “A0” గా ఉండండి. ADC నుండి వచ్చే విలువను పూర్ణాంకంలోకి “int ADCVALUE = అనలాగ్ రీడ్ (A0) గా తీసుకోవచ్చు; ”, ఈ సూచనల ద్వారా ADC పూర్ణాంకం“ ADCVALUE ”లో నిల్వ చేయబడిన తర్వాత విలువ.
ఇప్పుడు 16x2 LCD గురించి కొంచెం మాట్లాడుకుందాం. మొదట మనం హెడర్ ఫైల్ను ప్రారంభించాలి ('# చేర్చండి
రెండవది మనం ఇక్కడ ఏ రకమైన ఎల్సిడిని ఉపయోగిస్తున్నామో బోర్డుకి చెప్పాలి. మనకు చాలా రకాల ఎల్సిడిలు ఉన్నందున (20x4, 16x2, 16x1 మొదలైనవి). ఇక్కడ మనం 16x2 LCD ని UNO కి ఇంటర్ఫేస్ చేయబోతున్నాం కాబట్టి మనకు 'lcd.begin (16, 2);' 16x1 కొరకు మనకు 'lcd.begin (16, 1);'
ఈ సూచనలో మనం పిన్లను ఎక్కడ కనెక్ట్ చేశామో బోర్డుకి చెప్పబోతున్నాం, కనెక్ట్ చేయబడిన పిన్లను “RS, En, D4, D5, D6, D7” గా సూచించాలి. ఈ పిన్లను సరిగ్గా సూచించాలి. సర్క్యూట్ రేఖాచిత్రంలో చూపిన విధంగా మేము RS ను PIN0 కి కనెక్ట్ చేసాము కాబట్టి, పిన్ నంబర్ను “లిక్విడ్క్రిస్టల్ ఎల్సిడి (0, 1, 8, 9, 10, 11);
పైన ఉన్న తరువాత డేటాను పంపడం మిగిలి ఉంది, ఎల్సిడిలో ప్రదర్శించాల్సిన డేటాను “సిడి.ప్రింట్ (" హలో, వరల్డ్! ");" ఈ ఆదేశంతో LCD 'హలో, వరల్డ్!' ను ప్రదర్శిస్తుంది.
మీరు చూడగలిగినట్లుగా మనం దీని గురించి ఆందోళన చెందాల్సిన అవసరం లేదు, మేము ప్రారంభించాలి మరియు డేటాను ప్రదర్శించడానికి UNO సిద్ధంగా ఉంటుంది. BYTE ద్వారా BYTE డేటాను ఇక్కడ పంపడానికి మేము ప్రోగ్రామ్ లూప్ వ్రాయవలసిన అవసరం లేదు.
Arduino Uno యొక్క ADC ని ఉపయోగించడం క్రింద ఇవ్వబడిన C ప్రోగ్రామ్లో దశల వారీగా వివరించబడింది.