Sensori i zërit për qarkun e robotit. Sensorët akustikë për ndriçimin janë një mrekulli e teknologjisë që ju kursen para. Këmbëza për kontrollin e ndriçimit

Diagrami i një sensori akustik në dizajnet e radios amatore

Në skemën e parë të konsideruar, një sensor i tipit akustik është montuar në bazë të një emituesi piezoelektrik të zërit dhe i përgjigjet dridhjeve të ndryshme në sipërfaqen ku mbështetet. Baza e modeleve të tjera është një mikrofon standard.


Ky sensor do të jetë efektiv nëse sipërfaqja që monitoron është një përcjellëse e mirë e valëve akustike (metal, qeramikë, qelq, etj.). Transformuesi akustik në këtë dizajn radio amator është një emetues tipik piezoelektrik i zërit nga një multimetër kinez i tipit M830. Është një kuti plastike e rrumbullakosur që strehon një pllakë bronzi. Në sipërfaqen e tij përballë trupit ka një element piezoelektrik, ana e jashtme e të cilit është e veshur me argjend. Telat dalin nga sipërfaqja e argjendtë dhe nga pllaka bronzi. Sensori duhet të instalohet në sipërfaqen e kontrolluar në mënyrë që trupi i tij plastik të jetë në kontakt të mirë me sipërfaqen e kontrolluar. Kur instaloni një transduktor akustik në xhami, për të rritur ndjeshmërinë, mund të hiqni emetuesin nga kutia dhe ta lidhni atë në mënyrë që sipërfaqja e tij e lëmuar prej bronzi të shtypet kundër xhamit.


Kur ekspozohet ndaj sipërfaqes me të cilën është në kontakt konverteri B1, në të krijohen lëkundje elektrike, të cilat amplifikohen nga para-amplifikuesi dhe shndërrohen në impulse logjike nga krahasuesi në op-amp A1. Ndjeshmëria e pajisjes rregullohet duke akorduar rezistencën R3. Nëse voltazhi i gjeneruar që shfaqet në konvertues tejkalon pragun e ndjeshmërisë së op-amp. Në daljen e tij, formohen impulse logjike që janë kaotike në natyrë.

Pajisja logjike është ndërtuar në mikromontazhin K561LA9. Zbatimi i qarkut është një qark tipik me një shkrepje RS, me bllokim të hyrjes. Kur voltazhi aplikohet nga burimi i energjisë, këmbëza kalon në gjendjen e vetme dhe mbetet imun ndaj pulseve hyrëse për aq kohë sa kondensatori C2 është duke u ngarkuar përmes rezistencës R6. Pasi ky kapacitet të ketë përfunduar karikimin, këmbëza do të shkyçet.

Me ardhjen e pulsit të parë nga sensori akustik, këmbëza kalon në gjendjen zero. Ndërprerësi i tranzistorit VT1-VT2 zhbllokon dhe lidh ngarkesën e stafetës ose sirenën nga sistemi i alarmit të sigurisë. (Ngarkesa lidhet paralelisht me diodën VD2). Kjo fillon të ngarkojë kapacitetin C3 përmes rezistorit R13. Ndërsa ky karikim po vazhdon, këmbëza mbahet në gjendje zero. Më pas, rivendoset në një dhe ngarkesa fiket.

Për të parandaluar qarkullimin e qarkut për shkak të dridhjeve të tij akustike të krijuara nga sirena, ekziston një zinxhir C4-R11 që do të bllokojë hyrjen e pajisjes logjike dhe do ta hapë atë vetëm pas një intervali të shkurtër kohor pasi të shkëputni ngarkesën. Mund të bllokoni qarkun logjik duke shtypur çelësin S1. Struktura do të kthehet në modalitetin e funksionimit 10 sekonda pas lëshimit të çelësit S1. Tensioni i furnizimit U p duhet të jetë në intervalin 5-15 Volt.

Sensori akustik i bazuar në mikrofon

Para-amplifikimi i sinjalit ndodh në anën e majtë të qarkut. Lloji VT1 KT361 ose analogu i tij më modern, në bazën e të cilit sinjali nga mikrofoni M1 kalon përmes kapacitetit C2, i cili, së bashku me rezistencën R4, formon një përforcues mikrofoni me një fazë. Transistori VT2 i tipit KT315 është një ndjekës tipik emetues dhe kryen funksionin e një ngarkese dinamike të fazës së parë. Rryma e konsumuar prej tij nuk duhet të kalojë 0,4-0,5 mA.

