DIY අතිධ්වනික දුර සංවේදක රූප සටහන. Arduino මත අතිධ්වනික දුර සංවේදකයක් සාදා ගන්නේ කෙසේද: DIY Rangefinder

HC-SR04 Ultrasonic Proximity Sensor (සහ ඒ හා සමාන මොඩියුල) වස්තුවකට ඇති දුර තීරණය කිරීම සඳහා අතිධ්වනික තරංග භාවිතා කරයි.

සාමාන්‍යයෙන් කථා කරන විට, අපට වස්තුවට ඇති දුර හඳුනා ගැනීමට අවශ්‍ය වනු ඇත, මන්ද සංවේදකය විසින්ම යවන ශබ්ද තරංගවල දෝංකාරය අල්ලා ගැනීමට ගතවන කාලය සැලකිල්ලට ගනී. එය මෙසේ යයි.

  1. මොඩියුලය විශේෂ echo පින් එකකට වෝල්ටීයතාවයක් යොදන අතරම ශබ්ද තරංග යවයි.
  2. මොඩියුලය පරාවර්තනය කරන ලද සංඥාව අල්ලා ගන්නා අතර පින් එකෙන් වෝල්ටීයතාව ඉවත් කරයි.

අතිධ්වනි රේන්ජ්ෆයින්ඩරයක් කරන්නේ එපමණයි. මොඩියුලයෙන් සහ පසුපසට ශබ්දය ගමන් කිරීමට කොපමණ වේලාවක් ගත වූවාද යන්න (echo pin එක කොපමණ කාලයක් පණගැන්වී ඇත්ද යන්න) දන්නා නිසා අපටම දුර තීරණය කළ හැකිය, එමෙන්ම වාතයේ ශබ්දයේ වේගය ද අපි දනිමු. නමුත් අපි වැඩිය විස්තර නොකර Arduino එකට සියලුම ගණනය කිරීම් කරන්න දෙන්නම්.

මාර්ගය වන විට, සියලුම අතිධ්වනික සංවේදකවල ක්‍රියාකාරිත්වයේ මූලධර්මය එක හා සමාන වුවද, ඒවා සියල්ලම echo pin මත එකම වෝල්ටීයතා ප්‍රතිදානයක් නිපදවන්නේ නැත. එබැවින්, ඔබට HC-S04 හැර වෙනත් මොඩියුලයක් තිබේ නම්, හැකි ගැටළු විස්තර කරන සිව්වන පියවර වෙත අවධානය යොමු කරන්න, සහ ඔබේ මොඩියුලය ලැයිස්තුවේ තිබේදැයි පරීක්ෂා කරන්න. එය නොමැති නම්, ඔබට එය තනිවම හඳුනාගත යුතුය.

පියවර 1: DIY දෘඩාංග එකලස් කිරීම

එකලස් කිරීම ඉතා සරලයි (වෝල්ටීයතාවයෙන් විසන්ධි වූ සියල්ල එකලස් කරන්න):

  1. මොඩියුලයේ 5V Arduino සිට VCC පින් එකට සම්බන්ධ කරන්න
  2. මොඩියුලය මත Arduino සිට GND වෙත GND සම්බන්ධ කරන්න
  3. Arduino හි ඩිජිටල් පින් 7 මොඩියුලයේ ඇති Trig පින් එකට සම්බන්ධ කරන්න
  4. Arduino හි ඩිජිටල් මොඩියුලය 8 මොඩියුලයේ ඇති Echo පින් එකට සම්බන්ධ කරන්න

පියවර 2: HC-SR04 මොඩියුලය ක්‍රමලේඛනය කිරීම

වැඩසටහනේ ප්‍රතිඵල බැලීම සඳහා, ඔබ Arduino මත අනුක්‍රමික මොනිටරය ක්‍රියාත්මක කළ යුතුය. ඔබ මෙම විශේෂාංගය ගැන හුරුපුරුදු නැතිනම්, දැන් එය විවෘත කර ඒ ගැන වැඩි විස්තර දැන ගැනීමට කාලයයි - එය ඔබට ඔබේ කේතය නිදොස් කිරීමට උදවු කිරීම සඳහා කදිම මෙවලමකි. Arduino අතුරුමුහුණතෙහි, දකුණු කෙළවරේ බලන්න, එහිදී ඔබට අනුක්‍රමික මොනිටරය දියත් කරන බොත්තමක් හමුවනු ඇත, එය විශාලන වීදුරුවක් මෙන් පෙනේ, එය මත ක්ලික් කරන්න, එවිට මොනිටරය විවෘත වේ (නැතහොත් TOOLS/Serial Monitor තෝරන්න, නැතහොත් Ctrl+ ඔබන්න. Shift+M).

වැඩ කරන වැඩසටහනේ කෙටුම්පතක් මෙන්න:

