- ADC అంటే ఏమిటి?
- ARM7-LPC2148 లో ADC
- ARM7-LPC2148 లో ADC పిన్స్
- ARM7-LPC2148 లో ADC రిజిస్టర్లు
- LPC2148 లో ADxCR రిజిస్టర్
- ADxGDR: ADC గ్లోబల్ డేటా రిజిస్టర్
- భాగాలు అవసరం
- సర్క్యూట్ రేఖాచిత్రం
- ADC కోసం ప్రోగ్రామింగ్ ARM7-LPC2148
ఎలక్ట్రానిక్స్ ప్రపంచంలో ఉష్ణోగ్రత, వేగం, స్థానభ్రంశం, పీడనం మొదలైన వాటిని కొలవడానికి ఉపయోగించే అనేక రకాల అనలాగ్ సెన్సార్లు మార్కెట్లో ఉన్నాయి. కాలానుగుణంగా నిరంతరం మారుతున్న ఉత్పత్తిని ఉత్పత్తి చేయడానికి అనలాగ్ సెన్సార్లు ఉపయోగించబడతాయి. అనలాగ్ సెన్సార్ల నుండి వచ్చే ఈ సంకేతాలు కొన్ని మైక్రో-వోల్ట్ల (యువి) నుండి అనేక మిల్లీ-వోల్ట్ల (ఎంవి) వరకు విలువలో చాలా తక్కువగా ఉంటాయి, కాబట్టి కొన్ని రకాల విస్తరణ అవసరం. మైక్రోకంట్రోలర్లో ఈ అనలాగ్ సిగ్నల్లను ఉపయోగించడం కోసం మేము మైక్రోకంట్రోలర్ అర్థం చేసుకున్నందున అనలాగ్ సిగ్నల్ను డిజిటల్ సిగ్నల్గా మార్చాలి మరియు డిజిటల్ సిగ్నల్లను మాత్రమే ప్రాసెస్ చేయాలి. కాబట్టి మైక్రోకంట్రోలర్లో చాలావరకు అంతర్నిర్మిత ముఖ్యమైన లక్షణం ADC (అనలాగ్ టు డిజిటల్ కన్వర్టర్). మా మైక్రోకంట్రోలర్ ARM7-LPC2148 లో కూడా ADC ఫీచర్ ఉంది.
ఈ ట్యుటోరియల్లో , అనలాగ్ పిన్కు భిన్నమైన వోల్టేజ్ను సరఫరా చేయడం ద్వారా ARM7-LPC2148 లో ADC ని ఎలా ఉపయోగించాలో చూస్తాము మరియు డిజిటల్ మార్పిడికి అనలాగ్ తర్వాత 16x2 LCD తెరపై ప్రదర్శిస్తాము. కాబట్టి ADC గురించి ఒక చిన్న పరిచయం ద్వారా ప్రారంభిద్దాం.
ADC అంటే ఏమిటి?
ఇంతకుముందు చెప్పినట్లుగా ADC అనలాగ్ను డిజిటల్ మార్పిడికి సూచిస్తుంది మరియు ఇది వాస్తవ ప్రపంచం నుండి అనలాగ్ విలువలను 1 మరియు 0 వంటి డిజిటల్ విలువలుగా మార్చడానికి ఉపయోగించబడుతుంది. కాబట్టి ఈ అనలాగ్ విలువలు ఏమిటి? ఉష్ణోగ్రత, వేగం, ప్రకాశం వంటి రోజువారీ జీవితంలో మనం చూసేవి ఇవి. ఈ పారామితులను సంబంధిత సెన్సార్ల ద్వారా అనలాగ్ వోల్టేజ్లుగా కొలుస్తారు మరియు తరువాత ఈ అనలాగ్ విలువలు మైక్రోకంట్రోలర్ల కోసం డిజిటల్ విలువలుగా మార్చబడతాయి.
మన ADC పరిధి 0V నుండి 3.3V వరకు ఉందని అనుకుందాం మరియు మనకు 10-బిట్ ADC ఉంది అంటే మన ఇన్పుట్ వోల్టేజ్ 0-3.3 వోల్ట్లు 1024 స్థాయిల వివిక్త అనలాగ్ విలువలుగా విభజించబడతాయి (2 10 = 1024). 1024 అంటే 10-బిట్ ఎడిసికి రిజల్యూషన్, అదేవిధంగా 8-బిట్ ఎడిసి రిజల్యూషన్ 512 (28) మరియు 16-బిట్ ఎడిసి రిజల్యూషన్ 65,536 (216) అవుతుంది. LPC2148 లో 10 బిట్ రిజల్యూషన్ ADC ఉంది.
దీనితో అసలు ఇన్పుట్ వోల్టేజ్ 0 వి అయితే MCU యొక్క ADC దానిని 0 గా చదువుతుంది మరియు అది 3.3V అయితే MCU 1024 ను చదువుతుంది మరియు 1.65v వంటి ఎక్కడో ఉంటే MCU 512 చదువుతుంది. మనం క్రింద ఉపయోగించవచ్చు ADC మరియు ఆపరేటింగ్ వోల్టేజ్ యొక్క రిజల్యూషన్ ఆధారంగా MCU చే చదవబడే డిజిటల్ విలువను లెక్కించడానికి సూత్రాలు.
(ADC రిజల్యూషన్ / ఆపరేటింగ్ వోల్టేజ్) = (ADC డిజిటల్ విలువ / వాస్తవ వోల్టేజ్ విలువ)
రిఫరెన్స్ వోల్టేజ్ 3v అయితే ఉదాహరణకు ఇలా చేయండి:
మేము మునుపటి వ్యాసంలో ADC ని వివరంగా వివరించాము.
ARM7-LPC2148 లో ADC
- LPC2148 డిజిటల్ కన్వర్టర్లకు రెండు అనలాగ్లను కలిగి ఉంది.
- ఈ కన్వర్టర్లు డిజిటల్ కన్వర్టర్లకు సింగిల్ 10-బిట్ వరుస ఉజ్జాయింపు అనలాగ్.
- ఎడిసి 0 కి ఆరు ఛానల్స్ ఉండగా, ఎడిసి 1 కి ఎనిమిది ఛానల్స్ ఉన్నాయి.
- కాబట్టి, LPC2148 కోసం అందుబాటులో ఉన్న ADC ఇన్పుట్ల సంఖ్య 14.
- ఇది ఇన్పుట్ వోల్టేజ్ (0 నుండి 3.3V) పరిధిలో మాత్రమే మారుస్తుంది. ఇది వోల్టేజ్ రిఫరెన్స్ 3.3V మించకూడదు. ఇది ఐసిని దెబ్బతీస్తుంది మరియు అనిశ్చిత విలువలను కూడా అందిస్తుంది.
LPC2148 లో ADC యొక్క కొన్ని ముఖ్యమైన లక్షణం
- ప్రతి కన్వర్టర్ సెకనుకు 400000 10-బిట్ నమూనాలను ప్రదర్శించగలదు.
- ప్రతి అనలాగ్ ఇన్పుట్ అంతరాయ ఓవర్ హెడ్ను తగ్గించడానికి ప్రత్యేక ఫలిత రిజిస్టర్ను కలిగి ఉంది.
- ఒకే లేదా బహుళ ఇన్పుట్ల కోసం పేలుడు మార్పిడి మోడ్.
- ఇన్పుట్ పిన్ లేదా టైమర్ మ్యాచ్ సిగ్నల్ పై పరివర్తనపై ఐచ్ఛిక మార్పిడి.
- రెండు కన్వర్టర్లకు గ్లోబల్ స్టార్ట్ కమాండ్.
ఇతర మైక్రోకంట్రోలర్లలో ADC ఎలా ఉపయోగించాలో కూడా తనిఖీ చేయండి:
- Arduino Uno లో ADC ని ఎలా ఉపయోగించాలి?
- 8051 మైక్రోకంట్రోలర్తో ADC0808 ఇంటర్ఫేసింగ్
- పిఐసి మైక్రోకంట్రోలర్ యొక్క ఎడిసి మాడ్యూల్ ఉపయోగించడం
- రాస్ప్బెర్రీ పై ADC ట్యుటోరియల్
- MSP430G2 లో ADC ని ఎలా ఉపయోగించాలి - అనలాగ్ వోల్టేజ్ను కొలవడం
- STM32F103C8 లో ADC ని ఎలా ఉపయోగించాలి
ARM7-LPC2148 లో ADC పిన్స్
ప్రారంభంలో చెప్పినట్లుగా, ARM7-LPC2148 లో 6 అనలాగ్ ఇన్పుట్ పిన్లతో ADC0 మరియు 8 అనలాగ్ ఇన్పుట్ పిన్లతో ADC1 ఉన్నాయి. కాబట్టి పూర్తిగా అనలాగ్ ఇన్పుట్లకు 14 పిన్స్ ఉన్నాయి. దిగువ రేఖాచిత్రం అనలాగ్ ఇన్పుట్ కోసం అందుబాటులో ఉన్న పిన్నులను చూపుతుంది.
ADC ఇన్పుట్ పిన్స్ ఇతర GPIO పిన్స్ తో మల్టీప్లెక్స్ చేయబడినందున. ADC ఫంక్షన్ను ఎంచుకోవడానికి పిన్సెల్ రిజిస్టర్ను కాన్ఫిగర్ చేయడం ద్వారా మేము వాటిని ప్రారంభించాలి.
దిగువ పట్టిక LPC2148 లో ADC మరియు గౌరవనీయమైన ADC ఛానల్ సంఖ్య యొక్క పిన్లను చూపిస్తుంది. AD0 ఛానల్ 0 మరియు AD1 ఛానల్ 1
LPC2148 పిన్ |
ADC ఛానల్ నం |
పి.0.28 |
AD0.1 |
పి.0.29 |
AD0.2 |
పి.0.30 |
AD0.3 |
పి.0.25 |
AD0.4 |
పి.0.4 |
AD0.6 |
పి 0.5 |
AD0.7 |
పి.0.6 |
AD1.0 |
పి.0.8 |
AD1.1 |
పి.0.10 |
AD1.2 |
పి.0.12 |
AD1.3 |
పి.0.13 |
AD1.4 |
పి.0.15 |
AD1.5 |
పి.0.21 |
AD1.6 |
పి.0.22 |
AD1.7 |
ARM7-LPC2148 లో ADC రిజిస్టర్లు
LPC2148 లో A / D మార్పిడి లక్షణాన్ని ఉపయోగించడానికి ప్రోగ్రామింగ్లో రిజిస్టర్లు ఉపయోగించబడతాయి.
A / D మార్పిడి కోసం LPC2148 లో ఉపయోగించిన రిజిస్టర్ల జాబితా క్రింద ఉంది
1. ADCR: డిజిటల్ కంట్రోల్ రిజిస్టర్కు అనలాగ్
ఉపయోగం: ఈ రిజిస్టర్ LPC2148 లో A / D కన్వర్టర్ను కాన్ఫిగర్ చేయడానికి ఉపయోగించబడుతుంది
2. ADGDR: అనలాగ్ టు డిజిటల్ గ్లోబల్ డేటా రిజిస్టర్
ఉపయోగం: ఈ రిజిస్టర్లో A / D కన్వర్టర్ కోసం DONE బిట్ ఉంది మరియు మార్పిడి యొక్క ఫలితం ఇక్కడ నిల్వ చేయబడుతుంది.
3. ADINTERN: డిజిటల్ ఇంటరప్ట్కు అనలాగ్ రిజిస్టర్ను ప్రారంభించండి
ఉపయోగం: ఇది అంతరాయం ఎనేబుల్ రిజిస్టర్.
4. ADDR0 - ADDR7: డిజిటల్ ఛానల్ డేటా రిజిస్టర్కు అనలాగ్
ఉపయోగం: ఈ రిజిస్టర్ సంబంధిత ఛానెల్ల కోసం A / D విలువను కలిగి ఉంటుంది.
5. ADSTAT: డిజిటల్ స్థితి రిజిస్టర్కు అనలాగ్.
ఉపయోగం: ఈ రిజిస్టర్లో సంబంధిత ADC ఛానెల్ కోసం DONE ఫ్లాగ్ మరియు సంబంధిత ADC ఛానెల్ కోసం OVERRUN ఫ్లాగ్ ఉన్నాయి.
ఈ ట్యుటోరియల్లో మేము ADCR & ADGDR రిజిస్టర్లను మాత్రమే ఉపయోగిస్తాము. వాటి గురించి వివరంగా చూద్దాం
LPC2148 లో ADxCR రిజిస్టర్
ఛానల్ 0 మరియు ఛానల్ 1 కొరకు వరుసగా AD0CR & AD1CR. ఇది 32-బిట్ రిజిస్టర్. క్రింద పట్టిక ADCR రిజిస్టర్ కోసం బిట్ ఫీల్డ్లను సూచిస్తుంది.
31:28 |
27 |
26:24 |
23:22 |
21 |
20 |
19:17 |
16 |
15: 8 |
7: 0 |
రిజర్వ్ చేయబడింది |
ఎడ్జ్ |
START |
రిజర్వ్ చేయబడింది |
పిడిఎన్ |
రిజర్వ్ చేయబడింది |
CLKS |
BURST |
CLCKDIV |
SEL |
వ్యక్తిగత రిజిస్టర్లను ఎలా కాన్ఫిగర్ చేయాలో చూద్దాం
1. SEL: ADC మార్పిడి కోసం ఛానెల్ని ఎంచుకోవడానికి (0 నుండి 7 వరకు) బిట్లు ఉపయోగించబడతాయి. ప్రతి ఛానెల్కు ఒక బిట్ కేటాయించబడుతుంది. ఉదాహరణకు, బిట్ -0 ను అమర్చడం వలన ADC మార్పిడి కోసం AD0.1 నమూనాకు చేస్తుంది. మరియు బిట్ -1 ను సెట్ చేస్తే AD0.1 అవుతుంది; అదేవిధంగా బిట్ -7 ను సెట్ చేస్తే AD0.7 కొరకు మార్పిడి జరుగుతుంది. ముఖ్యమైన దశ ఏమిటంటే, మనం ఉపయోగిస్తున్న పోర్ట్ ప్రకారం పిన్సెల్ ఉంది, ఉదాహరణకు PLC2148 లో PORT0 కోసం PINSEL0.
2. CLCKDIV: క్లాక్ డివైజర్ కోసం (8 నుండి 15 వరకు) బిట్స్ . ఇక్కడ APB గడియారం (ARM పెరిఫెరల్ బస్ క్లాక్) A / D కన్వర్టర్కు అవసరమైన గడియారాన్ని ఉత్పత్తి చేయడానికి ప్లస్ వన్ ద్వారా విభజించబడింది, ఇది LPC2148 లో వరుస ఉజ్జాయింపు పద్ధతిని ఉపయోగిస్తున్నందున ఇది 4.5 MHz కంటే తక్కువ లేదా సమానంగా ఉండాలి.
3. BURST: BURST మార్పిడి మోడ్ కోసం బిట్ 16 ఉపయోగించబడుతుంది.
సెట్టింగ్ 1: SEL బిట్స్లో ఎంచుకున్న అన్ని ఛానెల్ల కోసం ADC మార్పిడి చేస్తుంది.
సెట్టింగ్ 0: BURST మార్పిడి మోడ్ను నిలిపివేస్తుంది.
4. CLCKS: నిరంతర A / D మార్పిడి మోడ్ అయినందున (17 నుండి 19 వరకు) మూడు బిట్స్ రిజల్యూషన్ ఎంచుకోవడానికి మరియు పేలుడు మోడ్లో A / D మార్పిడి కోసం గడియారాల సంఖ్యను ఉపయోగిస్తారు.
బిట్స్ కోసం విలువ (17 నుండి 19 వరకు) |
బిట్స్ (ఖచ్చితత్వం) |
గడియారం సంఖ్య |
000 |
10 |
11 |
001 |
9 |
10 |
010 |
8 |
9 |
011 |
7 |
8 |
100 |
6 |
7 |
101 |
5 |
6 |
110 |
4 |
5 |
111 |
3 |
4 |
5. పిడిఎన్: ఎల్పిసి 2148 లో ఎడిసి యొక్క పవర్ డౌన్ మోడ్ను ఎంచుకోవడం కోసం బిట్ 21.
- A / D PDN మోడ్లో ఉంది.
- A / D కార్యాచరణ మోడ్లో ఉంది
6. START: (24 నుండి 26 వరకు) బిట్స్ START కోసం. 0 సెట్ చేయడం ద్వారా BURST మార్పిడి మోడ్ ఆఫ్లో ఉన్నప్పుడు, A / D మార్పిడిని ఎప్పుడు ప్రారంభించాలో ఈ START బిట్స్ ఉపయోగపడతాయి. START అంచు నియంత్రిత మార్పిడి కోసం కూడా ఉపయోగించబడుతుంది. LAPC2148 యొక్క CAP లేదా MAT పిన్లో ఇన్పుట్ ఉన్నప్పుడు A / D మార్చడానికి ప్రారంభమవుతుంది. దిగువ పట్టికను తనిఖీ చేద్దాం
బిట్స్ కోసం విలువ (24 నుండి 26 వరకు) |
LPC2148 యొక్క పిన్స్ |
ADC యొక్క పనితీరు |
000 |
పిడిఎన్ మోడ్లో ఎడిసిని సెట్ చేయడానికి ఉపయోగిస్తారు ప్రారంభం లేదు |
|
001 |
A / D మార్పిడిని ప్రారంభించండి |
|
010 |
CAP0.2 / MAT0.2 |
LPC2148 యొక్క CAP / MAT పిన్లపై పిన్ 27 (రైజింగ్ లేదా ఫాలింగ్) పై ఎంచుకున్న EDGE పై A / D మార్పిడిని ప్రారంభించండి. |
011 |
CAP0.0 / MAT0.0 |
|
100 |
MAT0.1 |
|
101 |
MAT0.3 |
|
110 |
MAT1.0 |
|
111 |
MAT1.1 |
7. ఎడ్జ్: START బిట్ 010-111 కలిగి ఉన్నప్పుడు మాత్రమే 27 వ బిట్ ఎడ్జ్ కోసం ఉపయోగించబడుతుంది. CAP లేదా MAT ఇన్పుట్ ఉన్నప్పుడు ఇది మార్పిడిని ప్రారంభిస్తుంది.
సెట్టింగ్ : 0 - ఫాలింగ్ ఎడ్జ్లో
1 - రైజింగ్ ఎడ్జ్లో
ADxGDR: ADC గ్లోబల్ డేటా రిజిస్టర్
ADC ఛానల్ 0 & ADC ఛానల్ 1 కొరకు వరుసగా AD0GDR & AD1GDR.
ఇది 32-బిట్ రిజిస్టర్లో A / D మార్పిడి యొక్క ఫలితం మరియు A / D మార్పిడి జరిగిందని సూచించే DONE బిట్ కూడా ఉంది. క్రింద పట్టిక ADGDR రిజిస్టర్ కోసం బిట్ ఫీల్డ్లను సూచిస్తుంది.
31 |
30 |
29:27 |
26:24 |
23:16 |
15: 6 |
5: 0 |
పూర్తి |
ఓవర్రన్ |
రిజర్వ్ చేయబడింది |
సిహెచ్ఎన్ |
రిజర్వ్ చేయబడింది |
ఫలితం |
రిజర్వ్ చేయబడింది |
1. ఫలితం: ఈ బిట్స్ (6 నుండి 15 వరకు) ADCR SEL రిజిస్టర్లో ఎంచుకున్న ఛానెల్ కోసం A / D మార్పిడి ఫలితాన్ని కలిగి ఉంటాయి. A / D మార్పిడి పూర్తయిన తర్వాత మాత్రమే విలువ చదవబడుతుంది మరియు ఇది DONE బిట్ ద్వారా సూచించబడుతుంది.
ఉదాహరణ: 10-బిట్ ADC ఫలితం కోసం నిల్వ చేసిన విలువ (0 నుండి 1023 వరకు) మారుతుంది.
2. ఛానెల్: ఈ బిట్స్ 24 నుండి 26 వరకు ఛానెల్ సంఖ్యను కలిగి ఉంటాయి, దీని కోసం A / D మార్పిడి జరుగుతుంది. మార్చబడిన డిజిటల్ విలువ RESULT బిట్లో ఉంది.
ఉదాహరణ: 000 ADC ఛానల్ 0 కోసం మరియు 001 ADC ఛానల్ 1, మొదలైనవి
3. ఓవర్రన్: OVERRUN కోసం 30 వ బిట్ BURST మోడ్లో ఉపయోగించబడుతుంది. 1 సెట్ చేసినప్పుడు మునుపటి మార్చబడిన ADC విలువ కొత్తగా మార్చబడిన ADC విలువ ద్వారా తిరిగి వ్రాయబడుతుంది. రిజిస్టర్ చదివినప్పుడు అది ఓవర్రన్ బిట్ను క్లియర్ చేస్తుంది.
4. పూర్తయింది: 31 వ బిట్ డన్ బిట్ కోసం.
సెట్ 1: A / D మార్పిడి పూర్తయినప్పుడు.
సెట్ 0: రిజిస్టర్ చదివినప్పుడు మరియు ADCR వ్రాసినప్పుడు.
LPC2148 లో ADC లో ఉపయోగించబడే ముఖ్యమైన రిజిస్టర్ల గురించి మేము చూశాము. ఇప్పుడు ARM7 లో ADC ని ఉపయోగించడం ప్రారంభిద్దాం.
భాగాలు అవసరం
హార్డ్వేర్
- ARM7-LPC2148 మైక్రోకంట్రోలర్
- 3.3 వి వోల్టేజ్ రెగ్యులేటర్ ఐసి
- 5 వి వోల్టేజ్ రెగ్యులేటర్ ఐసి
- 10 కె పొటెన్టోమీటర్ - 2 సంఖ్యలు
- LED (ఏదైనా రంగు)
- LCD డిస్ప్లే (16X2)
- 9 వి బ్యాటరీ
- బ్రెడ్బోర్డ్
- వైర్లను కనెక్ట్ చేస్తోంది
సాఫ్ట్వేర్
- కైల్ uVision5
- మ్యాజిక్ ఫ్లాష్ సాధనం
సర్క్యూట్ రేఖాచిత్రం
దిగువ పట్టిక LCD & ARM7-LPC2148 మధ్య సర్క్యూట్ కనెక్షన్లను చూపుతుంది.
ARM7-LPC2148 |
LCD (16x2) |
పి.0.4 |
RS (రిజిస్టర్ సెలెక్ట్) |
పి.0.6 |
ఇ (ప్రారంభించు) |
పి.0.12 |
డి 4 (డేటా పిన్ 4) |
పి.0.13 |
డి 5 (డేటా పిన్ 5) |
పి.0.14 |
డి 6 (డేటా పిన్ 6) |
పి.0.15 |
డి 7 (డేటా పిన్ 7) |
ARM 7 - LPC2148 తో LCD ని ఉపయోగించడం గురించి మరింత తెలుసుకోండి.
ముఖ్యమైనది: ఇక్కడ మేము రెండు వోల్టేజ్ రెగ్యులేటర్ ఐసిలను 5 వి ఎల్సిడి డిస్ప్లే కోసం మరియు మరొక 3.3 వి అనలాగ్ ఇన్పుట్ కోసం ఉపయోగిస్తున్నాము, ఇవి పొటెన్షియోమీటర్ ద్వారా వైవిధ్యంగా ఉంటాయి.
LCD & ARM7 స్టిక్తో 5V వోల్టేజ్ రెగ్యులేటర్ మధ్య కనెక్షన్లు
5 వి వోల్టేజ్ రెగ్యులేటర్ ఐసి |
పిన్ ఫంక్షన్ |
LCD & ARM-7 LPC2148 |
1. ఎడమ పిన్ |
బ్యాటరీ 9 వి ఇన్పుట్ నుండి + వీ |
NC |
2.సెంటర్ పిన్ |
- బ్యాటరీ నుండి వె |
LCD యొక్క VSS, R / W, K. ARM7 యొక్క GND |
3.రైట్ పిన్ |
నియంత్రిత + 5 వి అవుట్పుట్ |
ఎల్సిడి యొక్క విడిడి, ఎ ARM7 యొక్క + 5V |
LCD తో పొటెన్టోమీటర్
LCD డిస్ప్లే యొక్క వ్యత్యాసాన్ని మార్చడానికి ఒక పొటెన్టోమీటర్ ఉపయోగించబడుతుంది. ఒక కుండలో మూడు పిన్స్ ఉన్నాయి, లెఫ్ట్ పిన్ (1) + 5 వికి మరియు సెంటర్ (2) ను ఎల్ఇసి మాడ్యూల్ యొక్క విఇఇ లేదా వి 0 కి మరియు కుడి పిన్ (3) జిఎన్డికి అనుసంధానించబడి ఉంది. నాబ్ను తిప్పడం ద్వారా మేము దీనికి విరుద్ధంగా సర్దుబాటు చేయవచ్చు.
3.3V వోల్టేజ్ రెగ్యులేటర్తో LPC2148 & పొటెన్టోమీటర్ మధ్య కనెక్షన్
3.3 వి వోల్టేజ్ రెగ్యులేటర్ ఐసి |
పిన్ ఫంక్షన్ |
ARM-7 LPC2148 |
1. ఎడమ పిన్ |
- బ్యాటరీ నుండి వె |
GND పిన్ |
2.సెంటర్ పిన్ |
నియంత్రిత + 3.3 వి అవుట్పుట్ |
పొటెన్టోమీటర్ ఇన్పుట్ మరియు పొటెన్టోమీటర్ యొక్క అవుట్పుట్ P0.28 కు |
3.రైట్ పిన్ |
బ్యాటరీ 9 వి ఇన్పుట్ నుండి + వీ |
NC |
ADC కోసం ప్రోగ్రామింగ్ ARM7-LPC2148
ARM7-LPC2148 ప్రోగ్రామ్ చేయడానికి మాకు కైల్ యువిజన్ & ఫ్లాష్ మ్యాజిక్ సాధనం అవసరం. మైక్రో USB పోర్ట్ ద్వారా ARM7 స్టిక్ ప్రోగ్రామ్ చేయడానికి మేము USB కేబుల్ ఉపయోగిస్తున్నాము. మేము కైల్ ఉపయోగించి కోడ్ వ్రాసి హెక్స్ ఫైల్ను క్రియేట్ చేస్తాము, ఆపై HEX ఫైల్ ఫ్లాష్ మ్యాజిక్ ఉపయోగించి ARM7 స్టిక్ కు ఫ్లాష్ అవుతుంది. కైల్ యువిజన్ మరియు ఫ్లాష్ మ్యాజిక్ను ఇన్స్టాల్ చేయడం గురించి మరియు వాటిని ఎలా ఉపయోగించాలో గురించి మరింత తెలుసుకోవడానికి లింక్ను అనుసరించండి ARM7 LPC2148 మైక్రోకంట్రోలర్తో ప్రారంభించండి మరియు కైల్ యువిజన్ ఉపయోగించి ప్రోగ్రామ్ చేయండి.
ఈ ట్యుటోరియల్లో మేము LPC2148 లో ADC ని ఉపయోగించడం ద్వారా అనలాగ్ ఇన్పుట్ వోల్టేజ్ (0 నుండి 3.3V) ను డిజిటల్ విలువగా మారుస్తాము మరియు LCD డిస్ప్లే (16x2) లో అనలాగ్ వోల్టేజ్ను ప్రదర్శిస్తాము. ఇన్పుట్ అనలాగ్ వోల్టేజ్ను మార్చడానికి ఒక పొటెన్షియోమీటర్ ఉపయోగించబడుతుంది.
ARM7-LPC2148 4-బిట్ మోడ్తో LCD ని ఇంటర్ఫేసింగ్ గురించి మరింత తెలుసుకోవడానికి ఈ లింక్ను అనుసరించండి.
ARM 7 ADC ఉపయోగించి పూర్తి కోడ్ ఇక్కడ మేము అది కొన్ని భాగాలు వివరిస్తూ, ఈ ట్యుటోరియల్ చివరిలో ఇవ్వబడుతుంది.
LPC2148-ADC ప్రోగ్రామింగ్లో పాల్గొన్న దశలు
1. LPC2148 యొక్క పోర్ట్ పిన్ను మరియు ADC ఫంక్షన్ను అనలాగ్ ఇన్పుట్గా ఎంచుకోవడానికి పిన్సెల్ రిజిస్టర్ ఉపయోగించబడుతుంది.
పిన్సెల్ 1 = 0x01000000; // AD0.1 గా P0.28 ఎంచుకోండి
2. ADxCR (ADC కంట్రోల్ రిజిస్టర్) కు విలువను వ్రాయడం ద్వారా మార్పిడి కోసం గడియారం మరియు బిట్ ఖచ్చితత్వాన్ని ఎంచుకోండి.
AD0CR = 0x00200402; // ADC ఆపరేషన్ను 10-బిట్స్ / 11 CLK గా మార్పిడి కోసం సెట్ చేస్తుంది (000)
3. విలువను ADxCR లో START బిట్స్కు వ్రాయడం ద్వారా మార్పిడిని ప్రారంభించండి.
ఇక్కడ నేను AD0CR రిజిస్టర్ యొక్క 24 వ బిట్కు వ్రాశాను.
AD0CR = AD0CR - (1 << 24);
4. ఇప్పుడు మనం 0 నుండి 1 కి మారుతున్నందున సంబంధిత ADxDRy (ADC డేటా రిజిస్టర్) యొక్క DONE బిట్ (31 వ) ను తనిఖీ చేయాలి. కాబట్టి 31 వ బిట్ డేటా రిజిస్టర్లో మార్పిడి జరిగిందో లేదో నిరంతరం తనిఖీ చేయడానికి మేము లూప్ అయితే ఉపయోగిస్తాము.
అయితే (! (AD0DR1 & 0x80000000));
5. పూర్తయిన బిట్ 1 కు సెట్ చేయబడిన తరువాత, మార్పిడి విజయవంతమవుతుంది, తరువాత అదే ADC డేటా రిజిస్టర్ AD0DR1 నుండి ఫలితాన్ని చదివి విలువను వేరియబుల్లో నిల్వ చేస్తాము.
adcvalue = AD0DR1;
మేము ఒక వేరియబుల్ పేరు విపీడనం మరియు స్టోర్ డిజిటల్ విలువ మార్చేందుకు ఒక సూత్రాన్ని ఉపయోగించవచ్చు తదుపరి వోల్టేజ్ .
వోల్టేజ్ = ((adcvalue / 1023.0) * 3.3);
5. డిజిటల్ మార్పిడికి అనలాగ్ తర్వాత డిజిటల్ విలువలను (0 నుండి 1023 వరకు) ప్రదర్శించడానికి క్రింది పంక్తులు ఉపయోగించబడతాయి.
adc = adcvalue; sprintf (displayadc, "adcvalue =% f", adc); LCD_DISPLAY (displayadc); // ADC విలువను ప్రదర్శించు (0 నుండి 1023 వరకు)
6. డిజిటల్ మార్పిడికి అనలాగ్ తరువాత మరియు 5 వ దశ తరువాత ఇన్పుట్ అనలాగ్ వోల్టేజ్ (0 నుండి 3.3 వి) ప్రదర్శించడానికి క్రింది పంక్తులు ఉపయోగించబడతాయి.
LCD_SEND (0xC0); sprintf (వోల్ట్వాల్యూ, "వోల్టేజ్ =%. 2f V", వోల్టేజ్); LCD_DISPLAY (వోల్ట్వాల్యూ); // ప్రదర్శన (ఇన్పుట్ అనలాగ్ వోల్టేజ్)
7. ఇప్పుడు మనం ఎల్సిడి డిస్ప్లేలో ఇన్పుట్ వోల్టేజ్ మరియు డిజిటల్ విలువలను ప్రదర్శించాలి. దీనికి ముందు మేము LCD డిస్ప్లేని ప్రారంభించాలి మరియు ప్రదర్శించడానికి సందేశాన్ని పంపడానికి తగిన ఆదేశాలను ఉపయోగించాలి.
LCD ని ప్రారంభించడానికి క్రింద కోడ్ ఉపయోగించబడుతుంది
void LCD_INITILIZE (శూన్యమైనది) // LCD ని సిద్ధం చేయడానికి ఫంక్షన్ { IO0DIR = 0x0000FFF0; // పిన్ P0.12, P0.13, P0.14, P0.15, P0.4, P0.6 ను OUTPUT delay_ms (20) గా సెట్ చేస్తుంది; LCD_SEND (0x02); // ఎల్సిడిని 4-బిట్ ఆపరేషన్ మోడ్లో ప్రారంభించండి LCD_SEND (0x28); // 2 పంక్తులు (16X2) LCD_SEND (0x0C); // కర్సర్ ఆఫ్ LCD_SEND (0x06) లో ప్రదర్శించు; // ఆటో ఇంక్రిమెంట్ కర్సర్ LCD_SEND (0x01); // స్పష్టమైన LCD_SEND (0x80) ను ప్రదర్శించు; // మొదటి పంక్తి మొదటి స్థానం }
విలువలను LCD లో ప్రదర్శించడానికి క్రింద కోడ్ ఉపయోగించబడుతుంది
గర్జన LCD_DISPLAY (చార్ * msg) అక్షరాలు ముద్రించడానికి // ఫంక్షన్ ఒకరి పంపిన { i = uint8_t 0; అయితే (msg! = 0) { IO0PIN = ((IO0PIN & 0xFFFF00FF) - ((msg & 0xF0) << 8%); // ఎగువ నిబుల్ IO0SET = 0x00000050 పంపుతుంది ; డేటాను ముద్రించడానికి // RS HIGH & ENABLE HIGH IO0CLR = 0x00000020; // RW తక్కువ వ్రాసే మోడ్ ఆలస్యం_ఎంఎస్ (2); IO0CLR = 0x00000040; // EN = 0, RS మరియు RW మారదు (అనగా RS = 1, RW = 0) delay_ms (5); IO0PIN = ((IO0PIN & 0xFFFF00FF) - ((msg & 0x0F) << 12%); // దిగువ నిబుల్ IO0SET = 0x00000050 పంపుతుంది ; // RS & EN HIGH IO0CLR = 0x00000020; delay_ms (2); IO0CLR = 0x00000040; delay_ms (5); i ++; } }
ఆలస్యం సృష్టించడానికి క్రింద ఫంక్షన్ ఉపయోగించబడుతుంది
void delay_ms (uint16_t j) // మిల్లీసెకన్లలో ఆలస్యం చేసే పని { uint16_t x, i; (i = 0; i
ప్రదర్శన వీడియోతో పూర్తి కోడ్ క్రింద ఇవ్వబడింది.