Përforcimi i mëtejshëm i sinjalit kryhet nga një mikroqark DA1 i tipit KR1407UD2 me konsum të ulët të rrymës. Është i lidhur sipas një qarku përforcues diferencial. Prandaj, ndërhyrja e modalitetit të përbashkët e shkaktuar në telat lidhës është shtypur në mënyrë të përkryer. Faktori i përbashkët i refuzimit të modalitetit për tensionet e hyrjes është 100 dB. Sinjali i marrë nga rezistencat e ngarkesës R6 dhe R7 ndjek përmes kondensatorëve C3 dhe C4 në hyrjet invertuese dhe jo-invertuese të op-amp DA1. Faktori i amplifikimit të sinjalit mund të rregullohet duke ndryshuar vlerat e rezistencave R8 dhe R9. Rezistorët R10, R11 dhe kapaciteti C5 krijojnë një pikë të mesme artificiale në të cilën voltazhi është i barabartë me gjysmën e tensionit të furnizimit me energji elektrike. Duke përdorur rezistencën R13 ne vendosëm konsumin aktual të kërkuar të mikroqarkut.

Sensori akustik i tranzistorit

Figura më poshtë tregon një qark të një sensori të thjeshtë, shumë të ndjeshëm të zërit që kontrollon një ngarkesë duke përdorur një stafetë. Një mikrofon elektrik përdoret në zhvillim kur përdorni ECM, kërkohet një rezistencë R1 me një rezistencë prej 2.2 kOhm deri në 10 kOhm. Dy transistorët e parë bipolarë përfaqësojnë një përforcues para-mikrofon, R4 C7 në këtë qark eliminon paqëndrueshmërinë e amplifikatorit.


Pas amplifikatorit në BC182B, sinjali akustik furnizohet në një ndreqës duke përdorur diodat 1N4148 dhe kondensatorin C5, voltazhi konstant që rezulton pas ndreqësit kontrollon funksionimin e transistorit BC212B, i cili nga ana tjetër kontrollon stafetën.

Opsioni 2

Qarku është i thjeshtë dhe nuk kërkon rregullim, disavantazhet përfshijnë si më poshtë: releja reagon ndaj çdo tingulli të lartë, veçanërisht në frekuenca të ulëta. Për më tepër, funksionimi i paqëndrueshëm i strukturës u vu re në temperatura nën zero.

