ఈ ట్యుటోరియల్లో మనం దూరాన్ని కొలవడానికి ఒక సర్క్యూట్ను చర్చించబోతున్నాం. AVR మైక్రోకంట్రోలర్తో అల్ట్రాసోనిక్ సెన్సార్ “HC-SR04” ను ఇంటర్ఫేసింగ్ చేయడం ద్వారా ఈ సర్క్యూట్ అభివృద్ధి చేయబడింది. ఈ సెన్సార్ “ECHO” అని పిలువబడే ఒక సాంకేతికతను ఉపయోగిస్తుంది, ఇది ఉపరితలంతో కొట్టిన తర్వాత ధ్వని తిరిగి ప్రతిబింబించేటప్పుడు మీకు లభిస్తుంది.
ధ్వని కంపనాలు ఘనపదార్థాల ద్వారా ప్రవేశించలేవని మాకు తెలుసు. కాబట్టి ఏమి జరుగుతుంది, ధ్వని మూలం కంపనాలను ఉత్పత్తి చేసినప్పుడు అవి సెకనుకు 220 మీటర్ల వేగంతో గాలి ద్వారా ప్రయాణిస్తాయి. ఈ కంపనాలు అవి మా చెవిని కలిసినప్పుడు మేము వాటిని ధ్వనిగా వర్ణిస్తాము. ఇంతకు ముందే చెప్పినట్లుగా ఈ కంపనాలు దృ through ంగా వెళ్ళలేవు, కాబట్టి అవి గోడ వంటి ఉపరితలంతో కొట్టినప్పుడు, అవి మూలానికి అదే వేగంతో తిరిగి ప్రతిబింబిస్తాయి, దీనిని ఎకో అంటారు.
అల్ట్రాసోనిక్ సెన్సార్ “HC-SR04” ప్రతిధ్వని ఆధారంగా దూరానికి అనులోమానుపాతంలో అవుట్పుట్ సిగ్నల్ను అందిస్తుంది. ఇక్కడ ఉన్న సెన్సార్ ట్రిగ్గర్ ఇచ్చిన తర్వాత అల్ట్రాసోనిక్ పరిధిలో ధ్వని వైబ్రేషన్ను ఉత్పత్తి చేస్తుంది, ఆ తర్వాత ధ్వని కంపనం తిరిగి వచ్చే వరకు వేచి ఉంటుంది. ఇప్పుడు పారామితులు, ధ్వని వేగం (220 మీ / సె) మరియు ఎకో మూలాన్ని చేరుకోవడానికి తీసుకున్న సమయం ఆధారంగా, ఇది దూరానికి అనులోమానుపాతంలో అవుట్పుట్ పల్స్ను అందిస్తుంది.
చిత్రంలో చూపినట్లుగా, మొదట మనం దూరాన్ని కొలవడానికి సెన్సార్ను ప్రారంభించాలి, ఇది 10uS కన్నా ఎక్కువ సెన్సార్ యొక్క ట్రిగ్గర్ పిన్ వద్ద ఉన్న ఒక హై లాజిక్ సిగ్నల్, ఆ తర్వాత సెన్సార్ ద్వారా సౌండ్ వైబ్రేషన్ పంపబడుతుంది, ప్రతిధ్వని తరువాత, సెన్సార్ అందిస్తుంది అవుట్పుట్ పిన్ వద్ద సిగ్నల్, దీని వెడల్పు మూలం మరియు అడ్డంకి మధ్య దూరానికి అనులోమానుపాతంలో ఉంటుంది.
ఈ దూరం లెక్కించబడుతుంది, దూరం (సెం.మీ.లో) = పల్స్ అవుట్పుట్ యొక్క వెడల్పు (యుఎస్ లో) / 58.
ఇక్కడ సిగ్నల్ యొక్క వెడల్పు తప్పక uS (మైక్రో సెకండ్ లేదా 10 ^ -6) లో తీసుకోవాలి.
భాగాలు అవసరం
హార్డ్వేర్: ATMEGA32, విద్యుత్ సరఫరా (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16x2LCD), 1000uF కెపాసిటర్, 10KΩ రెసిస్టర్ (2 ముక్కలు), HC-SR04 సెన్సార్.
సాఫ్ట్వేర్: అట్మెల్ స్టూడియో 6.1, ప్రోగిస్ప్ లేదా ఫ్లాష్ మ్యాజిక్.
సర్క్యూట్ రేఖాచిత్రం మరియు వర్కింగ్ వివరణ
ఇక్కడ మేము LCD డేటా పోర్ట్ (D0-D7) కు కనెక్ట్ అవ్వడానికి PORTB ని ఉపయోగిస్తున్నాము. ATMEGA32A యొక్క FUSE BITS తో పనిచేయడానికి ఇష్టపడని ఎవరైనా PORTC ని ఉపయోగించలేరు, ఎందుకంటే PORTC ఒక ప్రత్యేకమైన కమ్యూనికేషన్ను కలిగి ఉంది, ఇది FUSEBITS ని మార్చడం ద్వారా మాత్రమే నిలిపివేయబడుతుంది.
సర్క్యూట్లో, నేను రెండు కంట్రోల్ పిన్స్ మాత్రమే తీసుకున్నాను, ఇది మంచి అవగాహన యొక్క సౌలభ్యాన్ని ఇస్తుంది. కాంట్రాస్ట్ బిట్ మరియు READ / WRITE తరచుగా ఉపయోగించబడవు కాబట్టి వాటిని భూమికి తగ్గించవచ్చు. ఇది ఎల్సిడిని అత్యధిక కాంట్రాస్ట్ మరియు రీడ్ మోడ్లో ఉంచుతుంది. అక్షరాలు మరియు డేటాను తదనుగుణంగా పంపడానికి మేము ఎనేబుల్ మరియు RS పిన్లను నియంత్రించాలి.
LCD కోసం చేసిన కనెక్షన్లు క్రింద ఇవ్వబడ్డాయి:
PIN1 లేదా VSS భూమికి
PIN2 లేదా VDD లేదా VCC నుండి + 5v శక్తికి
PIN3 లేదా VEE to ground (ఒక అనుభవశూన్యుడు కోసం గరిష్ట విరుద్ధతను ఉత్తమంగా ఇస్తుంది)
UC యొక్క PD6 కు PIN4 లేదా RS (రిజిస్టర్ ఎంపిక)
PIN5 లేదా RW (చదవడం / వ్రాయడం) భూమికి (LCD ని రీడ్ మోడ్లో ఉంచుతుంది వినియోగదారు కోసం కమ్యూనికేషన్ను సులభతరం చేస్తుంది)
UC యొక్క PD5 కు PIN6 లేదా E (ప్రారంభించు)
UC యొక్క PIN7 లేదా D0 నుండి PB0 వరకు
UC యొక్క PIN8 లేదా D1 నుండి PB1 వరకు
UC యొక్క PB9 లేదా D2 నుండి PB2 వరకు
UC యొక్క PIN10 లేదా D3 నుండి PB3 వరకు
UC యొక్క PIN11 లేదా D4 నుండి PB4 వరకు
UC యొక్క PIN12 లేదా D5 నుండి PB5 వరకు
UC యొక్క PIN13 లేదా D6 నుండి PB6 వరకు
UC యొక్క PIN14 లేదా D7 నుండి PB7 వరకు
సర్క్యూట్లో మేము 8 బిట్ కమ్యూనికేషన్ (డి 0-డి 7) ను ఉపయోగించామని మీరు చూడవచ్చు, అయితే ఇది తప్పనిసరి కాదు మరియు మేము 4 బిట్ కమ్యూనికేషన్ (డి 4-డి 7) ను ఉపయోగించవచ్చు, కాని 4 బిట్ కమ్యూనికేషన్ ప్రోగ్రామ్ తో కాస్త క్లిష్టంగా మారుతుంది. పై పట్టికలో చూపిన విధంగా మనం 10 పిన్స్ ఎల్సిడిని కంట్రోలర్కు కలుపుతున్నాము, ఇందులో 8 పిన్లు డేటా పిన్స్ మరియు నియంత్రణ కోసం 2 పిన్స్.
అల్ట్రాసోనిక్ సెన్సార్ నాలుగు పిన్ పరికరం, పిన్ 1- విసిసి లేదా + 5 వి; పిన్ 2-ట్రిగ్గర్; పిన్ 3- ఎకో; పిన్ 4- గ్రౌండ్. ట్రిగ్గర్ పిన్ అంటే దూరాన్ని కొలవడానికి సెన్సార్కు చెప్పడానికి మేము ట్రిగ్గర్ ఇస్తాము. ఎకో అనేది అవుట్పుట్ పిన్, ఇక్కడ మనకు పల్స్ వెడల్పు రూపంలో దూరం లభిస్తుంది. ఇక్కడ ఎకో పిన్ బాహ్య అంతరాయ మూలంగా నియంత్రికకు అనుసంధానించబడి ఉంది. కాబట్టి సిగ్నల్ అవుట్పుట్ యొక్క వెడల్పు పొందడానికి, సెన్సార్ యొక్క ఎకో పిన్ INT0 (అంతరాయం 0) లేదా PD2 కి అనుసంధానించబడి ఉంది.
1. కనీసం 12uS కోసం ట్రిగ్గర్ పిన్ను పైకి లాగడం ద్వారా సెన్సార్ను ట్రిగ్గర్ చేయడం.
2. ప్రతిధ్వని పెరిగిన తర్వాత మనకు బాహ్య అంతరాయం వస్తుంది మరియు మేము ISR (ఇంటరప్ట్ సర్వీస్ రొటీన్) లో ఒక కౌంటర్ (కౌంటర్ను ప్రారంభించడం) ప్రారంభించబోతున్నాము, ఇది అంతరాయం ఏర్పడిన వెంటనే అమలు అవుతుంది.
3. ప్రతిధ్వని మళ్లీ తగ్గిన తర్వాత అంతరాయం ఏర్పడుతుంది, ఈసారి మనం కౌంటర్ను ఆపబోతున్నాం (కౌంటర్ను డిసేబుల్).
4. కాబట్టి ఎకో పిన్ వద్ద పల్స్ ఎక్కువ నుండి తక్కువ వరకు, మేము ఒక కౌంటర్ ప్రారంభించి దానిని ఆపివేసాము. దూరాన్ని పొందడానికి ఈ గణన మెమరీకి నవీకరించబడింది, ఎందుకంటే ఇప్పుడు మనకు లెక్కలో ప్రతిధ్వని యొక్క వెడల్పు ఉంది.
5. సెం.మీ.లో దూరం పొందడానికి మెమరీలో మరిన్ని లెక్కలు చేయబోతున్నాం
6. దూరం 16x2 LCD డిస్ప్లేలో ప్రదర్శించబడుతుంది.
పై లక్షణాలను సెటప్ చేయడానికి మేము ఈ క్రింది రిజిస్టర్లను సెట్ చేయబోతున్నాము:
సెటప్ పనిచేయడానికి పైన పేర్కొన్న మూడు రిజిస్టర్లు తదనుగుణంగా సెట్ చేయబడతాయి మరియు మేము వాటిని క్లుప్తంగా చర్చించబోతున్నాము, నీలం (INT0): బాహ్య అంతరాయం 0 ను ప్రారంభించడానికి ఈ బిట్ అధికంగా అమర్చాలి, ఈ పిన్ సెట్ చేయబడిన తర్వాత మేము PIND2 పిన్ వద్ద లాజిక్ మార్పులను గ్రహించగలము.
BROWN (ISC00, ISC01): PD2 వద్ద తగిన లాజిక్ మార్పు కోసం ఈ రెండు బిట్స్ సర్దుబాటు చేయబడతాయి, వీటిని అంతరాయంగా పరిగణించాలి.
ఇంతకుముందు చెప్పినట్లుగా, గణనను ప్రారంభించడానికి మరియు దానిని ఆపడానికి మాకు అంతరాయం అవసరం. కాబట్టి మేము ISC00 ను ఒకటిగా సెట్ చేసాము మరియు INT0 వద్ద HIGH కి తక్కువ లాజిక్ ఉన్నప్పుడు మేము అంతరాయం పొందుతాము; తక్కువ నుండి తక్కువ వరకు లాజిక్ ఉన్నప్పుడు మరొక అంతరాయం.
RED (CS10): ఈ బిట్ కేవలం కౌంటర్ను ప్రారంభించడానికి మరియు నిలిపివేయడానికి. ఇది ఇతర బిట్స్ CS10, CS12 తో కలిసి పనిచేస్తున్నప్పటికీ. మేము ఇక్కడ ఎటువంటి ప్రిస్కలింగ్ చేయడం లేదు, కాబట్టి మేము వాటి గురించి ఆందోళన చెందాల్సిన అవసరం లేదు.
ఇక్కడ గుర్తుంచుకోవలసిన కొన్ని ముఖ్యమైన విషయాలు:
మేము 1MHz అయిన ATMEGA32A యొక్క అంతర్గత గడియారాన్ని ఉపయోగిస్తున్నాము. ఇక్కడ ప్రిస్కలింగ్ లేదు, మేము మ్యాచ్ ఇంటరప్ట్ జనరేట్ని పోల్చడం లేదు, కాబట్టి క్లిష్టమైన రిజిస్టర్ సెట్టింగ్లు లేవు.
లెక్కింపు తర్వాత కౌంట్ విలువ 16 బిట్ టిసిఎన్టి 1 రిజిస్టర్లో నిల్వ చేయబడుతుంది.
Arduino తో ఈ ప్రాజెక్ట్ను కూడా తనిఖీ చేయండి: Arduino ఉపయోగించి దూర కొలత
ప్రోగ్రామింగ్ వివరణ
దూర కొలత సెన్సార్ యొక్క పని క్రింది సి ప్రోగ్రామ్లో దశల వారీగా వివరించబడింది.
పిన్లపై డేటా ప్రవాహ నియంత్రణను ప్రారంభించడానికి # చేర్చండి // హెడర్ # F_CPU 1000000 ని నిర్వచించండి // కంట్రోలర్ క్రిస్టల్ ఫ్రీక్వెన్సీని జతచేయడం # చేర్చండి