// Aruino සඳහා Sketch ආරම්භය -
// නියතයන් නිර්වචනය කරන්න (නියත වෙනස් නොවන අතර ඔබ ඒවා නැවත අර්ථ දැක්වීමට උත්සාහ කළහොත් ඔබට සම්පාදන-කාල දෝෂයක් ලැබෙනු ඇත)
const int triggerPin = 7; // "triggerPin" නම් නියතයක් සාදා එයට ඩිජිටල් පින් 7 ලබා දෙයි
const int echoPin = 8; // "echoPin" නම් නියතයක් සාදා එයට ඩිජිටල් පින් 8 ලබා දෙයි
// විචල්‍යයන් නිර්වචනය කරන්න (වැඩසටහන අතරතුර විචල්‍යයන් සාමාන්‍යයෙන් වෙනස් විය හැක, ඒවායේ කිසියම් ගණනය කළ අගයක් අඩංගු විය හැක)
int කාලය = 0; // pulseIn මගින් ආපසු ලබා දෙන අගය රඳවා ගැනීමට "කාලසීමාව" නමින් විචල්‍යයක් නිර්මාණය කරයි, මුලින් "0" ලෙස සකසා ඇත.
int දුර = 0; // සංවේදකය ඉදිරිපිට ඇති වස්තුවට ඇති දුර ලෙස ගණනය කළ අගයක් ගබඩා කිරීමට විචල්‍යයක් නිර්මාණය කරයි, මුලදී අගය “0” ලෙස සකසා ඇත.
void setup() // මෙම කොටසේදී ඔබට ඔබේ පුවරුව සහ ඔබේ වැඩසටහන ක්‍රියාත්මක වීමට අවශ්‍ය අනෙකුත් පරාමිති වින්‍යාසගත කළ හැක.
{
Serial.begin(9600); // Arduino සහ පරිගණකය අතර USB හරහා අනුක්‍රමික සන්නිවේදනය ආරම්භ කරයි, අපට මෙය අවශ්‍ය වනු ඇත
//පින් මාතයන් නිර්වචනය කරන්න
pinMode (triggerPin, OUTPUT); // "triggerPin" OUTPUT සඳහා භාවිතා කරනු ඇත, "විචල්‍යයන් නිර්වචනය කිරීම" කොටසේ pin අංකය ඉහත ප්‍රකාශ කර ඇත
pinMode (echoPin, INPUT); // "echoPin" INPUT සඳහා භාවිතා කරනු ඇත, "විචල්‍යයන් නිර්වචනය කිරීම" කොටසේ ඉහත පින් අංකය ප්‍රකාශ කර ඇත.
) // පිහිටුවීමේ අවසානය
// ඉහත ලියා ඇති සියල්ල වැඩසටහන මඟින් කියවන්නේ එක් වරක් පමණි - ආරම්භයේදී හෝ යළි පිහිටුවීමේදී
void loop() // ලූප් කරන ලද කොටසෙහි වැඩසටහන් කේතය අඛණ්ඩව කියවන අතර බලය අක්‍රිය වන තුරු හෝ යළි පිහිටුවීමක් සිදු කරන තෙක් නැවත නැවත සිදු කෙරේ.
{
ඩිජිටල් රයිට් (triggerPin, HIGH); //HC-SR04 මොඩියුලයෙන් අතිධ්වනික තරංග යැවීම ආරම්භ කරයි
ප්රමාදය (5); // කෙටි විරාමයක්, මොඩියුලය නිවැරදිව ක්‍රියාත්මක වීමට එය අවශ්‍ය වේ (ඔබට මෙම අගය අඩු කළ හැකිය, මගේ අනෙකුත් වැඩසටහන් 1 අගයකින් ක්‍රියා කරයි)
ඩිජිටල් රයිට් (triggerPin, අඩු); //HC-SR04 මොඩියුලයෙන් එන අතිධ්වනික තරංග නතර කරයි
කාලසීමාව = pulseIn (echoPin, HIGH); //අවසාන වරට සම්පූර්ණ කරන ලද අල්ට්රා සවුන්ඩ් චක්‍රයේ echo pin වෙත වෝල්ටීයතාව යෙදූ කාලය තීරණය කිරීමට ඔබට ඉඩ සලසන විශේෂ කාර්යය
ප්රමාදය (10); // නැවතත් කෙටි විරාමයක්. ස්ථාවරත්වය සඳහා එය අවශ්‍ය වේ; ඉතා කෙටි විරාමයක් ප්‍රතිඵල ලබා නොදෙනු ඇත.
දුර = (කාලසීමාව/2) / 58; //කාලසීමාව දුරකට පරිවර්තනය කරන්න (“කාලසීමාව” තුළ ගබඩා කර ඇති අගය 2 න් බෙදනු ලැබේ, එවිට මෙම අගය 58** න් බෙදනු ලැබේ) ** සෙන්ටිමීටර සඳහා
ප්රමාදය (500); // ස්ථාවරත්වය සඳහා තවත් විරාමයක් - ඔබට අගය සමඟ සෙල්ලම් කළ හැකිය, නමුත් මෙය වැඩසටහන විනාශ කළ හැකිය, එබැවින් පෙරනිමියෙන් 500 භාවිතා කරන්න
Serial.print(දුර); //ගණනය කළ දුර අගය අනුක්‍රමික මොනිටරය වෙත යවයි
Serial.println("cm"); //දුර අගයට පසුව "cm" යන වචනය එකතු කර අනුක්‍රමික මොනිටරයේ කැරැට්ටුව නව රේඛාවකට ගෙන යයි
Serial.println(); //අනුක්‍රමික මොනිටරය මත හිස් රේඛාවක් එක් කරයි (කියවීමේ හැකියාව සඳහා)
) // ලූපයේ අවසානය

_________________________________________________

එබැවින්, මගේ උපදෙස් කියවීමෙන් පසු, වැඩසටහනේ දළ සටහන සරල බව පිළිබඳ මගේ අවබෝධයට අනුරූප නොවන බව මට වැටහුණි. ඒ නිසා ලයිට් කමෙන්ට් දාලා ඒ කටු සටහනම දානවා.

// HC-SC04 අතිධ්වනික දුර සංවේදක මොඩියුල වැඩසටහන
const int triggerPin = 7; //7 සඳහා අවුලුවන්න
const int echoPin = 8; // ECHO 8 ට
int කාලය = 0; // pulseIn වෙතින් අගය ගබඩා කරයි
int දුර = 0; // ගණනය කළ දුර අගය ගබඩා කරයි
හිස් සැකසුම ()
{
Serial.begin(9600);
pinMode (triggerPin, OUTPUT); //පින් මාතයන් නිර්වචනය කරයි
pinMode (echoPin, INPUT);
}
void loop()
{
ඩිජිටල් රයිට් (triggerPin, HIGH); // අල්ට්රා සවුන්ඩ් යැවීමට පටන් ගනී
ප්රමාදය (5); //අවශ්‍ය විධානය, වින්‍යාසගත කළ හැකි (නමුත් මයික්‍රො තත්පර 10 ට අඩු නොවේ)
ඩිජිටල් රයිට් (triggerPin, අඩු); // මොඩියුලය අල්ට්රා සවුන්ඩ් යැවීම නතර කරයි
කාලසීමාව = pulseIn (echoPin, HIGH); // ECHO පින් එක කොපමණ කාලයක් පණගන්වා තිබේද යන්න තීරණය කරයි
ප්රමාදය (10); //අවශ්‍ය විධානය, වින්‍යාස කළ හැකි, නමුත් ප්‍රවේශමෙන්
දුර = (කාලසීමාව/2) / 58; // වස්තුවට ඇති දුර සෙ.මී
ප්රමාදය (500); // ස්ථාවරත්වය සඳහා විරාමයක්, අඩුවීම වැඩසටහනේ ගලායාම බිඳ දැමිය හැක, එය එලෙසම තැබීම වඩා හොඳය
Serial.print(දුර); //දුරස්ථව ගබඩා කර ඇති වත්මන් අගය අනුක්‍රමික මොනිටරය වෙත යවයි
Serial.println("cm"); // දුර පසු වූ වහාම "cm" යන වචනය පෙන්වයි
Serial.println(); // අනුක්‍රමික මොනිටරයේ එක් හිස් පේළියක් නිර්මාණය කරයි (කියවීමේ හැකියාව සඳහා)
}

