- పదార్థాలు అవసరం
- సౌండ్ సెన్సార్ వర్కింగ్
- ఓసిల్లోస్కోప్లో ఆడియో ఫ్రీక్వెన్సీని కొలవడం
- విజిల్ డిటెక్టర్ ఆర్డునో సర్క్యూట్ రేఖాచిత్రం
- ఆర్డునోతో ఫ్రీక్వెన్సీని కొలవడం
- విజిల్ను గుర్తించడం కోసం మీ ఆర్డునోను ప్రోగ్రామింగ్ చేయండి
- ఆర్డునో విజిల్ డిటెక్టర్ వర్కింగ్
చిన్నప్పుడు నేను బొమ్మల సంగీత కారుతో ఆకర్షితుడయ్యాను, అది మీరు చప్పట్లు కొట్టినప్పుడు ప్రేరేపించబడుతుంది, ఆపై నేను పెద్దయ్యాక మా ఇంటిలో లైట్లు మరియు అభిమానులను టోగుల్ చేయడానికి అదే ఉపయోగించవచ్చా అని నేను ఆశ్చర్యపోయాను. స్విచ్ బోర్డ్కు నా సోమరితనం నడవడానికి బదులుగా చేతులు చప్పట్లు కొట్టడం ద్వారా నా అభిమానులు మరియు లైట్లను ఆన్ చేయడం చాలా బాగుంది. ఈ సర్క్యూట్ వాతావరణంలో ఏదైనా పెద్ద శబ్దం, పెద్ద రేడియో వంటిది లేదా నా పొరుగువారి పచ్చిక మొవర్ కోసం ప్రతిస్పందిస్తుంది కాబట్టి ఇది తరచుగా పనిచేయదు. క్లాప్ స్విచ్ నిర్మించడం కూడా ఒక ఆహ్లాదకరమైన ప్రాజెక్ట్.
ఈ విజిల్ డిటెక్టింగ్ పద్ధతిని నేను చూసినప్పుడు, విజిల్ కోసం సర్క్యూట్ కనుగొంటుంది. ఇతర శబ్దాలకు భిన్నంగా ఒక విజిల్ ఒక నిర్దిష్ట వ్యవధికి ఏకరీతి పౌన frequency పున్యాన్ని కలిగి ఉంటుంది మరియు అందువల్ల ప్రసంగం లేదా సంగీతం నుండి వేరు చేయవచ్చు. కాబట్టి ఈ ట్యుటోరియల్లో సౌండ్ సెన్సార్ను ఆర్డునోతో ఇంటర్ఫేస్ చేయడం ద్వారా విజిల్ సౌండ్ను ఎలా గుర్తించాలో నేర్చుకుంటాము మరియు ఒక విజిల్ కనుగొనబడినప్పుడు మేము రిలే ద్వారా ఎసి లాంప్ను టోగుల్ చేస్తాము. మైక్రోఫోన్ ద్వారా సౌండ్ సిగ్నల్స్ ఎలా స్వీకరించబడుతున్నాయో మరియు ఆర్డునో ఉపయోగించి ఫ్రీక్వెన్సీని ఎలా కొలిచాలో కూడా మనం నేర్చుకుంటాము. ఆసక్తికరంగా అనిపిస్తుంది కాబట్టి ఆర్డునో ఆధారిత హోమ్ ఆటోమేషన్ ప్రాజెక్ట్తో ప్రారంభిద్దాం.
పదార్థాలు అవసరం
- ఆర్డునో UNO
- సౌండ్ సెన్సార్ మాడ్యూల్
- రిలే మాడ్యూల్
- ఎసి లాంప్
- వైర్లను కనెక్ట్ చేస్తోంది
- బ్రెడ్బోర్డ్
సౌండ్ సెన్సార్ వర్కింగ్
ఈ హోమ్ ఆటోమేషన్ ప్రాజెక్ట్ కోసం మేము హార్డ్వేర్ కనెక్షన్ మరియు కోడ్లోకి ప్రవేశించే ముందు, సౌండ్ సెన్సార్ను పరిశీలిద్దాం. ఈ మాడ్యూల్లో ఉపయోగించిన సౌండ్ సెన్సార్ క్రింద చూపబడింది. మార్కెట్లో లభించే చాలా సౌండ్ సెన్సార్ల పని సూత్రం దీనికి సమానంగా ఉంటుంది, అయినప్పటికీ ప్రదర్శన కొద్దిగా మారవచ్చు.
సౌండ్ సెన్సార్లోని ఆదిమ భాగం మైక్రోఫోన్ అని మనకు తెలుసు. మైక్రోఫోన్ అనేది ట్రాన్స్డ్యూసెర్ రకం, ఇది ధ్వని తరంగాలను (శబ్ద శక్తి) విద్యుత్ శక్తిగా మారుస్తుంది. మైక్రోఫోన్ లోపల డయాఫ్రాగమ్ వాతావరణంలోని ధ్వని తరంగాలకు కంపిస్తుంది, ఇది దాని అవుట్పుట్ పిన్పై విద్యుత్ సంకేతాన్ని ఉత్పత్తి చేస్తుంది. కానీ ఈ సంకేతాలు చాలా తక్కువ మాగ్నిట్యూడ్ (mV) గా ఉంటాయి మరియు అందువల్ల Arduino వంటి మైక్రోకంట్రోలర్ చేత నేరుగా ప్రాసెస్ చేయబడదు. అప్రమేయంగా సౌండ్ సిగ్నల్స్ ప్రకృతిలో అనలాగ్ కాబట్టి మైక్రోఫోన్ నుండి వచ్చే అవుట్పుట్ వేరియబుల్ ఫ్రీక్వెన్సీతో సైన్ వేవ్ అవుతుంది, అయితే మైక్రోకంట్రోలర్లు డిజిటల్ పరికరాలు మరియు అందువల్ల స్క్వేర్ వేవ్తో బాగా పనిచేస్తాయి.
ఈ తక్కువ సిగ్నల్ సైన్ తరంగాలను విస్తరించడానికి మరియు వాటిని చదరపు తరంగాలుగా మార్చడానికి మాడ్యూల్ పైన చూపిన విధంగా ఆన్-బోర్డు LM393 కంపారిటర్ మాడ్యూల్ను ఉపయోగిస్తుంది. మైక్రోఫోన్ నుండి తక్కువ వోల్టేజ్ ఆడియో అవుట్పుట్ ఒక యాంప్లిఫైయర్ ట్రాన్సిస్టర్ ద్వారా కంపారిటర్ యొక్క ఒక పిన్కు సరఫరా చేయబడుతుంది, అయితే పోటెన్టోమీటర్తో కూడిన వోల్టేజ్ డివైడర్ సర్క్యూట్ను ఉపయోగించి మరొక పిన్పై రిఫరెన్స్ వోల్టేజ్ సెట్ చేయబడుతుంది. మైక్రోఫోన్ నుండి ఆడియో అవుట్పుట్ వోల్టేజ్ ప్రీసెట్ వోల్టేజ్ను మించినప్పుడు, కంపారిటర్ 5 వి (ఆపరేటింగ్ వోల్టేజ్) తో అధికంగా వెళుతుంది, లేకపోతే పోలిక 0 వి వద్ద తక్కువగా ఉంటుంది. ఈ విధంగా తక్కువ సిగ్నల్ సైన్ వేవ్ హై వోల్టేజ్ (5 వి) స్క్వేర్ వేవ్కు కన్వర్టర్ అవుతుంది. క్రింద ఉన్న ఓసిల్లోస్కోప్ స్నాప్షాట్ పసుపు తరంగం తక్కువ సిగ్నల్ సైన్ వేవ్ మరియు నీలిరంగు అవుట్పుట్ స్క్వేర్ వేవ్ ఉన్న చోట చూపిస్తుంది. దిమాడ్యూల్లోని పొటెన్షియోమీటర్ను మార్చడం ద్వారా సున్నితత్వాన్ని నియంత్రించవచ్చు.
ఓసిల్లోస్కోప్లో ఆడియో ఫ్రీక్వెన్సీని కొలవడం
ఈ సౌండ్ సెన్సార్ మాడ్యూల్ వాతావరణంలోని ధ్వని తరంగాలను చదరపు తరంగాలుగా మారుస్తుంది, దీని పౌన frequency పున్యం ధ్వని తరంగాల పౌన frequency పున్యానికి సమానంగా ఉంటుంది. కాబట్టి చదరపు తరంగం యొక్క పౌన frequency పున్యాన్ని కొలవడం ద్వారా వాతావరణంలో ధ్వని సంకేతాల పౌన frequency పున్యాన్ని కనుగొనవచ్చు. దిగువ వీడియోలో చూపిన విధంగా దాని అవుట్పుట్ సిగ్నల్ను పరిశీలించడానికి సౌండ్ సెన్సార్ను నా పరిధికి కనెక్ట్ చేశాను.
ఫ్రీక్వెన్సీని కొలవడానికి నేను నా స్కోప్లోని కొలత మోడ్ను ఆన్ చేసాను మరియు తెలిసిన ఫ్రీక్వెన్సీ యొక్క సౌండ్ సిగ్నల్లను రూపొందించడానికి ప్లే స్టోర్ నుండి Android అప్లికేషన్ (ఫ్రీక్వెన్సీ సౌండ్ జనరేటర్) ను ఉపయోగించాను. పై GID లో మీరు చూడగలిగినట్లుగా, స్కోప్ సౌండ్ సిగ్నల్స్ ను చాలా మంచి ఖచ్చితత్వంతో కొలవగలిగింది, స్కోప్లో ప్రదర్శించబడే ఫ్రీక్వెన్సీ విలువ నా ఫోన్లో ప్రదర్శించబడే వాటికి చాలా దగ్గరగా ఉంటుంది. ఇప్పుడు, మాడ్యూల్ పనిచేస్తుందని మనకు తెలుసు, ఆర్డునోతో సౌండ్ సెన్సార్ను ఇంటర్ఫేసింగ్తో కొనసాగించండి .
విజిల్ డిటెక్టర్ ఆర్డునో సర్క్యూట్ రేఖాచిత్రం
సౌండ్ సెన్సార్ ఉపయోగించి ఆర్డునో విజిల్ డిటెక్టర్ స్విచ్ సర్క్యూట్ కోసం పూర్తి సర్క్యూట్ రేఖాచిత్రం క్రింద చూపబడింది. ఫ్రిట్జింగ్ సాఫ్ట్వేర్ను ఉపయోగించి సర్క్యూట్ డ్రా చేయబడింది.
సౌండ్ సెన్సార్ మరియు రిలే మాడ్యూల్ ఆర్డునో యొక్క 5 వి పిన్ ద్వారా శక్తిని పొందుతుంది. సౌండ్ సెన్సార్ యొక్క అవుట్పుట్ పిన్ ఆర్డునో యొక్క డిజిటల్ పిన్ 8 కి అనుసంధానించబడి ఉంది, దీనికి కారణం ఆ పిన్ యొక్క టైమర్ ఆస్తి మరియు మేము ప్రోగ్రామింగ్ విభాగంలో దీని గురించి మరింత చర్చిస్తాము. రిలే మాడ్యూల్ పిన్ 13 చేత ప్రేరేపించబడుతుంది, ఇది UNO బోర్డులో అంతర్నిర్మిత LED కి కూడా అనుసంధానించబడి ఉంది.
ఎసి సరఫరా వైపు తటస్థ వైర్ నేరుగా రిలే మాడ్యూల్ యొక్క కామన్ (సి) పిన్తో అనుసంధానించబడి ఉంటుంది, అయితే దశ ఎసి లోడ్ (లైట్ బల్బ్) ద్వారా రిలే యొక్క సాధారణంగా ఓపెన్ (NO) పిన్తో అనుసంధానించబడి ఉంటుంది. ఈ విధంగా రిలే ప్రేరేపించబడినప్పుడు NO పిన్ సి పిన్తో అనుసంధానించబడుతుంది మరియు తద్వారా లైట్ బల్బ్ మెరుస్తుంది. లేకపోతే బ్లబ్ ఆపివేయబడుతుంది. కనెక్షన్లు చేసిన తర్వాత, నా హార్డ్వేర్ ఇలాంటిదే అనిపించింది.
హెచ్చరిక: ఎసి సర్క్యూట్తో పనిచేయడం ప్రమాదకరంగా ఉంటుంది, లైవ్ వైర్లను నిర్వహించేటప్పుడు జాగ్రత్తగా ఉండండి మరియు షార్ట్ సర్క్యూట్లను నివారించవచ్చు. ఎలక్ట్రానిక్స్తో అనుభవం లేని వ్యక్తుల కోసం సర్క్యూట్ బ్రేకర్ లేదా వయోజన పర్యవేక్షణ సిఫార్సు చేయబడింది. మీకు హెచ్చరిక !!
ఆర్డునోతో ఫ్రీక్వెన్సీని కొలవడం
ఇన్కమింగ్ స్క్వేర్ తరంగాల ఫ్రీక్వెన్సీని చదివే మా స్కోప్ మాదిరిగానే, ఫ్రీక్వెన్సీని లెక్కించడానికి మేము ఆర్డునోను ప్రోగ్రామ్ చేయాలి. ఫంక్షన్లోని పల్స్ ఉపయోగించి మా ఫ్రీక్వెన్సీ కౌంటర్ ట్యుటోరియల్లో దీన్ని ఎలా చేయాలో మేము ఇప్పటికే నేర్చుకున్నాము. కానీ ఈ ట్యుటోరియల్లో ఖచ్చితమైన ఫలితాలను పొందడానికి ఫ్రీక్మెజర్ లైబ్రరీని ఉపయోగిస్తాము. పల్స్ ఎంతసేపు ఉందో కొలవడానికి ఈ లైబ్రరీ పిన్ 8 లోని అంతర్గత టైమర్ అంతరాయాన్ని ఉపయోగిస్తుంది. సమయం కొలిచిన తర్వాత మనం F = 1 / T సూత్రాలను ఉపయోగించి ఫ్రీక్వెన్సీని లెక్కించవచ్చు. మేము లైబ్రరీని నేరుగా ఉపయోగిస్తున్నందున, ఫ్రీక్వెన్సీ ఎలా కొలుస్తారు అనే రిజిస్టర్ వివరాలు మరియు గణితంలోకి మనం ప్రవేశించాల్సిన అవసరం లేదు. ఈ క్రింది లింక్ నుండి లైబ్రరీని డౌన్లోడ్ చేసుకోవచ్చు:
- Pjrc ద్వారా ఫ్రీక్వెన్సీ మెజర్ లైబ్రరీ
పై లింక్ ఒక జిప్ ఫైల్ను డౌన్లోడ్ చేస్తుంది, అప్పుడు మీరు స్కెచ్ -> లైబ్రరీని చేర్చండి ->.ZIP లైబ్రరీని చేర్చండి.
గమనిక: లైబ్రరీని ఉపయోగించడం వలనUNO లో పిన్ 9 మరియు 10 పై అనలాగ్ రైట్ కార్యాచరణనునిలిపివేస్తుందిఎందుకంటే టైమర్ ఈ లైబ్రరీ చేత ఆక్రమించబడుతుంది. ఇతర బోర్డులను ఉపయోగిస్తే ఈ పిన్స్ కూడా మారుతాయి.
విజిల్ను గుర్తించడం కోసం మీ ఆర్డునోను ప్రోగ్రామింగ్ చేయండి
ప్రదర్శన వీడియో తో పూర్తి కార్యక్రమం ఈ పేజీ దిగువన చూడవచ్చు. ఈ శీర్షికలో నేను ప్రోగ్రామ్ను చిన్న స్నిప్పెట్లుగా విభజించడం ద్వారా వివరిస్తాను.
ఎప్పటిలాగే మేము అవసరమైన లైబ్రరీలను చేర్చడం ద్వారా మరియు అవసరమైన వేరియబుల్స్ను ప్రకటించడం ద్వారా ప్రోగ్రామ్ను ప్రారంభిస్తాము. పై శీర్షికలో వివరించిన విధంగా మీరు ఇప్పటికే FreqMeasure.h లైబ్రరీని జోడించారని నిర్ధారించుకోండి. వేరియబుల్ స్థితి LED యొక్క స్థితిని సూచిస్తుంది మరియు వేరియబుల్స్ ఫ్రీక్వెన్సీ మరియు కొనసాగింపు వరుసగా కొలిచిన ఫ్రీక్వెన్సీని మరియు దాని కొనసాగింపును అవుట్పుట్ చేయడానికి ఉపయోగిస్తారు.
# చేర్చండి
శూన్య సెటప్ ఫంక్షన్ లోపల, డీబగ్గింగ్ కోసం మేము సీరియల్ మానిటర్ను 9600 బాడ్ రేటుతో ప్రారంభిస్తాము. ఫ్రీక్వెన్సీని కొలవడానికి పిన్ 8 ను ప్రారంభించడానికి FreqMeasure.begin () ఫంక్షన్ను ఉపయోగించండి. పిన్ 13 (LED_BUILTIN) అవుట్పుట్ అని కూడా మేము ప్రకటించాము.
శూన్య సెటప్ () { Serial.begin (9600); FreqMeasure.begin (); // అప్రమేయంగా పిన్ 8 పై కొలతలు పిన్ మోడ్ (LED_BUILTIN, OUTPUT); }
అనంతమైన లూప్ లోపల, FreqMeasure.available () ఫంక్షన్ను ఉపయోగించి పిన్ 8 లో వింటూనే ఉంటాము. ఇన్కమింగ్ సిగ్నల్ ఉంటే, మేము ఫ్రీక్మీజర్.రెడ్ () ను ఉపయోగించి ఫ్రీక్వెన్సీని కొలుస్తాము . శబ్దం కారణంగా లోపం నివారించడానికి మేము 100 నమూనాలను కొలుస్తాము మరియు దాని సగటును తీసుకుంటాము. అదే చేయవలసిన కోడ్ క్రింద చూపబడింది.
if (FreqMeasure.available ()) { // సగటున అనేక పఠనాలు కలిసి మొత్తం = sum + FreqMeasure.read (); count = count + 1; if (count> 100) { frequency = FreqMeasure.countToFrequency (sum / count); సీరియల్.ప్రింట్ల్న్ (ఫ్రీక్వెన్సీ); మొత్తం = 0; లెక్కింపు = 0; } }
మీ విజిల్ కోసం ఫ్రీక్వెన్సీ విలువను తనిఖీ చేయడానికి మీరు ఇక్కడ సీరియల్.ప్రింట్ల్న్ () ఫంక్షన్ను ఉపయోగించవచ్చు. నా విషయంలో అందుకున్న విలువ 1800Hz నుండి 2000Hz వరకు. చాలా మంది ప్రజల విజిల్ ఫ్రీక్వెన్సీ ఈ ప్రత్యేక పరిధిలో వస్తుంది. సంగీతం లేదా వాయిస్ వంటి ఇతర శబ్దాలు కూడా ఈ పౌన frequency పున్యంలోకి వస్తాయి కాబట్టి వాటిని వేరు చేయడానికి మేము కొనసాగింపు కోసం పర్యవేక్షిస్తాము. ఫ్రీక్వెన్సీ 3 సార్లు నిరంతరంగా ఉంటే, అది విజిల్ సౌండ్ అని మేము ధృవీకరిస్తాము. కాబట్టి, ఫ్రీక్వెన్సీ 1800 నుండి 2000 మధ్య ఉంటే, అప్పుడు మేము కంటిన్యుటీ అని పిలువబడే వేరియబుల్ ను పెంచుతాము.
if (ఫ్రీక్వెన్సీ> 1800 && ఫ్రీక్వెన్సీ <2000) {కొనసాగింపు ++; సీరియల్.ప్రింట్ ("కొనసాగింపు ->"); సీరియల్.ప్రింట్ల్న్ (కొనసాగింపు); పౌన frequency పున్యం = 0;}
కొనసాగింపు యొక్క విలువ మూడుకు మించి ఉంటే లేదా మించి ఉంటే, అప్పుడు మేము స్టేట్ అని పిలువబడే వేరియబుల్ను టోగుల్ చేయడం ద్వారా LED యొక్క స్థితిని మారుస్తాము. రాష్ట్రం ఇప్పటికే నిజమైతే మేము దానిని తప్పుడు మరియు వైస్ వెర్సాగా మారుస్తాము.
if (కొనసాగింపు> = 3 && స్థితి == తప్పుడు) {state = true; కొనసాగింపు = 0; సీరియల్.ప్రింట్ల్న్ ("లైట్ ఆన్ చేయబడింది"); ఆలస్యం (1000);} if (కొనసాగింపు> = 3 && స్థితి == నిజం) {state = false; కొనసాగింపు = 0; సీరియల్.ప్రింట్ల్న్ ("లైట్ టర్న్డ్ ఆఫ్"); ఆలస్యం (1000);}
ఆర్డునో విజిల్ డిటెక్టర్ వర్కింగ్
కోడ్ మరియు హార్డ్వేర్ సిద్ధమైన తర్వాత మేము దానిని పరీక్షించడం ప్రారంభించవచ్చు. కనెక్షన్లు సరైనవని నిర్ధారించుకోండి మరియు మాడ్యూల్ను శక్తివంతం చేయండి. సీరియల్ మానిటర్ను తెరిచి, ఈల వేయడం ప్రారంభించండి, కొనసాగింపు యొక్క విలువను పెంచడం మరియు చివరకు దీపం ఆన్ లేదా ఆఫ్ చేయడం మీరు గమనించవచ్చు. నా సీరియల్ మానిటర్ యొక్క నమూనా స్నాప్ షాట్ క్రింద చూపబడింది.
పిన్ 13 పై లైట్ ఆన్ చేయబడిందని సీరియల్ మానిటర్ చెప్పినప్పుడు, లాంప్ను ఆన్ చేయడానికి రిలే ప్రేరేపించబడుతుంది. అదేవిధంగా లైట్ ఆపివేయబడిందని సీరియల్ మానిటర్ చెప్పినప్పుడు దీపం ఆపివేయబడుతుంది . మీరు పనిని పరీక్షించిన తర్వాత మీరు 12V అడాప్టర్ ఉపయోగించి సెటప్కు శక్తినివ్వవచ్చు మరియు విజిల్ ఉపయోగించి మీ AC హోమ్ ఉపకరణాన్ని నియంత్రించడం ప్రారంభించవచ్చు.
ఈ ప్రాజెక్ట్ యొక్క పూర్తి పనిని క్రింద లింక్ చేసిన వీడియోలో చూడవచ్చు. మీరు ట్యుటోరియల్ అర్థం చేసుకున్నారని మరియు క్రొత్తదాన్ని నేర్చుకోవడం ఆనందించారని ఆశిస్తున్నాము. విషయాలు పని చేయడంలో మీకు ఏమైనా సమస్య ఉంటే, వాటిని వ్యాఖ్య విభాగంలో ఉంచండి లేదా ఇతర సాంకేతిక ప్రశ్నల కోసం మా ఫోరమ్ను ఉపయోగించండి.