- భాగాలు అవసరం మరియు హార్డ్వేర్ సెటప్
- అనలాగ్ వోల్టేజ్ చదవడానికి నువోటన్ N76E003 సర్క్యూట్ రేఖాచిత్రం
- N76E003 లో GPIO మరియు అనలాగ్ పిన్స్ గురించి సమాచారం
- N76E003 లో ADC పెరిఫెరల్ గురించి సమాచారం
- ADC కోసం ప్రోగ్రామింగ్ N76E003
- కోడ్ మరియు అవుట్పుట్ను మెరుస్తోంది
మైక్రోకంట్రోలర్లో ఎక్కువగా ఉపయోగించే హార్డ్వేర్ లక్షణం అనలాగ్ టు డిజిటల్ కన్వర్టర్ (ADC). ఇది అనలాగ్ వోల్టేజ్లో పడుతుంది మరియు దానిని డిజిటల్ విలువగా మారుస్తుంది. మైక్రోకంట్రోలర్లు డిజిటల్ పరికరాలు మరియు బైనరీ అంకె 1 మరియు 0 తో పనిచేస్తాయి కాబట్టి, ఇది అనలాగ్ డేటాను నేరుగా ప్రాసెస్ చేయలేకపోయింది. అందువల్ల, అనలాగ్ వోల్టేజ్ను తీసుకొని మైక్రోకంట్రోలర్ అర్థం చేసుకోగలిగే సమానమైన డిజిటల్ విలువగా మార్చడానికి ADC ఉపయోగించబడుతుంది. మీరు అనలాగ్ టు డిజిటల్ కన్వర్టర్ (ADC) గురించి మరింత తెలుసుకోవాలనుకుంటే, మీరు లింక్ చేసిన కథనాన్ని తనిఖీ చేయవచ్చు.
MQ గ్యాస్ సెన్సార్లు, ADXL335 యాక్సిలెరోమీటర్ సెన్సార్ వంటి అనలాగ్ అవుట్పుట్ను అందించే ఎలక్ట్రానిక్స్లో వివిధ సెన్సార్లు అందుబాటులో ఉన్నాయి. అందువల్ల, అనలాగ్ టు డిజిటల్ కన్వర్టర్ ఉపయోగించి, ఆ సెన్సార్లను మైక్రోకంట్రోలర్ యూనిట్తో ఇంటర్ఫేస్ చేయవచ్చు. ఇతర మైక్రోకంట్రోలర్లతో ADC ను ఉపయోగించడం కోసం మీరు క్రింద జాబితా చేయబడిన ఇతర ట్యుటోరియల్లను కూడా చూడవచ్చు.
- Arduino Uno లో ADC ని ఎలా ఉపయోగించాలి?
- 8051 మైక్రోకంట్రోలర్తో ADC0808 ఇంటర్ఫేసింగ్
- పిఐసి మైక్రోకంట్రోలర్ యొక్క ఎడిసి మాడ్యూల్ ఉపయోగించడం
- రాస్ప్బెర్రీ పై ADC ట్యుటోరియల్
- MSP430G2 లో ADC ని ఎలా ఉపయోగించాలి - అనలాగ్ వోల్టేజ్ను కొలవడం
- STM32F103C8 లో ADC ని ఎలా ఉపయోగించాలి
ఈ ట్యుటోరియల్లో, మేము N76E003 మైక్రోకంట్రోలర్ యూనిట్ యొక్క అంతర్నిర్మిత ADC పరిధీయతను ఉపయోగిస్తాము, కాబట్టి ఈ అనువర్తనం కోసం మనకు ఎలాంటి హార్డ్వేర్ సెటప్ అవసరమో అంచనా వేద్దాం.
భాగాలు అవసరం మరియు హార్డ్వేర్ సెటప్
N76E003 లో ADC ని ఉపయోగించడానికి, మేము ఒక పొటెన్షియోమీటర్ ఉపయోగించి వోల్టేజ్ డివైడర్ను ఉపయోగిస్తాము మరియు 0V-5.0V నుండి వోల్టేజ్ను చదువుతాము. వోల్టేజ్ 16x2 అక్షర LCD లో ప్రదర్శించబడుతుంది, మీరు LCD మరియు N76E003 తో కొత్తగా ఉంటే, నువోటన్ N76E003 తో LCD ని ఎలా ఇంటర్ఫేస్ చేయాలో మీరు తనిఖీ చేయవచ్చు. అందువల్ల, ఈ ప్రాజెక్ట్ కోసం అవసరమైన ప్రధాన భాగం 16x2 అక్షర LCD. ఈ ప్రాజెక్ట్ కోసం, మేము ఈ క్రింది భాగాలను ఉపయోగిస్తాము-
- అక్షరం LCD 16x2
- 1 కె రెసిస్టర్
- 50 కే పొటెన్టోమీటర్ లేదా ట్రిమ్ పాట్
- కొన్ని బెర్గ్ వైర్లు
- కొన్ని హుక్అప్ వైర్లు
- బ్రెడ్బోర్డ్
పైన పేర్కొన్న భాగాలు కాకుండా, మనకు N76E003 మైక్రోకంట్రోలర్ ఆధారిత అభివృద్ధి బోర్డుతో పాటు ను-లింక్ ప్రోగ్రామర్ అవసరం. ప్రోగ్రామర్ అందించలేని ఎల్సిడి తగినంత కరెంట్ను తీసుకుంటున్నందున అదనపు 5 వి విద్యుత్ సరఫరా యూనిట్ కూడా అవసరం.
అనలాగ్ వోల్టేజ్ చదవడానికి నువోటన్ N76E003 సర్క్యూట్ రేఖాచిత్రం
స్కీమాటిక్లో మనం చూడగలిగినట్లుగా, పోర్ట్ P0 LCD సంబంధిత కనెక్షన్ కోసం ఉపయోగించబడుతుంది. తీవ్ర ఎడమ వైపున, ప్రోగ్రామింగ్ ఇంటర్ఫేస్ కనెక్షన్ చూపబడుతుంది. పొటెన్షియోమీటర్ వోల్టేజ్ డివైడర్గా పనిచేస్తుంది మరియు ఇది అనలాగ్ ఇన్పుట్ 0 (AN0) చేత గ్రహించబడుతుంది.
N76E003 లో GPIO మరియు అనలాగ్ పిన్స్ గురించి సమాచారం
క్రింద ఉన్న చిత్రం N76E003AT20 మైక్రోకంట్రోలర్ యూనిట్లో లభించే GPIO పిన్లను వివరిస్తుంది. అయినప్పటికీ, 20 పిన్లలో, LCD సంబంధిత కనెక్షన్ కోసం, పోర్ట్ P0 (P0.0, P0.1, P0.2, P0.4, P0.5, P0.6 మరియు P0.7) ఉపయోగించబడుతుంది. అనలాగ్ పిన్స్ RED రంగులలో హైలైట్ చేయబడ్డాయి.
మనం చూడగలిగినట్లుగా, పోర్ట్ పి 0 గరిష్ట అనలాగ్ పిన్లను కలిగి ఉంది కాని అవి ఎల్సిడి సంబంధిత కమ్యూనికేషన్ కోసం ఉపయోగించబడతాయి. అందువల్ల, P3.0 మరియు P1.7 అనలాగ్ ఇన్పుట్ పిన్స్ AIN1 మరియు AIN0 గా లభిస్తాయి. ఈ ప్రాజెక్ట్కు ఒకే అనలాగ్ పిన్ అవసరం కాబట్టి, అనలాగ్ ఇన్పుట్ ఛానల్ 0 అయిన P1.7 ఈ ప్రాజెక్ట్ కోసం ఉపయోగించబడుతుంది.
N76E003 లో ADC పెరిఫెరల్ గురించి సమాచారం
N76E003 12-బిట్ SAR ADC ని అందిస్తుంది. ఇది N76E003 యొక్క చాలా మంచి లక్షణం, ఇది ADC యొక్క మంచి రిజల్యూషన్ కలిగి ఉంది. సింగిల్-ఎండ్ మోడ్లో ADC 8-ఛానల్ ఇన్పుట్లను కలిగి ఉంది. ADC ని ఇంటర్ఫేస్ చేయడం చాలా సులభం మరియు సూటిగా ఉంటుంది.
మొదటి దశ ADC ఛానల్ ఇన్పుట్ను ఎంచుకోవడం. N76E003 మైక్రోకంట్రోలర్లలో 8-ఛానల్ ఇన్పుట్లు అందుబాటులో ఉన్నాయి. ADC ఇన్పుట్లను లేదా I / O పిన్లను ఎంచుకున్న తరువాత, కోడ్లోని దిశ కోసం అన్ని పిన్లను సెట్ చేయాలి. అనలాగ్ ఇన్పుట్ కోసం ఉపయోగించే అన్ని పిన్స్ మైక్రోకంట్రోలర్ యొక్క ఇన్పుట్ పిన్స్, అందువల్ల అన్ని పిన్స్ ఇన్పుట్-ఓన్లీ (హై-ఇంపెడెన్స్) మోడ్గా సెట్ చేయాలి. PxM1 మరియు PxM2 రిజిస్టర్ ఉపయోగించి వీటిని సెట్ చేయవచ్చు. ఈ రెండు రిజిస్టర్లు I / O మోడ్లను సెట్ చేస్తాయి, ఇక్కడ x పోర్ట్ నంబర్ను సూచిస్తుంది (ఉదాహరణకు, పోర్ట్ P1.0 రిజిస్టర్ P1M1 మరియు P1M2 గా ఉంటుంది, P3.0 కోసం ఇది P3M1 మరియు P3M2, మొదలైనవి.) కాన్ఫిగరేషన్ చేయవచ్చు దిగువ చిత్రంలో చూడవచ్చు-
ADC యొక్క కాన్ఫిగరేషన్ ADCCON0 మరియు ADCCON1 అనే రెండు రిజిస్టర్లచే చేయబడుతుంది. ADCCON0 రిజిస్టర్ వివరణ క్రింద చూపబడింది.
ADC ఛానల్ ఎంపికను సెట్ చేయడానికి బిట్ 0 నుండి బిట్ 3 వరకు రిజిస్టర్ యొక్క మొదటి 4 బిట్స్ ఉపయోగించబడతాయి. మేము ఛానెల్ AIN0 ను ఉపయోగిస్తున్నందున, ఈ నాలుగు బిట్లకు ఎంపిక 0000 అవుతుంది.
6 వ మరియు 7 వ బిట్స్ ముఖ్యమైనవి. ADC మార్పిడిని ప్రారంభించడానికి ADCS 1 ని సెట్ చేయాల్సిన అవసరం ఉంది మరియు ADCF విజయవంతమైన ADC మార్పిడి గురించి సమాచారాన్ని అందిస్తుంది. ADC మార్పిడిని ప్రారంభించడానికి ఫర్మ్వేర్ చేత 0 ని సెట్ చేయాలి. తదుపరి రిజిస్టర్ ADCCON1-
ADCCON1 రిజిస్టర్ ప్రధానంగా బాహ్య మూలాల ద్వారా ప్రేరేపించబడిన ADC మార్పిడి కోసం ఉపయోగించబడుతుంది. అయినప్పటికీ, సాధారణ పోలింగ్ సంబంధిత కార్యకలాపాల కోసం, ADC సర్క్యూట్రీని ఆన్ చేయడానికి మొదటి-బిట్ ADCEN 1 ని సెట్ చేయాలి.
తరువాత, డిజిటల్ ఇన్పుట్లను డిస్కనెక్ట్ చేయగల AINDIDS రిజిస్టర్లో ADC ఛానెల్ యొక్క ఇన్పుట్ నియంత్రించాల్సిన అవసరం ఉంది.
N అంటే ఛానల్ బిట్ (ఉదాహరణకు, AINDIDS రిజిస్టర్ యొక్క మొదటి బిట్ P17DIDS ఉపయోగించి AIN0 ఛానెల్ నియంత్రించాల్సిన అవసరం ఉంది). డిజిటల్ ఇన్పుట్ ప్రారంభించబడాలి, లేకపోతే, అది 0 గా చదువుతుంది. ఇవన్నీ ADC యొక్క ప్రాథమిక అమరిక. ఇప్పుడు, ADCF ని క్లియర్ చేయడం మరియు ADCS ని సెట్ చేయడం ADC మార్పిడిని ప్రారంభించవచ్చు. మార్చబడిన విలువ క్రింది రిజిస్టర్లలో లభిస్తుంది-
మరియు
రెండు రిజిస్టర్లు 8-బిట్స్. ADC 12-బిట్స్ డేటాను అందించినందున, ADCRH ని పూర్తి (8-బిట్స్) గా మరియు ADCRL ను సగం (4-బిట్స్) గా ఉపయోగిస్తారు.
ADC కోసం ప్రోగ్రామింగ్ N76E003
ప్రతిసారీ ఒక నిర్దిష్ట మాడ్యూల్ కోసం కోడింగ్ ఒక తీవ్రమైన పని, అందువల్ల సరళమైన ఇంకా శక్తివంతమైన LCD లైబ్రరీ అందించబడుతుంది, ఇది N76E003 తో 16x2 అక్షరాల LCD ఇంటర్ఫేసింగ్కు చాలా ఉపయోగకరంగా ఉంటుంది. 16x2 LCD లైబ్రరీ మా గితుబ్ రిపోజిటరీలో అందుబాటులో ఉంది, ఈ క్రింది లింక్ నుండి డౌన్లోడ్ చేసుకోవచ్చు.
నువోటన్ N76E003 కోసం 16x2 LCD లైబ్రరీని డౌన్లోడ్ చేయండి
దయచేసి లైబ్రరీని కలిగి ఉండండి (క్లోనింగ్ లేదా డౌన్లోడ్ చేయడం ద్వారా) మరియు కావలసిన అప్లికేషన్ లేదా ప్రాజెక్ట్లో 16x2 LCD ని సులభంగా ఏకీకృతం చేయడానికి మీ కైల్ N76E003 ప్రాజెక్ట్లో lcd.c మరియు LCD.h ఫైళ్ళను చేర్చండి. లైబ్రరీ కింది ఉపయోగకరమైన ప్రదర్శన-సంబంధిత విధులను అందిస్తుంది-
- ఎల్సిడిని ప్రారంభించండి.
- LCD కి ఆదేశాన్ని పంపండి.
- LCD కి వ్రాయండి.
- LCD (16 అక్షరాలు) లో స్ట్రింగ్ ఉంచండి.
- హెక్స్ విలువను పంపడం ద్వారా అక్షరాన్ని ముద్రించండి.
- 16 కంటే ఎక్కువ అక్షరాలతో దీర్ఘ సందేశాలను స్క్రోల్ చేయండి.
- పూర్ణాంక సంఖ్యలను నేరుగా LCD లోకి ముద్రించండి.
ADC కోసం కోడింగ్ సులభం. సెటప్ ఫంక్షన్లో Enable_ADC_AIN0; AIN0 ఇన్పుట్ కోసం ADC ని సెటప్ చేయడానికి ఉపయోగిస్తారు. ఇది ఫైల్లో నిర్వచించబడింది.
# Enable_ADC_AIN0 ADCCON0 & = 0xF0; P17_Input_Mode; AINDIDS = 0x00; AINDIDS- = SET_BIT0; ADCCON1- = SET_BIT0 // P17
కాబట్టి, పై పంక్తి పిన్ను ఇన్పుట్గా సెట్ చేస్తుంది మరియు ADCCON0, ADCCON1 రిజిస్టర్తో పాటు AINDIDS రిజిస్టర్ను కూడా కాన్ఫిగర్ చేస్తుంది . దిగువ ఫంక్షన్ ADCRH మరియు ADCRL రిజిస్టర్ నుండి ADC ని చదువుతుంది కాని 12-బిట్ రిజల్యూషన్తో ఉంటుంది.
సంతకం చేయని పూర్ణాంకం ADC_read (శూన్యమైనది) { నమోదు చేయని పూర్ణాంకానికి adc_value = 0x0000; clr_ADCF; set_ADCS; అయితే (ADCF == 0); adc_value = ADCRH; adc_value << = 4; adc_value - = ADCRL; తిరిగి adc_value; }
బిట్ 4 సార్లు ఎడమ-షిఫ్ట్ చేయబడి, ఆపై డేటా వేరియబుల్కు జోడించబడుతుంది. ప్రధాన విధిలో, ADC డేటాను చదువుతోంది మరియు ప్రదర్శనలో నేరుగా ముద్రించబడుతుంది. అయినప్పటికీ, వోల్టేజ్ కూడా ఒక నిష్పత్తిని ఉపయోగించి లేదా బిట్ విలువతో విభజించబడిన వోల్టేజ్ మధ్య సంబంధాన్ని ఉపయోగించి మార్చబడుతుంది.
12-బిట్ ADC 5.0V ఇన్పుట్లో 4095 బిట్ను అందిస్తుంది. ఆ విధంగా 5.0V / 4095 = 0.0012210012210012V ను విభజిస్తుంది
కాబట్టి, 1 అంకెల బిట్ మార్పులు 0.001V (సుమారుగా) లోని మార్పులకు సమానం. ఇది క్రింద చూపిన ప్రధాన ఫంక్షన్లో జరుగుతుంది.
void main (void) { int adc_data; సెటప్ (); lcd_com (0x01); (1) { lcd_com (0x01); lcd_com (0x80); lcd_puts ("ADC డేటా:"); adc_data = ADC_read (); lcd_print_number (adc_data); వోల్టేజ్ = adc_data * bit_to_voltage_ratio; sprintf (str_voltage, "వోల్ట్:% 0.2fV", వోల్టేజ్); lcd_com (0xC0); lcd_puts (str_voltage); టైమర్ 0_డేలే 1 ఎంఎస్ (500); } }
డేటా బిట్ విలువ నుండి వోల్టేజ్కు మార్చబడుతుంది మరియు స్ప్రింట్ఫ్ ఫంక్షన్ను ఉపయోగించి, అవుట్పుట్ స్ట్రింగ్గా మార్చబడుతుంది మరియు ఎల్సిడికి పంపబడుతుంది.
కోడ్ మరియు అవుట్పుట్ను మెరుస్తోంది
కోడ్ 0 హెచ్చరిక మరియు 0 లోపాలను తిరిగి ఇచ్చింది మరియు కైల్ చేత డిఫాల్ట్ ఫ్లాషింగ్ పద్ధతిని ఉపయోగించి ఫ్లాష్ చేయబడింది, మీరు క్రింద మెరుస్తున్న సందేశాన్ని చూడవచ్చు. మీరు కైల్ లేదా నువోటాన్కు క్రొత్తగా ఉంటే, ప్రాథమికాలను అర్థం చేసుకోవడానికి మరియు కోడ్ను ఎలా అప్లోడ్ చేయాలో నువోటన్ మైక్రోకంట్రోలర్తో ప్రారంభించడం చూడండి.
పునర్నిర్మాణం ప్రారంభమైంది: ప్రాజెక్ట్: టైమర్ STARTUP.A51 ను సమీకరించే లక్ష్యం 'టార్గెట్ 1' ను పునర్నిర్మించండి … main.c ని కంపైల్ చేస్తోంది… lcd.c ని కంపైల్ చేస్తోంది… Delay.c ని కంపైల్ చేస్తోంది… లింక్ చేస్తుంది… ప్రోగ్రామ్ పరిమాణం: డేటా = 101.3 xdata = 0 కోడ్ = 4162 ". \ ఆబ్జెక్ట్స్ \ టైమర్"… " నుండి హెక్స్ ఫైల్ను సృష్టిస్తోంది . \ ఆబ్జెక్ట్స్ \ టైమర్" - 0 లోపం (లు), 0 హెచ్చరిక (లు). సమయం గడిచిపోయింది: 00:00:02 "G: \\ n76E003 \\ డిస్ప్లే \\ ఆబ్జెక్ట్స్ \\ టైమర్" ఫ్లాష్ ఎరేజ్ పూర్తయింది. ఫ్లాష్ రైట్ పూర్తయింది: 4162 బైట్లు ప్రోగ్రామ్ చేయబడ్డాయి. ఫ్లాష్ ధృవీకరించబడింది పూర్తయింది: 4162 బైట్లు ధృవీకరించబడ్డాయి. ఫ్లాష్ లోడ్ 11:56:04 వద్ద పూర్తయింది
దిగువ చిత్రం DC అడాప్టర్ ఉపయోగించి పవర్ సోర్స్లో కనెక్ట్ చేయబడిన హార్డ్వేర్ను చూపిస్తుంది మరియు డిస్ప్లే కుడి వైపున పొటెన్షియోమీటర్ సెట్ చేసిన వోల్టేజ్ అవుట్పుట్ను చూపుతుంది.
మేము పొటెన్షియోమీటర్ను తిప్పితే, ADC పిన్కు ఇచ్చిన వోల్టేజ్ కూడా మారుతుంది మరియు LCD లో ప్రదర్శించబడే ADC విలువ మరియు అనలాగ్ వోల్టేజ్ను మనం గమనించవచ్చు. ఈ ట్యుటోరియల్ యొక్క పూర్తి పని ప్రదర్శన కోసం మీరు ఈ క్రింది వీడియోను చూడవచ్చు.
మీరు వ్యాసాన్ని ఆస్వాదించారని మరియు ఉపయోగకరమైనదాన్ని నేర్చుకున్నారని ఆశిస్తున్నాము, మీకు ప్రశ్నలు ఉంటే, వాటిని క్రింది వ్యాఖ్య విభాగంలో ఉంచండి లేదా ఇతర సాంకేతిక ప్రశ్నలను పోస్ట్ చేయడానికి మీరు మా ఫోరమ్లను ఉపయోగించవచ్చు.