මම උපදෙස් වලට .ino ගොනු ද අමුණමි

ගොනු

  1. HCSR04BareBones.ino - මෙම ගොනුව දැඩි ලෙස අදහස් දක්වා ඇති අතර HC-SR04 මොඩියුලය පිළිබඳ සමහර තොරතුරු මෙන්ම එකලස් කිරීමේ තොරතුරු අඩංගු වේ.
  2. BareBonesLight.ino - කුඩා අදහස් ප්‍රමාණයක් සහිත මොඩියුලයකි

මෙන්න මගේ උපදෙස. කේතය ක්‍රියාත්මක වන බව මම දනිමි, නමුත් උපදෙස් වලට ලිපිගොනු ඇමිණීමට පෙර, මම සියල්ල දෙවරක් පරීක්ෂා කළ අතර අනුක්‍රමික මොනිටරය අඛණ්ඩව “0 cm” පෙන්වයි. ගැටළුව පිළිස්සුණු මොඩියුලයක් බවට පත් වූ අතර එය ප්‍රතිස්ථාපනය කිරීමෙන් තත්වය නිවැරදි විය.

ප්‍රමාද විධානවල අගයන් සමඟ සෙල්ලම් කිරීමට ඔබ තීරණය කරන්නේ නම් වැඩසටහන ප්‍රතිචාර දක්වන ආකාරය බලන්න. ප්‍රමාද අගයන් අඩු කිරීමෙන් හෝ ඒවා 0 ට සැකසීමෙන් වැඩසටහන ක්‍රියා විරහිත තත්ත්වයකට ගෙන යා හැකි බව අත්දැකීමෙන් මම සොයා ගතිමි.

ඔබ ඔබේ උපාංගය සැකසූ පසු, එකම සීමාව ඔබේ පරිකල්පනයයි. නිශ්චල වස්තු එකම දුරින් පවතින බවත් නිශ්චලව පවතින බවත් ඔබට පරීක්ෂා කළ හැකිය. වස්තුවක් සංවේදකය පසුකර ගිය විට දැනුම්දීම් ලබා ගැනීමට ඔබට මොනිටරය භාවිතා කළ හැක.

සියලුම වස්තූන් සංවේදකයේ සිට සෙ.මී. 60ට වඩා වැඩි බව තීරණය කිරීමට මම ඉහත රූප සටහන භාවිතා කළෙමි. ව්‍යාපෘතිය සඳහා ඩයෝඩ තුනක් සහ ට්වීටරයක් ​​භාවිතා කරන ලදී. සියලුම වස්තූන් සෙන්ටිමීටර 60 ට වඩා වැඩි වූ විට, හරිත LED ක්‍රියාත්මක විය. යමක් සෙන්ටිමීටර 60 ට වඩා අඩු වූ විට, හරිත ඩයෝඩය නිවී ගොස් රතු එළිය දැල්වීය. වස්තුව යම් කාලයක් ආසන්න දුරක පැවතියේ නම්, දෙවන රතු ඩයෝඩය දැල්වෙන අතර බීපරය බීප් කිරීමට පටන් ගනී. වස්තුව සෙන්ටිමීටර 60 ක් දුරින් ගමන් කරන විට, බීපරය නිශ්ශබ්ද විය, රතු ඩයෝඩ නිවී ගියේය, සහ කොළ ආලෝකය නැවතත් දැල්වීය. මෙය සියලු ව්‍යාජ අනතුරු ඇඟවීම් වැළැක්වූයේ නැත, නමුත් කුරුල්ලෙකු සංවේදකය පසුකර ගිය හෝ කුතුහලයෙන් යුත් ලේනෙකු දිව ගිය බොහෝ අවස්ථාවන් සඳහා එය ක්‍රියාත්මක විය.

පියවර 4: දන්නා ගැටළු

මෙම ඡේදයේ ඔබගේ අතිධ්වනික මොඩියුලයේ ආකෘතිය ඔබ දකින්නේ නම්, පහත අනුචලනය කරන්න. ඔබ ඔබේ ගැටලුව සොයාගෙන එය විසඳනු ඇතැයි මම බලාපොරොත්තු වෙමි.

  1. US-105
  2. DYP-ME007TX

මොඩියුලය US-105

US-105 අතිධ්වනික මොඩියුලය ECHO පින් මත GPIO පින් එකක් භාවිතා කරයි, එයින් අදහස් කරන්නේ දුර තීරණය කිරීම සඳහා විවිධ ගණනය කිරීම් ය. GPIO එක ECHO පින් එකට ඇමිණීමෙන්, තරංගයක් යැවීමේදී පින් එක ශක්ති සම්පන්නව රඳවා නොගනී. ඒ වෙනුවට, පරාවර්තනය කරන ලද අල්ට්රා සවුන්ඩ් ලැබුණු විට, අල්ට්රා සවුන්ඩ් තරංගය ගමන් කර නැවත සංවේදකය වෙත ආපසු යාමට ගතවන කාලයට සමානුපාතික වන නිශ්චිත වෝල්ටීයතාවයක් ECHO පින් එකට යොදනු ලැබේ. පහත කේතය මෙම මොඩියුලය සමඟ ක්‍රියා කරයි:

