- ADC0804 మరియు రాస్ప్బెర్రీ పై:
- LM35 ఉష్ణోగ్రత సెన్సార్:
- అవసరమైన భాగాలు:
- సర్క్యూట్ మరియు వర్కింగ్ వివరణ:
- ప్రోగ్రామింగ్ వివరణ:
మా రాస్ప్బెర్రీ పై ట్యుటోరియల్ సిరీస్లో రాస్ప్బెర్రీ పైతో ఇంటర్ఫేసింగ్ చేసే అన్ని ప్రాథమిక భాగాలను మేము ఎక్కువగా కవర్ చేసాము. మేము అన్ని ట్యుటోరియల్స్ ను సరళంగా మరియు వివరంగా కవర్ చేసాము, తద్వారా అతను రాస్ప్బెర్రీ పైతో కలిసి పనిచేశాడో లేదో ఎవరైనా ఈ సిరీస్ నుండి సులభంగా నేర్చుకోవచ్చు. మరియు అన్ని ట్యుటోరియల్స్ ద్వారా వెళ్ళిన తరువాత మీరు రాస్ప్బెర్రీ పై ఉపయోగించి కొన్ని హై లెవల్ ప్రాజెక్టులను నిర్మించగలుగుతారు.
ఇక్కడ మేము మునుపటి ట్యుటోరియల్స్ ఆధారంగా మొదటి అప్లికేషన్ను డిజైన్ చేస్తున్నాము. మొదటి ప్రాథమిక అనువర్తనం రాస్ప్బెర్రీ పైచే పఠనం గది ఉష్ణోగ్రత. మరియు మీరు కంప్యూటర్లోని రీడింగులను పర్యవేక్షించవచ్చు.
మునుపటి ట్యుటోరియల్లో చర్చించినట్లుగా, రాస్ప్బెర్రీ పైలో అంతర్గతంగా ADC ఛానెల్స్ అందించబడలేదు. కాబట్టి మనం ఏదైనా అనలాగ్ సెన్సార్లను ఇంటర్ఫేస్ చేయాలనుకుంటే మనకు ADC మార్పిడి యూనిట్ అవసరం. మరియు మా ట్యుటోరియల్లో ఒక అనలాగ్ విలువను చదవడానికి మేము రాస్ప్బెర్రీ పైకి ఇంటర్ఫేస్డ్ ADC0804 చిప్ను కలిగి ఉన్నాము. కాబట్టి ఈ గది ఉష్ణోగ్రత థర్మామీటర్ నిర్మించే ముందు దాని గుండా వెళ్ళండి.
ADC0804 మరియు రాస్ప్బెర్రీ పై:
ADC0804 అనలాగ్ సిగ్నల్ను 8 బిట్ డిజిటల్ డేటాగా మార్చడానికి రూపొందించిన చిప్. ఈ చిప్ ADC యొక్క ప్రసిద్ధ సిరీస్లో ఒకటి. ఇది 8 బిట్ మార్పిడి యూనిట్, కాబట్టి మనకు విలువలు లేదా 0 నుండి 255 విలువలు ఉన్నాయి. మేము ఎంచుకున్న రిఫరెన్స్ వోల్టేజ్ ఆధారంగా ఈ చిప్ యొక్క రిజల్యూషన్ మారుతుంది, తరువాత దాని గురించి మరింత మాట్లాడుతాము. ADC0804 యొక్క పిన్అవుట్ క్రింద ఉంది:
ఇప్పుడు ఇక్కడ మరొక ముఖ్యమైన విషయం ఏమిటంటే, ADC0804 5V వద్ద పనిచేస్తుంది మరియు కనుక ఇది 5V లాజిక్ సిగ్నల్లో అవుట్పుట్ను అందిస్తుంది. 8 పిన్ అవుట్పుట్లో (8 బిట్లను సూచిస్తుంది), ప్రతి పిన్ లాజిక్'1 ను సూచించడానికి + 5 వి అవుట్పుట్ను అందిస్తుంది. కాబట్టి సమస్య PI లాజిక్ + 3.3v, కాబట్టి మీరు PI యొక్క + 3.3V GPIO పిన్కు + 5V లాజిక్ ఇవ్వలేరు. మీరు PI యొక్క ఏదైనా GPIO పిన్కు + 5V ఇస్తే, బోర్డు దెబ్బతింటుంది.
కాబట్టి + 5 వి నుండి స్టెప్-డౌన్ లాజిక్ స్థాయికి, మేము వోల్టేజ్ డివైడర్ సర్క్యూట్ను ఉపయోగిస్తాము. వోల్టేజ్ డివైడర్ సర్క్యూట్ గురించి మరింత స్పష్టత కోసం మేము ఇంతకుముందు పరిశీలించాము. మనం చేయబోయేది ఏమిటంటే, + 5 వి తర్కాన్ని 2 * 2.5 వి లాజిక్లుగా విభజించడానికి మేము రెండు రెసిస్టర్లను ఉపయోగిస్తాము. కాబట్టి విభజన తరువాత మేము PI కి + 2.5v లాజిక్ ఇస్తాము. కాబట్టి, ADC0804 చేత లాజిక్ '1' ప్రదర్శించబడినప్పుడల్లా + 5V కి బదులుగా PI GPIO పిన్ వద్ద + 2.5V ని చూస్తాము.
LM35 ఉష్ణోగ్రత సెన్సార్:
ఇప్పుడు గది ఉష్ణోగ్రత చదవడానికి, మాకు సెన్సార్ అవసరం. ఇక్కడ మనం LM35 టెంపరేచర్ సెన్సార్ని ఉపయోగించబోతున్నాం. ఉష్ణోగ్రత సాధారణంగా “సెంటిగ్రేడ్” లేదా “ఫారెన్హీట్” లో కొలుస్తారు. “LM35” సెన్సార్ డిగ్రీ సెంటిగ్రేడ్లో అవుట్పుట్ను అందిస్తుంది.
చిత్రంలో చూపినట్లుగా, LM35 అనేది పరికరం వంటి మూడు పిన్ ట్రాన్సిస్టర్. పిన్స్ ఇలా లెక్కించబడ్డాయి, PIN1 = Vcc - శక్తి (+ 5V కి కనెక్ట్ చేయబడింది)
PIN2 = సిగ్నల్ లేదా అవుట్పుట్ (ADC చిప్కు కనెక్ట్ చేయబడింది)
పిన్ 3 = గ్రౌండ్ (భూమికి కనెక్ట్ చేయబడింది)
ఈ సెన్సార్ ఉష్ణోగ్రత ఆధారంగా అవుట్పుట్ వద్ద వేరియబుల్ వోల్టేజ్ను అందిస్తుంది. ఉష్ణోగ్రతలో ప్రతి +1 సెంటీగ్రేడ్ పెరుగుదలకు అవుట్పుట్ పిన్ వద్ద + 10 ఎంవి అధిక వోల్టేజ్ ఉంటుంది. కాబట్టి ఉష్ణోగ్రత 0◦ సెంటీగ్రేడ్ అయితే సెన్సార్ యొక్క అవుట్పుట్ 0 వి అవుతుంది, ఉష్ణోగ్రత 10◦ సెంటీగ్రేడ్ అయితే సెన్సార్ యొక్క అవుట్పుట్ + 100 ఎంవి అవుతుంది, ఉష్ణోగ్రత 25◦ సెంటీగ్రేడ్ అయితే సెన్సార్ యొక్క అవుట్పుట్ + 250 ఎంవి ఉంటుంది.
అవసరమైన భాగాలు:
ఇక్కడ మేము రాస్ప్బెర్రీ పై 2 మోడల్ B ని రాస్పియన్ జెస్సీ OS తో ఉపయోగిస్తున్నాము. అన్ని ప్రాథమిక హార్డ్వేర్ మరియు సాఫ్ట్వేర్ అవసరాలు ఇంతకుముందు చర్చించబడ్డాయి, మీరు దీన్ని రాస్ప్బెర్రీ పై పరిచయంలో చూడవచ్చు, మనకు అవసరమైనవి కాకుండా:
- పిన్లను కనెక్ట్ చేస్తోంది
- 1KΩresistor (17 ముక్కలు)
- 10 కె పాట్
- 0.1µF కెపాసిటర్
- 100µF కెపాసిటర్
- 1000µF కెపాసిటర్
- ADC0804 IC
- LM35 ఉష్ణోగ్రత సెన్సార్
- బ్రెడ్ బోర్డు
సర్క్యూట్ మరియు వర్కింగ్ వివరణ:
రాస్ప్బెర్రీని ADC0804 మరియు LM35 కి కనెక్ట్ చేయడానికి చేసిన కనెక్షన్లు క్రింద ఉన్న సర్క్యూట్ రేఖాచిత్రంలో చూపించబడ్డాయి.
LM35 అవుట్పుట్ చాలా వోల్టేజ్ హెచ్చుతగ్గులను కలిగి ఉంది; కాబట్టి 100uF కెపాసిటర్ చిత్రంలో చూపిన విధంగా అవుట్పుట్ను సున్నితంగా చేయడానికి ఉపయోగించబడుతుంది.
ADC ఎల్లప్పుడూ చాలా శబ్దాన్ని కలిగి ఉంటుంది, ఈ శబ్దం పనితీరును బాగా ప్రభావితం చేస్తుంది, కాబట్టి మేము శబ్దం వడపోత కోసం 0.1uF కెపాసిటర్ను ఉపయోగిస్తాము. ఇది లేకుండా అవుట్పుట్ వద్ద చాలా హెచ్చుతగ్గులు ఉంటాయి.
చిప్ RC (రెసిస్టర్-కెపాసిటర్) ఓసిలేటర్ గడియారంలో పనిచేస్తుంది. సర్క్యూట్ రేఖాచిత్రంలో చూపినట్లుగా , C2 మరియు R20 ఒక గడియారాన్ని ఏర్పరుస్తాయి. ఇక్కడ గుర్తుంచుకోవలసిన ముఖ్యమైన విషయం ఏమిటంటే, అధిక రేటు ADC మార్పిడి కోసం కెపాసిటర్ C2 ను తక్కువ విలువకు మార్చవచ్చు. అయితే అధిక వేగంతో ఖచ్చితత్వం తగ్గుతుంది. కాబట్టి అనువర్తనానికి అధిక ఖచ్చితత్వం అవసరమైతే, అధిక విలువ కలిగిన కెపాసిటర్ను ఎంచుకోండి మరియు అధిక వేగం కోసం తక్కువ విలువ కలిగిన కెపాసిటర్ను ఎంచుకోండి.
ఇంతకు ముందు చెప్పినట్లుగా, ప్రతి సెంటీగ్రేడ్కు LM35 + 10mV ని అందిస్తుంది. LM35 చేత కొలవగల గరిష్ట ఉష్ణోగ్రత 150º సెంటీగ్రేడ్. కాబట్టి మేము LM35 అవుట్పుట్ టెర్మినల్ వద్ద గరిష్టంగా 1.5V కలిగి ఉంటాము. కానీ ADC0804 యొక్క డిఫాల్ట్ రిఫరెన్స్ వోల్టేజ్ + 5V. కాబట్టి మేము ఆ రిఫరెన్స్ విలువను ఉపయోగిస్తే, అవుట్పుట్ యొక్క రిజల్యూషన్ తక్కువగా ఉంటుంది ఎందుకంటే మేము డిజిటల్ అవుట్పుట్ పరిధిలో గరిష్టంగా (5 / 1.5) 34% ఉపయోగిస్తాము.
అదృష్టవశాత్తూ ADC0804 పైన సర్దుబాటు చేసిన Vref పిన్ (PIN9) ను కలిగి ఉంది. కాబట్టి మేము చిప్ యొక్క Vref ని + 2V కి సెట్ చేస్తాము. Vref + 2V ని సెట్ చేయడానికి, మేము PIN9 వద్ద + 1V (VREF / 2) యొక్క వోల్టేజ్ను అందించాలి. ఇక్కడ మేము PIN9 వద్ద + 1V కు వోల్టేజ్ను సర్దుబాటు చేయడానికి 10K పాట్ను ఉపయోగిస్తున్నాము. ఖచ్చితమైన వోల్టేజ్ పొందడానికి వోల్టమీటర్ ఉపయోగించండి.
ఆర్డునోతో మరియు AVR మైక్రోకంట్రోలర్తో గది ఉష్ణోగ్రతను చదవడానికి మేము గతంలో LM35 ఉష్ణోగ్రత సెన్సార్ను ఉపయోగించాము. ఆర్డునో ఉపయోగించి తేమ మరియు ఉష్ణోగ్రత కొలతను కూడా తనిఖీ చేయండి
ప్రోగ్రామింగ్ వివరణ:
సర్క్యూట్ రేఖాచిత్రం ప్రకారం ప్రతిదీ కనెక్ట్ అయిన తర్వాత, మేము PYHTON లో ప్రోగ్రామ్ను వ్రాయడానికి PI ని ఆన్ చేయవచ్చు.
మేము PYHTON ప్రోగ్రామ్లో ఉపయోగించబోయే కొన్ని ఆదేశాల గురించి మాట్లాడుతాము, మేము లైబ్రరీ నుండి GPIO ఫైల్ను దిగుమతి చేయబోతున్నాము, క్రింద ఫంక్షన్ PI యొక్క GPIO పిన్లను ప్రోగ్రామ్ చేయడానికి అనుమతిస్తుంది. మేము “GPIO” ను “IO” అని పేరు మార్చుకుంటున్నాము, కాబట్టి ప్రోగ్రామ్లో మనం GPIO పిన్లను సూచించదలిచినప్పుడల్లా 'IO' అనే పదాన్ని ఉపయోగిస్తాము.
RPi.GPIO ని IO గా దిగుమతి చేయండి
కొన్నిసార్లు, మేము ఉపయోగించడానికి ప్రయత్నిస్తున్న GPIO పిన్స్ కొన్ని ఇతర విధులను చేస్తున్నప్పుడు. అలాంటప్పుడు, ప్రోగ్రామ్ను అమలు చేస్తున్నప్పుడు మాకు హెచ్చరికలు అందుతాయి. దిగువ కమాండ్ హెచ్చరికలను విస్మరించి ప్రోగ్రామ్తో కొనసాగమని PI కి చెబుతుంది.
IO.setwarnings (తప్పుడు)
మేము PI యొక్క GPIO పిన్లను బోర్డులోని పిన్ నంబర్ ద్వారా లేదా వాటి ఫంక్షన్ నంబర్ ద్వారా సూచించవచ్చు. బోర్డులోని 'పిన్ 29' లాగా 'GPIO5' ఉంది. కాబట్టి మనం ఇక్కడ పిన్ను '29' లేదా '5' ద్వారా ప్రాతినిధ్యం వహించబోతున్నాం.
IO.setmode (IO.BCM)
మేము 8 పిన్లను ఇన్పుట్ పిన్లుగా సెట్ చేస్తున్నాము. మేము ఈ పిన్ల ద్వారా 8 బిట్ ఎడిసి డేటాను కనుగొంటాము.
IO.setup (4, IO.IN) IO.setup (17, IO.IN) IO.setup (27, IO.IN) IO.setup (22, IO.IN) IO.setup (5, IO.IN) IO.setup (6, IO.IN) IO.setup (13, IO.IN) IO.setup (19, IO.IN)
కలుపులలోని పరిస్థితి నిజమైతే, లూప్ లోపల స్టేట్మెంట్స్ ఒకసారి అమలు చేయబడతాయి. కాబట్టి GPIO పిన్ 19 అధికంగా ఉంటే, అప్పుడు IF లూప్లోని స్టేట్మెంట్లు ఒకసారి అమలు చేయబడతాయి. GPIO పిన్ 19 అధికంగా ఉండకపోతే, అప్పుడు IF లూప్లోని స్టేట్మెంట్లు అమలు చేయబడవు.
if (IO.input (19) == నిజం):
క్రింద ఉన్న ఆదేశం ఎప్పటికీ లూప్గా ఉపయోగించబడుతుంది, ఈ ఆదేశంతో ఈ లూప్లోని స్టేట్మెంట్లు నిరంతరం అమలు చేయబడతాయి.
1:
కోడ్ యొక్క మరింత వివరణ క్రింద కోడ్ విభాగంలో ఇవ్వబడింది.
ప్రోగ్రామ్ వ్రాసిన తరువాత దానిని అమలు చేయడానికి సమయం ఆసన్నమైంది. ప్రోగ్రామ్ను అమలు చేయడానికి ముందు, సర్క్యూట్లో ఏమి జరుగుతుందో సారాంశంగా మాట్లాడటానికి అనుమతిస్తుంది. మొదటి LM35 సెన్సార్ గది ఉష్ణోగ్రతను గుర్తించి దాని ఉత్పత్తి వద్ద అనలాగ్ వోల్టేజ్ను అందిస్తుంది. ఈ వేరియబుల్ వోల్టేజ్ temperatureC కి + 10mV తో సరళంగా ఉష్ణోగ్రతను సూచిస్తుంది. ఈ సిగ్నల్ ADC0804 చిప్కు ఇవ్వబడుతుంది, ఈ చిప్ అనలాగ్ విలువను డిజిటల్ విలువగా 255/200 = 1.275 కౌంట్ per10mv లేదా 1 డిగ్రీకి 1.275 కౌంట్తో మారుస్తుంది. ఈ గణనను PI GPIO తీసుకుంటుంది. ప్రోగ్రామ్ గణనను ఉష్ణోగ్రత విలువగా మారుస్తుంది మరియు దానిని తెరపై ప్రదర్శిస్తుంది. PI చదివిన సాధారణ ఉష్ణోగ్రత క్రింద చూపబడింది, అందువల్ల మేము ఈ రాస్ప్బెర్రీ పై ఉష్ణోగ్రత మానిటర్.