CMA-4544PF-W ose të ngjashme;

  • 3 LED (jeshile, të verdhë dhe të kuqe, nga ky grup, për shembull);
  • 3 rezistorë prej 220 Ohms (këtu është një grup i shkëlqyer i rezistorëve të vlerave më të zakonshme);
  • telat lidhës (Unë rekomandoj këtë grup);
  • dërrasë buke;
  • kompjuter personal me mjedis zhvillimi Arduino IDE.
  • 1 Kapsula elektrik mikrofon CMA-4544PF-W

    Ne do të përdorim një modul të gatshëm që përmban një mikrofon, si dhe instalimet elektrike minimale të nevojshme. Ju mund të blini një modul të tillë.

    2 Diagrami i lidhjes mikrofon në Arduino

    Moduli përmban një mikrofon elektrik që kërkon energji nga 3 deri në 10 volt. Polariteti gjatë lidhjes është i rëndësishëm. Le ta lidhim modulin sipas një diagrami të thjeshtë:

    • dalja "V" e modulit - furnizimi me energji elektrike deri në +5 volt,
    • kunja "G" - në GND,
    • pin "S" - në portin analog "A0" të Arduino.

    3 Skicë për lexim leximi mikrofon elektrik

    Le të shkruajmë një program për Arduino që do të lexojë leximet nga mikrofoni dhe do t'i nxjerrë ato në portën serike në milivolt.

    Const int micPin = A0; // vendosni pinin ku është lidhur mikrofoni konfigurimi i zbrazët () ( Seriali.fillim(9600); // inicializimi i sekuencës port } void loop() ( int mv = analogLeximi (micPin) * 5.0 / 1024.0 * 1000.0; // vlerat në milivolt Serial.println(mv); // dalje në port }

    Pse mund t'ju duhet të lidhni një mikrofon me Arduino? Për shembull, për të matur nivelet e zhurmës; për të kontrolluar robotin: ndiqni duartrokitjen ose ndaloni. Disa madje arrijnë të "stërvitin" Arduino për të zbuluar tinguj të ndryshëm dhe kështu të krijojnë kontroll më inteligjent: roboti do të kuptojë komandat "Stop" dhe "Go" (si, për shembull, në artikullin "Njohja e zërit duke përdorur Arduino").

    4 "Ekualizues" në Arduino

    Le të mbledhim një lloj barazuesi të thjeshtë sipas diagramit të bashkangjitur.


    5 Skicë"barazues"

    Le të modifikojmë pak skicën. Le të shtojmë LED dhe pragje për funksionimin e tyre.

    Const int micPin = A0; const int gPin = 12; const int yPin = 11; konst int rPin = 10; konfigurimi i zbrazët () ( Seriali.fillim(9600); pinMode (gPin, OUTPUT); pinMode (yPin, OUTPUT); pinMode (rPin, OUTPUT); } void loop() ( int mv = analogLeximi (micPin) * 5.0 / 1024.0 * 1000.0; // vlerat në milivolt Serial.println(mv); // dalja në port /* Pragjet e përgjigjes LED janë rregulluar nga ju në mënyrë eksperimentale: */ nëse (mv )

    Barazuesi është gati! Provoni të flisni në mikrofon dhe shikoni LED-të të ndizen kur ndryshoni volumin e të folurit.

    Vlerat e pragut pas të cilave ndizen LED-të përkatëse varen nga ndjeshmëria e mikrofonit. Në disa module, ndjeshmëria vendoset nga një rezistencë prerëse, por në modulin tim nuk është. Pragjet rezultuan të jenë 2100, 2125 dhe 2150 mV. Do t'ju duhet t'i përcaktoni vetë ato për mikrofonin tuaj.

    Sensorë të bërë në shtëpi

    Në Fig. Figura 1 tregon një pajisje për një përforcues të dobët të sinjalit. Pajisja është instaluar në dy transistorë silikoni të ngjashëm me përçueshmëri pnp, të cilët kanë një fitim të lartë (80-100 në rrymë). Kur zëri aplikohet në mikrofonin VM1, sinjali alternativ hyn në bazën e transistorit VT1 dhe përforcohet prej tij. Sinjali i daljes që kontrollon pajisjet periferike ose aktivizuese me një skaj negativ hiqet nga kolektori i tranzitorit VT2.

    Qarku elektrik i një sensori akustik të ndjeshëm duke përdorur transistorë bipolarë

    Kondensatori oksid C1 zbut valëzimin e tensionit të furnizimit me energji elektrike. Rezistenca e reagimit R4 mbron amplifikuesin e vogël të sinjalit nga vetë-ngacmimi.

    Rryma e daljes së tranzistorit VT2 ju lejon të kontrolloni një stafetë elektromagnetike me fuqi të ulët me një tension operativ prej 5 V dhe një rrymë funksionimi prej 15...20 mA. Një qark i zgjatur i sensorit akustik është paraqitur në Fig. 3.9. Ndryshe nga qarku i mëparshëm, ai ka aftësi shtesë për rregullimin e fitimit dhe përmbysjen e sinjalit të daljes.

    Qarku i avancuar i sensorit akustik

    Fitimi i sinjaleve të dobëta nga mikrofoni VM1 rregullohet duke përdorur rezistencën e ndryshueshme R6 (shih Fig. 2). Sa më e ulët të jetë rezistenca e këtij rezistori, aq më i madh është fitimi i fazës së tranzitorit në transistorin VT1. Me praktikë afatgjatë në funksionimin e njësisë së rekomanduar, ishte e mundur të vërtetohej se kur rezistenca e rezistencës R6 është e barabartë me zero, vetë-ngacmimi i kaskadës është i mundur. Për të shmangur këtë, një tjetër rezistencë kufizuese me një rezistencë prej 100-200 Ohms është e lidhur në seri me R6.

    Qarku elektrik i një sensori akustik me aftësinë për të përmbysur sinjalin e daljes dhe rregulluar fitimin

    Diagrami tregon dy dalje nga të cilat hiqet sinjali i kontrollit për qarqet pasuese dhe komponentët elektronikë të terminalit. Nga pika "OUTPUT 1" hiqet një sinjal kontrolli me skaj negativ (i cili shfaqet kur zëri aplikohet në mikrofonin VM1). Nga pika "OUTPUT 2" ka një sinjal invers (me një skaj pozitiv).

    Falë përdorimit të transistorit me efekt në terren KP501A (VT2) si një përforcues i rrymës përfundimtare, pajisja zvogëlon konsumin e rrymës (në raport me qarkun e mëparshëm), dhe gjithashtu ka aftësinë për të kontrolluar një ngarkesë më të fuqishme, për shembull, një stafetë ekzekutive me një rrymë komutuese deri në 200 mA. Ky tranzistor mund të zëvendësohet me një KP501 me çdo indeks të shkronjave, si dhe me një transistor më të fuqishëm me efekt në terren të konfigurimit të duhur.

    Këto dizajne të thjeshta nuk kanë nevojë të rregullohen. Të gjithë ata testohen kur fuqizohen nga i njëjti burim i stabilizuar me një tension prej 6 V. Konsumi aktual i dizajnit (duke përjashtuar konsumin e rrymës së stafetës) nuk i kalon 15 mA.

    Sot do të kuptojmë se si të punojmë me modulin e sensorit të zërit, aka sensori i duartrokitjes KY-037. Sensorë të tillë përdoren shpesh në sistemet e sigurisë për të zbuluar tejkalimin e një kufiri të caktuar të zhurmës (zbulimi i klikimeve të bllokimit, hapave, tingujve të motorit, etj.). Moduli i sensorit të zërit KY-037 përdoret gjithashtu shpesh për të kontrolluar automatikisht ndriçimin që i përgjigjet, për shembull, duartrokitjes.

    Në tabelë ne shohim vetë sensorin në formën e një mikrofoni dhe një çipi krahasues, i cili përcakton momentin kur tejkalohet pragu i volumit. Dhe ndjeshmëria e këtij momenti (pragu i volumit) vendoset duke përdorur një rezistencë të ndryshueshme (potenciometër) të instaluar pranë krahasuesit. Nëse tejkalohet pragu i zërit, dalja D0 do të shfaqet një sinjal i nivelit të lartë.

    Le të lidhemi së pari sensori i zërit KY-037 te bordi Arduino. Merrni, për shembull, bordin e zhvillimit Arduino Nano.

    Gjilpere G lidhni modulin e sensorit të zërit KY-037 me daljen GND Pllakat Arduino. Gjilpere + lidhni sensorin e zërit me daljen 5 V Pllakat Arduino. konkluzioni D0 sensor, lidheni me daljen dixhitale D5 Pllakat Arduino.

    Konfigurimi i sensorit të zërit KY-037.

    Ne lidhim tabelën Arduino Nano me kompjuterin. Në modulin e sensorit të duartrokitjes KY-037, treguesi i fuqisë duhet të ndizet menjëherë L1. Së pari duhet të merrni një kaçavidë dhe të shtrëngoni rezistencën e prerjes, duke rregulluar ndjeshmërinë e sensorit. Dhe treguesi i përgjigjes së sensorit do të na ndihmojë në vendosjen e ndjeshmërisë L2. Nëse treguesi L2 kur moduli është i ndezur, ai gjithashtu ndizet, kthejeni rezistencën e prerjes në drejtim të kundërt të akrepave të orës derisa të arrijmë në pikën në të cilën treguesi zbehet. Nëse treguesi L2është në gjendje të fikur kur moduli është i ndezur, që do të thotë, përkundrazi, ne e kthejmë rezistencën e prerjes në drejtim të akrepave të orës derisa të arrijmë në momentin kur treguesi fillon të ndizet. Si rezultat, në këtë vend, ku duke e kthyer pak rezistencën e akordimit në një drejtim ose në tjetrin, treguesi tenton të fiket ose të ndizet, duhet ta kthejmë atë pak në të kundërt të akrepave të orës në mënyrë që treguesi L2 doli, por kur duartrokisni, u përpoq të ndizet.

    Hapni programin Arduino IDE, krijoni një skedar të ri dhe futni kodin në të që do të na tregojë se si sinjali dixhital vjen nga dalja D0 në rastet kur kufiri i zhurmës i vendosur duke përdorur një rezistencë prerëse tejkalohet.

    const int sensorD0 = 5; // Pini Arduino me të cilin është lidhur kunja D0 e sensorit, konfigurimi i zbrazët () // Cilësimet ( Serial.begin (9600); // Inicializimi i SerialPort ) void loop () // Cikli i programit kryesor ( int sensorValue = digitalRead(sensorD0 // merr një sinjal nga sensori nëse (sensorValue == true) // Nëse ka mbërritur një sinjal i nivelit të lartë Serial.println(sensorValue)

    Ngarkoni këtë skicë dhe shkoni te menyja "Tools" - "Port Monitor". Dritarja e monitorimit të portit do të jetë bosh, por sapo të duartrokasim, ato do të shfaqen në dritare, duke treguar praninë e një sinjali të nivelit të lartë në pinin D0 të modulit të sensorit audio.

    Cdo gje eshte ne rregull. Ne konfiguruam sensorin dhe u siguruam që Arduino ynë të merrte sinjalin prej tij në mënyrë të përsosur.

    E ndezim dritën me duartrokitje dhe e fikim automatikisht duke përdorur një kohëmatës.

    Kuptova se si ta konfigurosh sensori i zërit KY-037 dhe si reagon nëse tejkalohet pragu i caktuar i volumit. Tani le të shtojmë një LED të rregullt në qarkun tonë dhe të shkruajmë një kod të thjeshtë që, kur të zbulohet zhurma, do ta ndezë LED-in dhe do ta fikë pas ca kohësh.

    Lidheni LED-in me kunjin D2 Pllakat Arduino. Mos harroni të vendosni ndonjë rezistencë në tokë ( GND) LED. Dhe ngarkoni skicën tjetër.

    const int sensorD0 = 5; // Pin Arduino me të cilin është lidhur dalja D0 e sensorit konst int diod = 2; // Pini Arduino me të cilin është lidhur LED konfigurimi i zbrazët () ( pinMode (diod, OUTPUT); // vendos pinin dixhital 2 në modalitetin e daljes) void loop () ( int sensorValue = digitalRead (sensorD0); // merr sinjalin nga sensori nëse (Vlera e sensorit == 1) //nëse merret një sinjal nga sensori në formën e një (DixhitalWrite(diod, LARTË); // ndizni vonesën LED (4000); // ndaloni në mënyrë që LED është ndezur për 4 sekonda) nëse (sensorValue == 0 ) // nëse sinjali vjen nga sensori në formën e zeros dixhitale (diodë, LOW )

    Le të përpiqemi të duartrokasim. Ne shohim që LED u ndez, funksionoi për 4 sekonda dhe u fiku. Çdo rresht komentohet në detaje dhe mendoj se është e qartë se ku mund të ndryshohet koha e djegies së LED.

    Sensori i zërit KY-037 ndez dritën kur bie duartrokitje dhe fiket dritën kur bie një duartrokitje.

    Le të ngarkojmë një skicë të re që do të ndezë ose fikur LED-in tonë me një duartrokitje. Ne morëm si shembull LED-in, nuk ka asnjë problem për të lidhur një modul stafetë dhe për të ndezur ose fikur çdo pajisje shtëpiake.

    const int sensorD0 = 5; // Pin Arduino me të cilin është lidhur dalja D0 e sensorit konst int diod = 2; // Pin Arduino me të cilin është lidhur LED int diodState = LOW; // Statusi LED është "off" konfigurimi i zbrazët () ( pinMode (diod, OUTPUT); // vendosni pinin dixhital 2 në modalitetin e daljes) void loop () ( int sensorValue = digitalRead (sensorD0); // merrni sinjalin nga sensor nëse ( sensorVlera == 1 && diodState == LOW) //nëse arrihet pragu i volumit dhe LED ishte FAKT (DixhitalWrite(diod, LARTË); // ndizni LED diodState = LARTË; // vendosni statusin LED me vonesë "on" (100 / / vonesë e vogël për të filtruar zhurmën ) tjetër // përndryshe (nëse (Vlera e sensorit == 1 && Gjendja e diodës == LARTË) // nëse është arritur pragu i volumit dhe LED është ndezur (Dixhital Shkruani); (dioda, LOW // fikni diodën LED = LOW // vendoseni statusin LED në vonesë (100) ) )

    Tani duartrokasim një herë, drita ndizet. Ne duartrokasim përsëri, LED fiket.

    Ndizni dritën me një duartrokitje të dyfishtë.

    Le ta komplikojmë detyrën dhe të shkruajmë kodin për të përdorur sensorin e zërit KY-037 me duartrokitje të dyfishta. Kështu, ne do të zvogëlojmë ndezjen e mundshme aksidentale nga tingujt anësor që mund të ndodhin në modalitetin me një duartrokitje.

    const int sensorD0 = 5; // Pin Arduino me të cilin është lidhur dalja D0 e sensorit konst int diod = 2; // Pin Arduino me të cilin është lidhur LED int diodState = LOW; // Statusi LED është "off" i gjatë soundTime=0; // koha e konfigurimit të pavlefshëm të duartrokitjes së parë () ( pinMode (diod, OUTPUT); // vendos pinin dixhital 2 në modalitetin e daljes) void loop () ( int sensorValue = digitalRead (sensorD0); // merr sinjalin nga sensori nëse (sensorValue = = 1 && diodState == LOW) //nëse arrihet pragu i volumit dhe LED ishte i fikur (gjatë diodTime=millis(); // regjistroni kohën aktuale //nëse koha aktuale e duartrokitjes është 100 milisekonda më e madhe se koha e duartrokitjes së fundit //dhe duartrokitja nuk ndodhi më vonë se 1000 milisekonda pas asaj të mëparshmes //konsideroni këtë duartrokitje si të dytin SUKSES nëse((millis()>soundTime) && ((diodTime-soundTime)> 100) && ((diodTime-koha e zërit)<1000)) { digitalWrite(diod, HIGH); // включаем светодиод diodState = HIGH; // устанавливаем статус светодиода "включен" delay(100); // небольшая задержка для фильтрации помех } soundTime=millis(); //записываем время последнего хлопка } else // иначе { if (sensorValue == 1 && diodState == HIGH) // если порог громкости достигнут и светодиод был ВКЛЮЧЕН { digitalWrite(diod, LOW); // выключаем светодиод diodState = LOW; // устанавливаем статус светодиода "выключен" delay(100); // небольшая задержка для фильтрации помех } } }

    Ne përpiqemi të duartrokasim dy herë, LED ndizet. Fikni LED-in me një duartrokitje të vetme. Gjithçka funksionon mirë pa asnjë defekt. Kodi komentohet sa më shumë, lexojeni, duhet të jetë më se i qartë. Mendoj se nuk do të jetë e vështirë të fiket drita me dy duartrokitje. Tani mund të transferoni telat nga linja D2, për shembull, në një modul stafetë dhe të kontrolloni ndriçimin në dhomë ose pajisje të tjera shtëpiake.

    Në parim, ne kemi zgjidhur problemet kryesore që lindin me sensorin e zërit KY-037. Mbetet vetëm t'ju kujtojmë se bordi ka gjithashtu një dalje analoge A0, i cili lidhet me çdo kunj analog të tabelës Arduino, për shembull, me pin A1. Një sinjal analog merret me linjë sensorVlera = analogLeximi (A1);. Tensioni në daljen analoge të sensorit ndryshon në varësi të ndryshimeve në zhurmën e ambientit. Një sinjal i tillë na jep mundësinë të përdorim përpunimin e softuerit të po këtyre zhurmave, duke analizuar natyrën e lëkundjeve. Kjo mund t'ju lejojë të reagoni jo vetëm ndaj zhurmës në një moment të caktuar kohor, por edhe të krijoni bazën tuaj të të dhënave të zhurmave të ndryshme, duke u mbështetur në disa pika kyçe në ndryshimet karakteristike në leximet e sinjalit të daljes. A0. Si rezultat i kontrollit me një bazë të tillë zhurme, është e mundur të realizohen reagime të ndryshme ndaj zhurmave të ndryshme. Por kjo është për ata që duan të zhyten më shumë në programim dhe tema ka shumë të ngjarë të jetë një artikull tjetër.