// අතිධ්වනික මොඩියුලය සඳහා කේතය US-105 අත්සන් නොකළ int EchoPin = 2; අත්සන් නොකළ int TrigPin = 3; අත්සන් නොකළ දිගු Time_Echo_us = 0; //Len_mm_X100 = දිග*100 අත්සන් නොකළ දිගු Len_mm_X100 = 0; අත්සන් නොකළ දිගු Len_Integer = 0; // අත්සන් නොකළ int Len_Fraction = 0; void setup() (Serial.begin(9600); pinMode(EchoPin, INPUT); pinMode(TrigPin, OUTPUT); ) void loop() ( digitalWrite(TrigPin, HIGH); delayMicroseconds(50); digitalWrite(TrigPin, LOW) ; Time_Echo_us = pulseIn(EchoPin, HIGH); if((Time_Echo_us 1)) (Len_mm_X100 = (Time_Echo_us*34)/2; Len_Integer = Len_mm_X100/100; Len_mm1X01 Len_Fraction = "01 Len_mm_print."0; Serial.print(Len_Integer, DEC); Serial.print("."); if(Len_Fraction< 10) Serial.print("0"); Serial.print(Len_Fraction, DEC); Serial.println("mm"); delay(1000); } // Конец программы

මොඩියුලය DYP-ME007TX

// අතිධ්වනික මොඩියුලය සඳහා කේතය DYP-ME007TX /* සම්බන්ධතා උපදෙස් * මොඩියුලයේ Arduino සිට VCC දක්වා 5V * මොඩියුලයේ Arduino සිට GND දක්වා මොඩියුලයේ සිට GNG දක්වා * Arduino හි මොඩියුලයේ සිට ඩිජිටල් පින් 7 දක්වා */ #ඇතුළත් #TXpin 7 නිර්වචනය කරන්න 7 SoftwareSerial mySerial(RXpin, TXpin); දිගු මිලි = 0; byte mybuffer = (0); බයිට් bitpos = 0; void setup() (Serial.begin(9600); mySerial.begin(9600); ) void loop() ( bitpos = 0; while (mySerial.available()) ( if (bitpos)< 4) { mybuffer = mySerial.read(); } else break; } mySerial.flush(); mili = mybuffer << 8 | mybuffer; Serial.print("Distance: "); Serial.print(mili / 25.4); Serial.print (" inches"); Serial.println(); delay(500); } Некоторые замечания:
මෙම යෝජනා ක්‍රමයට අනුව අතිධ්වනික රේන්ජ්ෆයින්ඩරයක් නිර්මාණය කිරීමට අවශ්‍ය සියලුම කොටස් චිපිඩිප් වල විකුණනු ලැබේ, සෑම දෙයක් සඳහාම රුබල් 500-900 ක් පමණ වැය වේ (මට හරියටම මතක නැත - විශාල මුදලක් තිබුණි, මම එය ගණන් ගත්තේ නැත :- ) (නිවාස, ට්වීටර්, සම්බන්ධක, ආදිය)
අතිධ්වනික රේන්ජ්ෆයින්ඩර් පරිපථය පිළිබඳ සමහර අදහස්:
1. ඔබට ඕනෑම ට්වීටර් භාවිතා කළ හැකිය, විවිධ කාර්යයන් සඳහා විවිධ ඒවා වඩා හොඳය ... මගේ කාර්යය සඳහා - විශාල මානයන්, වඩා හොඳ, කෝණය 50 වේ.
2. ඔබට සාපේක්ෂ වශයෙන් මිල අධික AD822 එකක් පමණක් භාවිතා කිරීමට උත්සාහ කළ හැකි අතර සංසන්දනකය වෙනුවට මිල අඩු යමක් භාවිතා කිරීමට උත්සාහ කළ හැකිය (මම අතේ වෙන කිසිවක් නොතිබුණි)
3. මෙගා වලදී, ඔබට 40 kilohertz ජනනය කිරීමට ටයිමරයක් භාවිතා කළ හැකිය; මේ සඳහා ඔබ වෙනත් අනුනාදකයක් තෝරාගත යුතුය. (මට තිබුණේ 16යි 12යි විතරයි... ඒවා ගැලපෙන්නේ නැහැ)
4. වාතයේ ශබ්දයේ වේගය ඇත්ත වශයෙන්ම උෂ්ණත්වය මත රඳා පවතී - නිරවද්‍යතාවය ඉතා වැදගත් නම් (මම ඒ ගැන තැකීමක් නොකරමි), මෙය සැලකිල්ලට ගන්න
5. නඩුවේ රේන්ජ්ෆයින්ඩරයේ පින්තූරයේ - ට්වීටර් ප්ලාස්ටික් ස්පර්ශ නොකරන බව කරුණාවෙන් සලකන්න - එක් අයෙක් පැවසුවේ මෙගා-නිශ්චිත සැකසුම් (මෙම පරිපථය මෙයට හැකියාව ඇත) ට්වීටරයේ සිට මයික්‍රෆෝනයට ශබ්දය වනු ඇති බවයි. ශරීරය හරහා සම්ප්රේෂණය වේ, එබැවින් එය ආරක්ෂිතව සෙල්ලම් කිරීම වඩා හොඳය
6. C හි ඇති සරලම මෙගා ස්ථිරාංග පිළිබඳ උදාහරණයක් (මෙම රූප සටහන යටතේ) දැකිය හැකිය
7. ක්‍රමලේඛක STK200/300 භාවිතා කිරීම වඩා හොඳය, එය avreal ලෙසද හැඳින්වේ - මෘදුකාංගය සහ පරිපථය ඇද ගත හැකිය
8. මනසට අනුව, ස්ථිරාංගයේ “පැක්” වල ආරම්භය සහ අවසානය යන දෙකම නිරීක්ෂණය කිරීම අවශ්‍ය වේ, උදාහරණයේ ආරම්භය පමණි (නිරවද්‍යතාව විශේෂයෙන් වැඩි වනු ඇත)... සමහර විට මම එය එකතු කරන්නම් සහ එය පළ කරන්න.
9. ට්වීටර් ඇත්තටම 40 kHz ට කැමතියි - ටිකක් පැත්තට සමාන නොවේ ... අත්පොතෙහි ඔවුන් පවසන දේ බොහෝ විට සත්‍ය වේ, එය අනුනාද වේ :-)
10. රූප සටහනේ ඇති විමෝචකයට ට්‍රාන්සිස්ටර හිර වී තිබීම හේතුවක් නොමැතිව නොවේ - 12 ට වඩා වැඩි වෝල්ට් ලබා දීමට කැමති අය සඳහා - සාදරයෙන් පිළිගනිමු - එක් අයෙක් පැවසුවේ එය හයියෙන් කෑගසනු ඇති බවයි (තවත් ගණන් කරන්න). මම හේතු තුනක් නිසා මෙය නොකළෙමි: පළමුව, වෝල්ට් 24 ක් තවමත් කොහේ හරි සොයා ගත යුතු අතර, දෙවනුව, වත්මන් අනුවාදය, ඒ අනුව ප්රතිරෝධකය සැකසීමේදී, මීටර් 4 ක් දුරින් බිත්තියක් දකියි, i.e. මට එය පරීක්ෂා කිරීමට තැනක් නැත, මට එය අවශ්ය නැත. හොඳයි, මේ පුද්ගලයාම පැවසූ තුන්වන හේතුව නම් ට්වීටර් මෙම වෝල්ටීයතාවයෙන් මිය යාමට නැඹුරු වීමයි
11. සාමාන්‍ය උපදෙස්: ඔබට ATX පරිගණකයකින් ක්‍රියා නොකරන බල සැපයුමක සියලුම ප්‍රතිරෝධක සහ ධාරිත්‍රක සොයාගත හැකිය (ඒවා සියල්ලම වොට් 1/8 පමණ වේ) - ඔබ මුදල් ඉතිරි කරයි!
12. squeaker විසින් විමෝචනය කරන ලද අල්ට්රා සවුන්ඩ් බල්ලන්ට සහ අනෙකුත් ජීවීන්ට කෙසේ හෝ ඇසෙන බවට වැරදි වැටහීමක් ඇත, එය ඔවුන්ට නරක බලපෑමක් ඇති කරයි: මගේ බල්ලා එක් රාත්රියක පැමිණ squeaker ඉදිරිපිට නිදාගත්තේය.
13. තවද - ඔබගේ තොරතුරු සඳහා පමණක් - Atmel වෙතින් මෙගා සහ අනෙකුත් 8-බිට් පාලකයන් විශිෂ්ට ලෙස ක්‍රියා කරයි... සමහර කාර්යයන් වලදී, අවශ්‍ය 16 වෙනුවට, ඒවා 24 ට ක්‍රියා කරන අතර හොඳයි.
14. කිලෝ-ඕම් (10, 50, 100) ට වඩා R5 සැකසීමේදී, ඔබට ඉතා විශාල ලාභයක් ලැබෙනු ඇත, බොහෝ විට ඔබට අං අවශ්ය වනු ඇත, නමුත් මිනුම් පරාසය විශාල වශයෙන් වැඩි වනු ඇත.
15. අං ඉවත් කිරීම වෙනුවට (විශාල R5 සමඟ), ඉහත බලන්න, ඔබට ස්ථිරාංග උත්ශ්‍රේණිගත කළ හැකි අතර එමඟින් ආරම්භක මොහොතේ ප්‍රයෝජනවත් සංඥාවක් බලා නොසිටිනු ඇත. නමුත් එවිට සෙන්ටිමීටර 10 ක් හෝ ඊට අඩු දුරක් මැනීමට නොහැකි වනු ඇත.

