- అంతరాయాల రకాలు
- Arduino లో అంతరాయాలు
- Arduino లో అంతరాయాలను ఉపయోగించడం
- భాగాలు అవసరం
- సర్క్యూట్ రేఖాచిత్రం
- ఆర్డునో ఇంటరప్ట్ ప్రోగ్రామింగ్
- Arduino అంతరాయ ప్రదర్శన
వేగంగా కదిలే కారును పరిగణించండి, అది అకస్మాత్తుగా మరొక కారును వ్యతిరేక దిశలో hit ీకొంటే, జరిగే మొదటి విషయం ఏమిటంటే, కారులో ఉన్న యాక్సిలెరోమీటర్ సెన్సార్ ఆకస్మిక డి-త్వరణాన్ని గ్రహించి, ప్రస్తుతం ఉన్న మైక్రోకంట్రోలర్కు బాహ్య అంతరాయాన్ని ప్రేరేపిస్తుంది. కారు. ఆ అంతరాయం ఆధారంగా మైక్రోకంట్రోలర్ వెంటనే ఎయిర్బ్యాగ్లను అమర్చడానికి ఎలక్ట్రిక్ సిగ్నల్ను ఉత్పత్తి చేస్తుంది. కారులో ఉన్న మైక్రోకంట్రోలర్లు కారు వేగాన్ని గ్రహించడం, ఇతర సెన్సార్లను తనిఖీ చేయడం, ఎయిర్ కండీషనర్ ఉష్ణోగ్రతను నియంత్రించడం వంటి అనేక విషయాలను ఏకకాలంలో పర్యవేక్షిస్తాయి. కాబట్టి సెకన్లలో ఎయిర్ బ్యాగ్ అకస్మాత్తుగా తెరవడం ఏమిటి? సమాధానం అంతరాయాలు, అంతరాయ సిగ్నల్ ఇక్కడ ఉపయోగించబడుతుంది, ఇది అన్నింటికన్నా ఎక్కువ ప్రాధాన్యతనిస్తుంది.
అంతరాయాలకు మరో సరళమైన ఉదాహరణ టచ్ స్క్రీన్ మొబైల్ ఫోన్లు, ఇవి “టచ్” భావనకు అధిక ప్రాధాన్యతనిస్తాయి. దాదాపు ప్రతి ఎలక్ట్రానిక్ పరికరం సాధారణ ప్రక్రియను 'అంతరాయం కలిగించడానికి' ఒక రకమైన అంతరాయాన్ని కలిగి ఉంటుంది మరియు ఒక నిర్దిష్ట సంఘటనపై కొన్ని అధిక ప్రాధాన్యతనిస్తుంది. అంతరాయానికి సేవ చేసిన తర్వాత సాధారణ ప్రక్రియ తిరిగి ప్రారంభించబడుతుంది.
కాబట్టి సాంకేతికంగా, అంతరాయాలు అనేది ఒక I / O లేదా ఇన్స్ట్రక్షన్ ప్రాసెసర్ యొక్క సాధారణ అమలును నిలిపివేయగలదు మరియు అధిక ప్రాధాన్యత ఉన్నట్లుగానే సేవలను పొందుతుంది. ఉదాహరణకు, ISR (ఇంటరప్ట్ సర్వీస్ రొటీన్) లో ఉన్న ఒక నిర్దిష్ట ప్రక్రియను అమలు చేయడానికి ఒక ప్రాసెసర్ను కొన్ని సెన్సార్ ద్వారా అంతరాయం కలిగించవచ్చు. ISR ప్రాసెసర్ను అమలు చేసిన తర్వాత మళ్లీ సాధారణ అమలును తిరిగి ప్రారంభించవచ్చు.
అంతరాయాల రకాలు
రెండు రకాల అంతరాయాలు ఉన్నాయి:
హార్డ్వేర్ అంతరాయం: బాహ్య అంతరాయం పిన్ లాగా బాహ్య సంఘటన జరిగినప్పుడు దాని స్థితిని తక్కువ నుండి అధికంగా లేదా అధికంగా తక్కువకు మార్చినప్పుడు ఇది జరుగుతుంది.
సాఫ్ట్వేర్ అంతరాయం: సాఫ్ట్వేర్ నుండి వచ్చిన సూచనల ప్రకారం ఇది జరుగుతుంది. ఉదాహరణకు టైమర్ అంతరాయాలు సాఫ్ట్వేర్ అంతరాయం.
Arduino లో అంతరాయాలు
Arduino బోర్డులో అంతరాయాలను ఎలా ఉపయోగించాలో ఇప్పుడు మనం చూస్తాము. దీనికి రెండు రకాల అంతరాయాలు ఉన్నాయి:
- బాహ్య అంతరాయం
- పిన్ చేంజ్ ఇంటరప్ట్
బాహ్య అంతరాయం:
ఈ అంతరాయాలు హార్డ్వేర్ ద్వారా వివరించబడతాయి మరియు చాలా వేగంగా ఉంటాయి. ఈ అంతరాయాలు RISING లేదా FALLING లేదా LOW స్థాయిలలో ట్రిగ్గర్ చేయడానికి సెట్ చేయబడతాయి.
ఆర్డునో బోర్డు |
బాహ్య అంతరాయ పిన్స్: |
UNO, నానో |
2,3 |
మెగా |
2,3,18,19,20,21 |
పిన్ మార్పు అంతరాయాలు:
పిన్ మార్పు అంతరాయాలను ఉపయోగించడం ద్వారా ఆర్డునోస్ మరింత అంతరాయ పిన్లను ప్రారంభించవచ్చు. ATmega168 / 328 ఆధారిత Arduino బోర్డులలో ఏదైనా పిన్స్ లేదా మొత్తం 20 సిగ్నల్ పిన్లను అంతరాయ పిన్లుగా ఉపయోగించవచ్చు. RISING లేదా FALLING అంచులను ఉపయోగించి కూడా వాటిని ప్రారంభించవచ్చు.
Arduino లో అంతరాయాలను ఉపయోగించడం
ఆర్డునోలో అంతరాయాలను ఉపయోగించడానికి ఈ క్రింది భావనలను అర్థం చేసుకోవాలి.
ఇంటరప్ట్ సర్వీస్ రొటీన్ (ISR)
ఇంటరప్ట్ సర్వీస్ రొటీన్ లేదా ఇంటరప్ట్ హ్యాండ్లర్ అనేది చిన్న సూచనలను కలిగి ఉన్న సంఘటన. బాహ్య అంతరాయం ఏర్పడినప్పుడు, ప్రాసెసర్ మొదట ISR లో ఉన్న ఈ కోడ్ను అమలు చేస్తుంది మరియు సాధారణ అమలును వదిలిపెట్టిన స్థితికి తిరిగి వస్తుంది.
ఆర్డునోలో ISR వాక్యనిర్మాణాన్ని అనుసరిస్తోంది :
అటాచ్ఇంటరప్ట్ (డిజిటల్ పిన్టోఇంటరప్ట్ (పిన్), ISR, మోడ్);
DigitalPinToInterrupt (పిన్): Arduino Uno లో, NANO అంతరాయానికి ఉపయోగించే పిన్స్ 2,3 & మెగా 2,3,18,19,20,21. బాహ్య అంతరాయం కోసం ఉపయోగించే ఇన్పుట్ పిన్ను ఇక్కడ పేర్కొనండి.
ISR: ఇది బాహ్య అంతరాయం జరిగినప్పుడు పిలువబడే ఫంక్షన్.
మోడ్: ట్రిగ్గర్ చేయడానికి పరివర్తన రకం, ఉదా. పడిపోవడం, పెరుగుతున్నది మొదలైనవి.
- రైజింగ్: పిన్ తక్కువ నుండి అధికంగా మారినప్పుడు అంతరాయాన్ని ప్రేరేపించడానికి.
- ఫాలింగ్: పిన్ అధిక నుండి తక్కువకు బదిలీ అయినప్పుడు అంతరాయాన్ని ప్రేరేపించడానికి.
- మార్చండి: పిన్ LOW నుండి HIGH లేదా HIGH నుండి LOW వరకు బదిలీ అయినప్పుడు అంతరాయాన్ని ప్రేరేపించడానికి (అనగా పిన్ స్థితి మారినప్పుడు).
అంతరాయాన్ని ఉపయోగిస్తున్నప్పుడు కొన్ని షరతులు
- ఇంటరప్ట్ సర్వీస్ రొటీన్ ఫంక్షన్ (ISR) వీలైనంత తక్కువగా ఉండాలి.
- ఆలస్యం () ఫంక్షన్ ISR లోపల పనిచేయదు మరియు తప్పించబడాలి.
ఈ ఆర్డునో ఇంటరప్ట్ ట్యుటోరియల్లో, ఒక సంఖ్య 0 నుండి పెంచబడుతుంది మరియు అంతరాయాన్ని ప్రేరేపించడానికి రెండు పుష్ బటన్లు ఉపయోగించబడతాయి, ప్రతి ఒక్కటి D2 & D3 కి అనుసంధానించబడి ఉంటుంది. అంతరాయాన్ని సూచించడానికి ఒక LED ఉపయోగించబడుతుంది. ఒక పుష్ బటన్ నొక్కితే, లెడ్ ఆన్ అవుతుంది మరియు డిస్ప్లే ఇంటరప్ట్ 2 చూపిస్తుంది మరియు ఆఫ్ అవుతుంది, మరియు మరొక పుష్ బటన్ నొక్కినప్పుడు లీడ్ ఆఫ్ అవుతుంది మరియు డిస్ప్లే ఇంటరప్ట్ 1 చూపిస్తుంది మరియు ఆఫ్ అవుతుంది.
భాగాలు అవసరం
- Arduino Board (ఈ ట్యుటోరియల్లో Arduino NANO ఉపయోగించబడుతుంది)
- పుష్ బటన్ - 2
- LED - 1
- రెసిస్టర్ (10 కె) - 2
- LCD (16x2) - 1
- బ్రెడ్ బోర్డు
- వైర్లను కనెక్ట్ చేస్తోంది
సర్క్యూట్ రేఖాచిత్రం
Arduino నానో మరియు 16x2 LCD డిస్ప్లే మధ్య సర్క్యూట్ కనెక్షన్:
ఎల్సిడి |
ఆర్డునో నానో |
వి.ఎస్.ఎస్ |
GND |
VDD |
+ 5 వి |
వి 0 |
పొటెన్టోమీటర్ సెంటర్ పిన్కు LCD యొక్క కాంట్రాస్ట్ను నియంత్రించడానికి |
ఆర్ఎస్ |
డి 7 |
ఆర్డబ్ల్యూ |
GND |
ఇ |
డి 8 |
డి 4 |
డి 9 |
డి 5 |
డి 10 |
డి 6 |
డి 11 |
డి 7 |
డి 12 |
జ |
+ 5 వి |
కె |
GND |
పిన్ D2 & D3 వద్ద రెండు పుష్ బటన్లు ఆర్డునో నానోకు అనుసంధానించబడి ఉన్నాయి. అవి రెండు బాహ్య అంతరాయాలను ఉపయోగించటానికి ఉపయోగించబడతాయి, ఒకటి LED ని ఆన్ చేయడానికి మరియు మరొకటి LED ని ఆపివేయడానికి. ప్రతి పుష్ బటన్ భూమికి అనుసంధానించబడిన 10 కె యొక్క పుల్ డౌన్ రెసిస్టర్ను కలిగి ఉంటుంది. కాబట్టి పుష్ బటన్ నొక్కినప్పుడు అది లాజిక్ HIGH (1) మరియు నొక్కినప్పుడు అది లాజిక్ LOW (0). పుల్ డౌన్ రెసిస్టర్ తప్పనిసరి లేకపోతే ఇన్పుట్ పిన్ D2 & D3 వద్ద తేలియాడే విలువలు ఉంటాయి.
ఒక LED కూడా లేదా ఒక అంతరాయ ప్రేరేపించిన చెయ్యబడింది సూచించుటకు ఉపయోగిస్తారు ఒక బటన్ ప్రెస్ చేసి.
ఆర్డునో ఇంటరప్ట్ ప్రోగ్రామింగ్
ఈ ట్యుటోరియల్లో 0 నుండి ఒక సంఖ్య పెరుగుతుంది, ఇది ఆర్డునో నానోకు అనుసంధానించబడిన (16x2) ఎల్సిడిలో నిరంతరం ప్రదర్శించబడుతుంది, ఎడమ పుష్ బటన్ (ఇంటరప్ట్ పిన్ డి 3) నొక్కినప్పుడల్లా ఎల్ఇడి ఆన్ అయి డిస్ప్లే ఇంటరప్ట్ 2 ను చూపిస్తుంది మరియు కుడి పుష్ బటన్ ఉన్నప్పుడు (ఇంటరప్ట్ పిన్ D2) నొక్కినప్పుడు LED ఆపివేయబడుతుంది మరియు ప్రదర్శన అంతరాయం 1 చూపిస్తుంది.
ఈ ట్యుటోరియల్ చివరిలో పని చేసే వీడియోతో పూర్తి కోడ్ ఇవ్వబడుతుంది.
1. మొదట ఎల్సిడి డిస్ప్లే కోసం హెడర్ ఫైల్ చేర్చబడింది, ఆపై ఆర్డునో నానోతో కనెక్ట్ అవ్వడానికి ఉపయోగించే ఎల్సిడి పిన్లు నిర్వచించబడతాయి.
# చేర్చండి
2. శూన్య సెటప్ () ఫంక్షన్ లోపల, మొదట ఎల్సిడి డిస్ప్లేలో కొంత పరిచయ సందేశాన్ని ప్రదర్శించండి. ఆర్డునోతో ఎల్సిడిని ఇంటర్ఫేస్ చేయడం గురించి ఇక్కడ మరింత తెలుసుకోండి.
lcd.begin (16,2); lcd.setCursor (0,0); lcd.print ("CIRCUIT DIGEST"); lcd.setCursor (0,1); lcd.print ("ArduinoInterrupt"); ఆలస్యం (3000); lcd.clear ();
3. అప్పుడు అదే శూన్య సెటప్ () ఫంక్షన్లో ఇన్పుట్ మరియు అవుట్పుట్ పిన్లు తప్పక పేర్కొనబడాలి. పిన్ D13 LED యొక్క యానోడ్కు అనుసంధానించబడి ఉంది, కాబట్టి ఈ పిన్ను తప్పనిసరిగా అవుట్పుట్గా నిర్వచించాలి.
పిన్ మోడ్ (13, U ట్పుట్);
4. ఇప్పుడు ప్రోగ్రామింగ్లో ప్రధాన ముఖ్యమైన భాగం అటాచ్ఇంటరప్ట్ () ఫంక్షన్, ఇది శూన్య సెటప్ () లోపల కూడా చేర్చబడింది.
అటాచ్ఇంటరప్ట్ (డిజిటల్ పిన్టోఇంటరప్ట్ (2), బటన్ ప్రెస్డ్ 1, రైజింగ్); అటాచ్ఇంటరప్ట్ (డిజిటల్ పిన్టోఇంటరప్ట్ (3), బటన్ ప్రెస్డ్ 2, రైజింగ్);
పిన్ 2 బాహ్య అంతరాయం కోసం ఇక్కడ పేర్కొనబడింది మరియు D2 పిన్ వద్ద RISING (LOW to HIGH) ఉన్నప్పుడు బటన్ప్రెస్డ్ 1 ఫంక్షన్ అంటారు. మరియు పిన్ 3 బాహ్య అంతరాయం కోసం మరియు D3 పిన్ వద్ద RISING ఉన్నప్పుడు బటన్ప్రెస్డ్ 2 ఫంక్షన్ అంటారు.
5. శూన్య లూప్ () లోపల, ఒక సంఖ్య (i) సున్నా నుండి పెంచబడుతుంది మరియు LCD (16x2) లో ముద్రించబడుతుంది.
lcd.clear (); lcd.print ("COUNTER:"); lcd.print (i); ++ i; ఆలస్యం (1000);
అదే శూన్య లూప్ () లో, LED యొక్క యానోడ్ అనుసంధానించబడిన పిన్ D13 లో డిజిటల్ రైట్ () ఉపయోగించబడుతుంది. వేరియబుల్ అవుట్పుట్లోని విలువను బట్టి LED ఆన్ లేదా ఆఫ్ అవుతుంది
డిజిటల్ రైట్ (13, అవుట్పుట్);
6. అటాచ్ఇంటరప్ట్ () ఫంక్షన్లో ఉపయోగించిన పేరు ప్రకారం ఇంటరప్ట్ హ్యాండ్లర్ ఫంక్షన్ను సృష్టించడం చాలా ముఖ్యమైన భాగం.
రెండు అంతరాయ పిన్స్ 2 మరియు 3 ఉపయోగించబడుతున్నందున రెండు ISR అవసరం. ఇక్కడ ఈ ప్రోగ్రామింగ్లో ISR క్రింది ఉపయోగించబడుతుంది
buttonPressed1 ():
void buttonPressed1 () { output = LOW; lcd.setCursor (0,1); lcd.print ("అంతరాయం 1"); }
పిన్ D2 పై పుష్ బటన్ నొక్కినప్పుడు ఈ ఫంక్షన్ అమలు అవుతుంది (RISING EDGE). ఈ ఫంక్షన్ అవుట్పుట్ యొక్క స్థితిని LOW గా మారుస్తుంది, దీని వలన LED ఆఫ్ అవుతుంది మరియు LCD డిస్ప్లేలో “ఇంటరప్ట్ 1” ను ప్రింట్ చేస్తుంది.
buttonPressed2 ():
void buttonPressed2 () {output = HIGH; lcd.setCursor (0,1); lcd.print ("అంతరాయం 2"); }
పిన్ D3 పై పుష్ బటన్ నొక్కినప్పుడు ఈ ఫంక్షన్ అమలు అవుతుంది. ఈ ఫంక్షన్ అవుట్పుట్ యొక్క స్థితిని HIGH గా మారుస్తుంది, దీని వలన LED ఆన్ అవుతుంది మరియు LCD డిస్ప్లేలో “ఇంటరప్ట్ 2” ను ప్రింట్ చేస్తుంది.
Arduino అంతరాయ ప్రదర్శన
1. ఎడమ వైపున ఉన్న పుష్ బటన్ నొక్కినప్పుడు LED ఆన్ అవుతుంది మరియు LCD ఇంటరప్ట్ 2 ను ప్రదర్శిస్తుంది.
2. కుడి వైపున ఉన్న పుష్ బటన్ నొక్కినప్పుడు LED ఆపివేయబడుతుంది మరియు LCD ఇంటరప్ట్ 1 ను ప్రదర్శిస్తుంది
సాధారణ అమలు మధ్య ఏదైనా ముఖ్యమైన పనిని ప్రారంభించడానికి అంతరాయం ఎలా ఉపయోగపడుతుంది.