8 වන ඉඟියට විවරණ - කහ පැහැයෙන් දැක්වෙන්නේ පිළිගැනීමේදී අතිධ්වනි රේන්ජ්ෆයින්ඩර් එම්කේ බාධාව ඇති වූ මොහොතයි; ඇත්ත වශයෙන්ම, ඔබට මෙම පළමු මොහොතට පමණක් සීමා විය හැකිය, මඳක් රැඳී සිට ඊළඟ මිනුම කරන්න, ඊළඟ ස්පන්දන පිපිරීම ජනනය කරයි - සහ ශබ්දයේ පියාසැරි කාලය සලකනු ලබන්නේ පළමු යවන ලද ස්පන්දනයේ සිට (හෝ අවසාන එක වැදගත් නොවේ) පළමු එක පිළිගන්නා තෙක් කාලයයි.
දෙවන විකල්පය - රතු පැහැයෙන් දක්වා ඇත - වඩාත් නිවැරදියි - ස්පන්දන පැකට්ටුව, රීතියක් ලෙස, පරිපූර්ණ ස්වරූපයෙන් නොපැමිණෙන අතර සම්පූර්ණයෙන්ම නොපැමිණෙන බැවින් (පළමු හෝ අවසාන ස්පන්දන කිහිපයක් නොතිබිය හැකිය), ඇත්ත වශයෙන්ම පවා පරමාදර්ශී ස්පන්දන සෘජුකෝණාස්රයක් යවනු ලැබුවද, එය දාරවල “පැතලි” ඇති බව පින්තූරයේ ඔබට දැක ගත හැකිය - එබැවින්: කාරණය නම් පැකට්ටුවේ දාර තවදුරටත් නොතිබිය හැකි වුවද පැකට්ටුවේ මැද ස්ථානයේ පැවතිය යුතුය. සංසන්දකයාට දැනේ. ඒ නිසා නිරවද්‍යතාවය කීපයකි.. (මිලිමීටර ගැන සිතිය යුතුය) එය නැවත ලබා ගැනීමේදී අතිධ්වනික රේන්ජ්ෆයින්ඩරයේ ස්ථිරාංගයේ පැකේජයේ මැද හෝ ආරම්භය පමණක් සැලකිල්ලට ගත්තාද යන්න මත රඳා පවතී.

තවමත් අද්විතීය ලෙස සලකනු ලබන මෙම උපාංගය මිනිස් ජීවිතයේ සෑම අංශයකම පාහේ යෙදුම සොයා ගැනීමට සමත් වී ඇත. අද වන විට භූ විද්‍යාඥයින් සහ මිනින්දෝරුවන් අතේ ලේසර් රේන්ජ්ෆයින්ඩර් දැකිය හැකිය. වෙනත් වචන වලින් කිවහොත්, මිනිස් ක්‍රියාකාරකම්වල එම ක්ෂේත්‍රවල අතිශය නිරවද්‍යතාවයකින් දුර මැනීම අවශ්‍ය වේ. එබැවින්, ලේසර් ටේප් පියවර ඉහළ ජනප්‍රියත්වයක් ලබා ඇති අතර, ඉහළ නිරවද්‍යතාවයකින්, වැඩි විශ්වසනීයත්වයකින් සහ ඉතා දැරිය හැකි මිලකින් සංලක්ෂිත වේ. ඔබේම දෑතින් ලේසර් රේන්ජ්ෆයින්ඩරයක් සෑදිය හැකිද යන්න ඇසීම ස්වාභාවිකය.

ඉලෙක්ට්‍රොනික උපකරණ භාවිතයෙන් දුර මනින උපාංග සමූහයට ඇතුළත් වන්නේ: ලේසර් රේන්ජ්ෆයින්ඩර්, අල්ට්‍රාසොනික් රේන්ජ්ෆයින්ඩර්.

ලේසර් රේන්ජ්ෆයින්ඩරයක් සමඟ මිනුම් සිදු කරනු ලබන්නේ ආලෝක ප්‍රවාහයන් මත ය; සංඥා වාහකය විද්‍යුත් චුම්භක විකිරණය, සුදුසු සෙවනේ වර්ණ ගැන්වේ. බොහෝ අවස්ථාවලදී රතු ආලෝකය පදනමක් ලෙස භාවිතා කරයි.

භෞතික විද්‍යාවේ නියමයන්ට අනුව ආලෝකයේ වේගය ශබ්දයේ වේගයට වඩා බෙහෙවින් වැඩි බැවින් එම දුර මැනීමට ගතවන කාලය වෙනස් වේ.

ලේසර් රේන්ජ්ෆයින්ඩරයක් ස්ථාපනය කිරීම සඳහා ප්රධාන හේතු

යාන්ත්රික ටේප් මිනුමක් භාවිතා කිරීම සැමවිටම පහසු නොවේ. සමහර විට එය ධනාත්මක බලපෑමක් ඇති නොකරයි. පසුගිය වසර 10 තුළ, ඉලෙක්ට්‍රොනික රේන්ජ්ෆයින්ඩර් වැඩි වැඩියෙන් මනාප වී ඇත. ඉලෙක්ට්‍රොනික උපකරණ භාවිතයෙන් දුර මනින මෙම උපාංග සමූහයට ඇතුළත් වන්නේ:

  • ලේසර් රේන්ජ්ෆයින්ඩර්;
  • අතිධ්වනික පරාස සොයන්නා.

මෙම සියලු උපකරණ ස්පර්ශ නොවන මූලධර්මය මත ක්රියා කරයි. අද, එවැනි රේන්ජ්ෆයින්ඩර් නිර්මාණය කර ඇත්තේ ගෘහස්ථ ශිල්පීන් විසින් තමන්ගේම දෑතින් ය. උපාංග කර්මාන්තශාලාවේ නිෂ්පාදනය කරන ලද ඒවාට වඩා නරක ලෙස ක්රියා නොකරයි.

DIY ලේසර් රේන්ජ්ෆයින්ඩරයක් කොටස් කිහිපයකින් සමන්විත වේ:

  • ගෙවන්න;
  • ක්ෂුද්ර පාලකය;
  • ලේසර් සංඥා ඇම්ප්ලිෆයර්;
  • ලේසර්;
  • ඡායාරූප අනාවරකය;
  • පෙරහන.

මූලික වශයෙන්, ලේසර් විකිරණ sinusoidal සංඥාවක් භාවිතයෙන් සිදු වේ.

10 MHz සංඛ්යාතයක් සහිත එවැනි සංඥාවක් ලබා ගැනීම තරමක් අපහසුය. සරල පාලකයක් මෙහි සුදුසු නොවේ. මෙය සිදු කිරීම සඳහා, අවශ්ය සංඛ්යාතය ඇති මැන්ඩරයක් භාවිතා කිරීම වඩා හොඳය. ෆොටෝඩෙක්ටරයෙන් එන සංඥාව විස්තාරණය කරන විට, 10 MHz සංඛ්යාතයකින් ක්රියාත්මක වන විශේෂ bandpass ෆිල්ටරයක් ​​මගින් අනවශ්ය හාර්මොනික්ස් ඉවත් කරනු ලැබේ. sinusoidal එකකට දැඩි ලෙස සමාන වන නිමැවුමේ සංඥාවක් දිස්වේ.

අන්තර්ගතය වෙත ආපසු යන්න

ඔබේම දෑතින් රේන්ජ්ෆයින්ඩරයක් සාදා ගැනීම සඳහා, ඔබට පදනමක් ලෙස ලේසර් සන්නිවේදන පරිපථයක් භාවිතා කළ හැකිය. මෙම අවස්ථාවේදී, දත්ත හුවමාරුව ඉතා ඉක්මනින් සිදු වේ, වේගය 10 Mbit වේ. මෙම අගය පවතින මොඩියුලේෂන් සංඛ්‍යාතයට අනුරූප වේ.

එවැනි ලේසර් උපාංගයක් සඳහා, සරලම බල ඇම්ප්ලිෆයර් භාවිතා වේ. එය ඉන්වර්ටර් හයකින් එකලස් කර ඇති 74HC04 චිපයකින් සමන්විත වේ. වත්මන් සැපයුම විශේෂ ප්රතිරෝධක මගින් සීමා වේ. කෙසේ වෙතත්, ශිල්පීන්ට වඩා විශ්වාසදායක කොටස් සමඟ ප්රතිරෝධක ප්රතිස්ථාපනය කළ හැකිය.

කොමිෂන් සභා පුවරුව 5-වෝල්ට් වෝල්ටීයතා ප්රභවයක් බවට පත් වේ. ඇම්ප්ලිෆයර්ට බලය ලැබෙන්නේ මේ ආකාරයටයි. විදුලි පරිපථයේ තවත් කොටසකට සංඥා බාධා ඉවත් කිරීම සඳහා, ඇම්ප්ලිෆයර් නිවාසය වානේ වලින් සාදා ඇත, එක් එක් වයර් ආවරණය කර ඇත.

ලේසර් යනු DVD සෙට්-ටොප් පෙට්ටිවල ස්ථාපනය කර ඇති ධාවකයයි. එවැනි උපකරණයක් 10 MHz කරා ළඟා වන සංඛ්යාතවල ක්රියා කිරීමට ප්රමාණවත් බලයක් ඇත.

ග්රාහකයාට ඇතුළත් වන්නේ:

  • ෆොටෝඩියෝඩය;
  • ඇම්ප්ලිෆයර්.

ඇම්ප්ලිෆයර් ක්ෂේත්‍ර ප්‍රයෝග ට්‍රාන්සිස්ටරයක්, විශේෂ ක්ෂුද්‍ර පරිපථයක් ඇතුළත් වේ. දුර වැඩි වන විට, ෆොටෝඩයෝඩයේ ආලෝකය අඩු වේ. එබැවින්, බලවත් විස්තාරණය කිරීම අවශ්ය වේ. එකලස් කරන ලද පරිපථය ඔබට ඒකක 4000 දක්වා ළඟා වීමට ඉඩ සලසයි.

සංඛ්යාතය වැඩි වන විට, ෆොටෝඩයෝඩ සංඥා අඩු වීමට පටන් ගනී. මෙම සැලසුමේ ඇම්ප්ලිෆයර් ප්‍රධාන සහ ඉතා අවදානමට ලක්විය හැකි කොටසයි. එහි සැකසුම ඉතා ඉහළ නිරවද්යතාවක් අවශ්ය වේ. උපරිම අගයන් ලබා ගැනීමට හැකි වන පරිදි ලාභය සකස් කිරීම යෝග්ය වේ. පහසුම ක්‍රමය ට්‍රාන්සිස්ටරයට 3 V සැපයීමයි.ඔබට සාමාන්‍ය බැටරියක් ස්ථාපනය කළ හැක.

ග්රාහකයා වැඩ කිරීම ආරම්භ කිරීම සඳහා, ඔබ 12 V සැපයිය යුතුය. මේ සඳහා, විශේෂ බල සැපයුමක් ස්ථාපනය කර ඇත.

එවැනි ඇම්ප්ලිෆයර් ඕනෑම මැදිහත්වීමකට ඉහළ සංවේදීතාවයක් ඇත, එබැවින් එය ආරක්ෂා කළ යුතුය. මේ සඳහා ඔබට දෘශ්‍ය සංවේදක නිවාස භාවිතා කළ හැකිය. Photodiode ආවරණ සාමාන්ය තීරු වලින් සාදා ගත හැකිය.

ඉහත විස්තර කර ඇති පද්ධතිය ඔබට නිවසේදී ගෙදර හැදූ ලේසර් රේන්ජ්ෆයින්ඩරයක් නිර්මාණය කිරීමට ඉඩ සලසයි.


සමහර අවස්ථාවලදී, මම අතිධ්වනික රේන්ජ්ෆයින්ඩර් HC-SR04 මිලදී ගත්තා. උපාංගය piezo විමෝචක දෙකක් සහිත මොඩියුලයක් වන අතර, ඉන් එකක් විමෝචකයක් ලෙස සේවය කරන අතර, දෙවනුව අතිධ්වනික තරංගයක ග්රාහකයක් ලෙස; තවද විමෝචකය සහ ග්‍රාහකය පාලනය කිරීම සඳහා ඉලෙක්ට්‍රොනික පාලනය. සම්බන්ධතාවය සඳහා, මොඩියුලය 4-පින් සම්බන්ධකයක් ඇත: ඉන් දෙකක් බලය සපයයි (වෝල්ට් 5 ක් අවශ්ය වේ), සහ ක්ෂුද්ර පාලකය සමඟ සන්නිවේදනය සඳහා තවත් දෙකක්.

මෙහි සන්නිවේදන අතුරුමුහුණත ඉතා සරලව සංවිධානය කර ඇත: අපි ආදානයට මයික්‍රො තත්පර 10-15 ක කාලයක් සහිත කෙටි ස්පන්දනයක් යොදන අතර ප්‍රතිදානයේ ස්පන්දනයක් එනතෙක් බලා සිටිමු. පරාවර්තනය වූ තරංගය ග්‍රාහකයට ළඟා වූ වහාම, මොඩියුලයම දුර ගණනය කර 25 ms දක්වා ඉහළ මට්ටමේ ආවේගයක් Echo කකුලට යවයි. ප්රතිදාන ස්පන්දනයේ දිග, අතිධ්වනික තරංගය පරාවර්තනය වූ බාධකයේ දුර ප්රමාණයට සමානුපාතික වනු ඇත. අප කළ යුත්තේ මෙම ආවේගය අල්ලාගෙන එහි දිග ගණනය කර මෙම අගය දුර බවට පරිවර්තනය කිරීමයි.

පිරිවිතර:

  • සැපයුම් වෝල්ටීයතාව: 5V
  • නිශ්චල ධාරාව:< 2 мА
  • ඵලදායී දෘෂ්ටි කෝණය:< 15 °
  • දුර පරාසය: 2 cm - 500 cm
  • විභේදනය: 0.3 සෙ.මී

මොඩියුලය සඳහා වන ලියකියවිලි වලින් ලක්ෂණ පිටපත් කර ඇත. මීට අමතරව, නිෂ්පාදකයා ස්පන්දන කාලය අනුව දුර ප්රමාණය ගණනය කිරීම සඳහා සූත්රයක් සපයයි.

S=F/58 ; මෙහි S යනු සෙන්ටිමීටරයේ දුර, F යනු මයික්‍රෝ තත්පර වල ස්පන්දන දිග වේ

ඔබට පෙනෙන පරිදි, ශබ්දයේ වේගය දැන ගැනීමට පවා අවශ්ය නොවේ.

පරීක්ෂා කිරීම සඳහා, මම පහත පරිපථය එකලස් කළෙමි:

මොඩියුලය සෘජුවම ක්ෂුද්ර පාලකයට සම්බන්ධ වේ. පුල්-අප් ප්‍රතිරෝධක ස්ථාපනය කිරීම අවශ්‍ය නොවේ; ඒවා දැනටමත් මොඩියුල පුවරුවේ ඇත.

ඉතින්, අපි එක් ආවේගයක් පමණක් අල්ලා ගත යුතු අතර, එහි දිග ගණනය කරන්න. මුලදී මට මේ සඳහා ක්ෂුද්‍ර පාලකයේ බාහිර බාධා කිරීම් වලින් එකක් භාවිතා කිරීමට අවශ්‍ය වූ අතර, ප්‍රමුඛ දාරයේ (පහළ සිට ඉහළ තත්වයට සංක්‍රමණය වීම) සහ වැටෙන දාරය (ඉහළ සිට පහළට) යන දෙකෙහිම බාධා සිදුවිය යුතුය. එනම්, ඔබට පියාසර කිරීමේදී මෙම බාධාවෙහි වින්‍යාසය වෙනස් කිරීමට සිදුවනු ඇත. ඊට අමතරව, ඔබ ස්පන්දන දිග මැනිය යුතු ටයිමර් එකක් භාවිතා කළ යුතුය. කුඩා සංඥා සවි කිරීමේ මෙහෙයුමක් සඳහා ඉතා සංකීර්ණයි.. Bascom-AVR මෙම නඩුව සඳහා විශේෂ විධානයක් ඇත Pulsein . මෙම විධානය භාවිතයෙන් සංඥාවක් අල්ලා ගන්නේ කෙසේද යන්න පිළිබඳ උදාහරණයක් මෙන්න:

Pulsein , පින්ඩ්, 5 , 1

මෙන්න variable එකේඒ ස්පන්දන දිගෙහි අගය ලියා ඇත මයික්රො තත්පර දසකකුලෙන් ගත්තා පින්.5. විධානයේ අවසානයේ ඇති තැනැත්තා පවසන්නේ ඔබ ඉහළ මට්ටමේ සංඥාවක් අල්ලා ගත යුතු බවයි. 0 ට වෙනස් කළහොත්, පාලකය අඩු මට්ටමේ සංඥාවක් අල්ලා ගනු ඇත.

මෙම විධානය බාධා කිරීම් හෝ දෘඪාංග ටයිමරයක් භාවිතා නොකරයි, නමුත් ස්පන්දනය ඇතිවීම හඳුනා ගැනීමට සහ එහි දිග 10 μs විභේදනයකින් වාර්තා කිරීමට හැකියාව ඇත. විධානය ස්පන්දන දිග ගබඩා කිරීම සඳහා 2-byte විචල්ය වර්ගයක් භාවිතා කරයි, එබැවින් ලැබුණු සංඥාවේ උපරිම දිග 655.35 ms විය හැක. කාර්යය සඳහා මෙය ප්‍රමාණවත් වේ, නමුත් අවශ්‍ය නම්, ඔබට mcs.lib පුස්තකාල ගොනුව සංස්කරණය කර පටිගත කළ ස්පන්දනයේ උපරිම කාලසීමාව වෙනස් කළ හැකිය.

සම්පූර්ණ වැඩසටහන් ලැයිස්තුව පහතින්

$regfile = "m8def.dat"

$පළිඟු = 8000000

"MK ports වෙත සංදර්ශකය සම්බන්ධ කිරීමේ වින්‍යාසය

වින්යාසය Lcd = 16 * 2

වින්යාසය Lcdpin= පින් කරන්න, රුපියල්= Portc. 5 , = Portc. 4 , Db4= Portc. 3 , Db5= Portc. 2 , Db6= Portc. 1 , Db7= Portc. 0

වින්යාසය වරාය. 4 = ප්රතිදානය "ප්‍රේරක කකුල සම්බන්ධ කිරීම සඳහා ප්‍රතිදානය

අවුලුවාලීමඅන්වර්ථ නාමය වරාය. 4

අවුලුවාලීම= 0

වින්යාසය වරාය. 5 = ආදානය "Echo ස්පන්දනය සඳහා ආදානය

වින්යාසය වරාය. 7 = ප්රතිදානය LED සම්බන්ධතාවය සඳහා වින්‍යාසය

LEDඅන්වර්ථ නාමය වරාය. 7

LED= 0

අඳුරු පරිදි වචනය "සංඥා දිග අගය මෙහි පිටපත් කර ඇත

අඳුරු එස්පරිදි තනි "දුර ගබඩා කිරීම සඳහා විචල්යය

කොන්ස්ට් කේ= 0 . 1725 "ස්පන්දන දිග දුර බවට පරිවර්තනය කිරීම සඳහා සංගුණකය

Waitms 50

කර්සරය අක්රියයි

Cls

Lcd "Sonar HC-SR04"

ස්ථානගත කරන්න 2 , 1

Lcd "වෙබ් අඩවිය"

LED= 1

Waitms 100

LED= 0

ඉන්න 3

කරන්න

අවුලුවාලීම= 1 "අපි 15 μs කාල සීමාවක් සහිත Portd.4 කකුලට ආවේගයක් ලබා දෙමු

වේටස් 15

අවුලුවාලීම= 0

වේටස් 10

Pulsein , පින්ඩ්, 5 , 1 "අපි PinD.5 මත ඉහළ මට්ටමේ ආවේගයක් අල්ලා ගනිමු



මෙයද කියවන්න: