Infrasarkanais lāzera tālmērs. Robota sensori: Sharp GP2Y0A21YK IR attāluma sensors Sharp IR attāluma sensora specifikācijas

Infrasarkanais lāzera tālmērs izstaro enerģiju cilvēka acij neredzamā diapazonā. Tā ir 1. klases lāzerierīce, kā to pieprasa ASV Pārtikas un zāļu pārvalde, 21 CFR 1040.10-11. FDA lāzera atbilstības zīme ir piestiprināta CMS bezvadu šasijai. Šis marķējums norāda arī modeli, sērijas numuru un izgatavošanas datumu.

1. klasē ietilpst lāzeri, kas normālos darbības apstākļos nevar kaitēt cilvēkam. Parastā uzstādīšanā cilvēks var skatīties lāzera starā bez brillēm vai ar parastajām brillēm (Neskatieties lāzera starā, kad sistēma ir ieslēgta — standarta piesardzība).

Lāzers paliek ierosinātā stāvoklī tik ilgi, kamēr kontrollera programmatūrā tiek atlasītas komandas LASER TEST vai START SURVEY. Kad lāzers ir ierosinātā stāvoklī, attālumi un citi dati tiek parādīti kontrollera ekrānā.

Sarkanā gaismas diode uz vadības paneļa, kas atrodas kontrollera kastē, pastāvīgi deg, kad sistēma ir ieslēgta neatkarīgi no tā, vai lāzers ir vai nav.

Lāzerskenēšanas galviņā ietilpst lāzera diapazona meklētājs un uztveršanas bloks (7.2. attēls, 7.3. attēls).

Attēls 7.2. Skenēšanas galviņa

7.3. attēls — lāzerskenēšanas galviņas ārējais skats

Attēls 7.4 - VIP uzstādīšana pazemes apstākļos

7.5. attēls - stieņu un mastu uzstādīšana pazemes apstākļos

Attēls 7.6 - Skenera ievadīšana dobumā pazemes apstākļos

33. tabula. Specifikācijas

Lāzera skenēšanas galviņa
Mērķa mērījumu diapazons ar 20% atstarošanu 350 m
Mērīšanas diapazons līdz baltai sienai 650 m
Rotācijas leņķa diapazons 0 - 360º
Slīpuma diapazons 0 - 145º
Lineārā mērījuma precizitāte -+2 cm darba temperatūras diapazonā
Izšķirtspēja 1 cm
Leņķa mērīšanas precizitāte -+ 0,3º
Maksimālais griešanās ātrums 21º/s
Viļņa garums 905 nm (infrasarkanais), 635 nm (optiskais).
Lāzera stara novirze 5 mrad
Maksimālais rādījumu skaits 100 000 (par vienu kadru)
atbalsta struktūra
materiāliem CFRP, augsta blīvuma polietilēna dokstacijas, nerūsējošā tērauda skavas.
Stieņa garums 2-9 m, regulējams
Stieņu sekciju skaits 5 konusveida 2 m katrs
Masta balstu garums (2 gab.) 2-5 m, regulējams
Mastu pagarinājumu skaits 5 (dažādi garumi)
Barošana (ārējās baterijas)
spriegums Nominālā 24 V
Jauda 7,2 Ah, nominālā 24 V
Elektrības patēriņš 2,5 A, nominālā 24 V
Ārējie apstākļi
Darba temperatūra Attāluma mērītājs (-10º līdz +50º), rādītājs (0º līdz 40º)
Uzglabāšanas temperatūra No -20 līdz +50º
Gaisa mitrums 0 līdz 95% nekondensējošs
Izmēri
Barošanas avots (mm) 270 * 247 * 175
Svars, kg 8.3
Masts (mm) 2290*230*250
Stieņa šķērsgriezums (mm) 1930*200*250
Svars, kg 44.5
Acu drošība
Rādītājs 2. pakāpe
Tālmērs 1 klase
Vertikālās ievietošanas ierīce (VIP)
Sastāvdaļas 25 alumīnija stieņi (katrs apmēram 1,5 metri)
1 skenēšanas galviņas adapteris
2 centrēšanas atsperu sistēmas
1 savienojuma kabelis, apmēram 41 metrs

CMS aptauja tiek izmantota gadījumos, kad cilvēku piekļuve ir bīstama un vizuālā kontrole nav iespējama. Aptauja sniedz absolūti precīzu koordinātu sistēmā piesaistīto tukšumu novietojumu, kas savukārt ļauj racionāli, precīzi un pareizi noformēt šo tukšumu turpmāko izmantošanu vai atmaksu.

Infrasarkanais tālmērs ļauj noteikt attālumu līdz objektiem. Šis ir Sharp modelis GP2Y0A021. Sensors nosaka attālumu pēc atstarotā gaismas stara infrasarkanajā spektrā. Tālmēru var izmantot, lai izvairītos no šķēršļiem un pārvietotos pa reljefu.

Izvade ir analogais signāls, kura sprieguma līmenis ir atkarīgs no attāluma līdz mērķim iestatītajā virzienā.

Sensors ir savienots ar vadības elektroniku, izmantojot 3 vadus. Savienojot ar Arduino, būs ļoti ērti izmantot Troyka Shield. Savienojuma kabelis ir iekļauts komplektā.

Uzmanību!Šī sensora strāvas kontaktligzda var atšķirties. Pirms moduļa ieslēgšanas iepazīstieties ar DFRobot moduļu pievienošanas funkcijām.

Lai droši uzstādītu attāluma mērītāju jebkurā vietā, ir īpašs stiprinājums.

Raksturlielumi

  • Barošanas spriegums: 4,5-5,5 V
  • Strāvas patēriņš: 30-40 mA
  • Attāluma diapazons: 10cm - 80cm

Ierobežojumi

Tā kā ierīce ir balstīta uz gaismu, sensors nav labi piemērots attāluma noteikšanai līdz gaismu absorbējošiem objektiem. Tālmērs pat nejutīs caurspīdīgu virsmu, piemēram, plastmasu vai organisko stiklu. Lai noteiktu attālumus šādā vidē, ir piemērots ultraskaņas tālmērs URM37 vai HC-SR04.

Šim infrasarkanajam attāluma mērītājam priekšā ir maza miršanas zona: 10 cm. Ja jums ir jāņem vērā šķēršļi īsākos attālumos, bet robežattālums nav tik svarīgs, apsveriet tālmēru 4-30 cm attālumā no vienas un tās pašas līnijas. Ja jūsu ierīcei ir nepieciešams redzēt tālāk, meklējiet attāluma mērītāju 20–150 cm attālumam. Varat sasniegt lielāku elastību, apvienojot sensorus ar dažādiem diapazoniem.

Sharp GP2Y0A infrasarkanais attāluma sensors ir populāra izvēle dažādiem Arduino projektiem, kuriem nepieciešama precīza attāluma mērīšana.

Sharp sensoriem ir infrasarkanā (IR) gaismas diode (LED) ar objektīvu, kas izstaro šauru gaismas staru. No objekta atstaroto staru kūlis tiek novirzīts caur citu objektīvu uz pozīcijai jutīgu fotoelementu (Position-Sensitive Detector, PSD). Staru kūļa atrašanās vieta uz PSD nosaka tā vadītspēju. Vadītspēja tiek pārveidota par spriegumu un, piemēram, to digitalizējot ar mikrokontrollera analogo-digitālo pārveidotāju, var aprēķināt attālumu.

Sharp infrasarkanā attāluma sensora izvade ir apgriezti proporcionāla - attālumam palielinoties, tā vērtība lēnām samazinās. Attāluma un sprieguma attiecības diagrammas skats.

Sensoriem, atkarībā no to veida, ir mērījumu robežas, kurās to izvadi var uzskatīt par uzticamu. Maksimālā reālā attāluma mērīšanu ierobežo divi faktori: atstarotās gaismas intensitātes samazināšanās un PSD nespēja reģistrēt nelielas izmaiņas attēlotā stara atrašanās vietā. Kopumā diagramma starp attālumu un spriegumu nav lineāra, taču pieļaujamajos attālumos izejas sprieguma un attāluma apgrieztā skaitļa diagramma ir pietiekami tuvu linearitātei, tāpēc ir diezgan viegli iegūt formulu sprieguma pārvēršanai attālumā. Lai atrastu šādu formulu, ir nepieciešams ievadīt šī grafika punktus jebkurā tabulu datu apstrādes programmā un izveidot no tiem jaunu grafiku. Tabulas datu apstrādes programmā ir iespējams automātiski aprēķināt tendences līniju, pamatojoties uz grafika punktiem. Piemēram, sensoram GP2Y0A021YK0F:


Sharp infrasarkanā tālmēra specifikācijas

Darba spriegums: 4,5 - 5,5 V; Maksimālais strāvas patēriņš: 40 mA (parasti - 30 mA); Izejas signāla tips: analogais; Diferenciālais spriegums, kas pārsniedz attāluma atpazīšanas diapazonu: 2,0 V; Reakcijas laiks: 38 ± 10 ms Darbības diapazons: Sensors GP2Y0A41SK0F: 4 - 30 cm; Sensors GP2Y0A021YK0F: 10 cm - 80 cm; Sensors GP2Y0A02YK0F: 20 cm - 150 cm;

Lietošanas piemērs

Izveidosim piemēru veikala apmeklētāju skaitīšanai. Vienkāršosim problēmu, pieņemot, ka ieeja ir pa šaurām durvīm, un ieejai un izejai ir dažādas durvis. Pie ieejas uzliekam infrasarkano staru mērītāju Sharp GP2Y0A21YK0F (20-150 cm), lai cilvēkam garāmejot rādījumi būtu 10 - 50 cm, cilvēku prombūtnē 80 cm.. Konstatējot apmeklētāju, palielinām skaitītājs apmeklētāju skaitīšanai. Datus attēlojam grafiskajā displejā Nokia 5110. Lai attēlotu informāciju no sensoriem, izmantosim LCD Nokia 5110. Šis ir vienkrāsains grafiskais displejs ar 84 × 48 pikseļu izšķirtspēju. Nokia 5110 displejs ir uz tāfeles, kas savienota pārī ar PCD8544 kontrolieri un tapas galveni. Displeja jaudas patēriņš ļauj to darbināt no +3,3 V Arduino plates izejas.

Projektam mums ir nepieciešama šāda informācija:
arduino uno dēlis
maizes dēlis (rezerves dēļa puse)
ass infrasarkanais attāluma sensors GP2Y0A21YK0F
Nokia 5110 displejs
savienojošie vadi
Saliksim attēlā redzamo shēmu.

Sāksim Arduino IDE. Izveidosim jaunu skici un pievienosim tai šādu saturu: //Infrasarkanais attāluma sensors //vietne // bibliotēku savienošana darbam ar Nokia displeju #include #include // Nokia 5110 // pin 3 - Serial clock out (SCLK) // 4. kontakts — sērijas datu izeja (DIN) // 5. kontakts — datu/komandu atlase (D/C) // 6. kontakts — LCD mikroshēmas atlase (CS) // 7. kontakts — LCD atiestatīšana (RST) Adafruit_PCD8544 displejs = Adafruit_PCD8544 (3, 4, 5, 6, 7); // analogā tapa sensora Vo izejas pievienošanai const int IRpin = A0; // mainīgie int vērtība1; // lai saglabātu analogo vērtību unsigned long timevisitors; // tranzīta laiks int count_visitors=0; // apmeklētāju skaita mainīgais void setup() ( // sākt seriālo portu Serial.begin(9600); Serial.println("start"); // displeja inicializācijas display.begin(); // iestatīt ekrāna fona kontrastu display.setContrast (60); display.clearDisplay(); //notīrīt ekrānu display.setTextSize(1); //fonta lielums display.setTextColor(BLACK); //krāsa //uzplaiksnījuma ekrāna displejs.setCursor(5,15); displejs .print ("Apmeklētāji: 0"); display.display(); delay(2000); ) void loop() ( // iegūstiet izlīdzināto vērtību un konvertējiet uz sprieguma vērtību1=irRead(); if(vērtība1>50) / / labot fragmentu ( timevisitors=millis(); while(irRead()>50) ; if(millis()-timevisitors>300) // > minimālais tranzīta laiks ( Serial.println("passage!!!"); count_visitors =apmeklētāju_skaits+1 ; // palielināt skaitītāju // drukāt uz seriālā porta monitoru Serial.print("count_visitors="); Serial.println(count_visitors); // drukāt uz displeja display.clearDisplay(); display.setCursor (5,15); displejs .print("Apmeklētāji: "); display.print(apmeklētāju skaits); displejs.displejs(); ) ) kavēšanās(200); ) // Vairāku vērtību vidējā noteikšana int irRead() izlīdzināšanai ( int averaging = 0; // mainīgais datu summēšanai // 5 vērtību iegūšana (int i=0; i<5; i++) { value1 = analogRead(IRpin); // значение сенсора переводим в напряжение float volts = analogRead(IRpin)*0.0048828125; // и в расстояние в см int distance=32*pow(volts,-1.10); averaging = averaging + distance; delay(55); // Ожидание 55 ms перед каждым чтением } value1 = averaging / 5; // усреднить значения return(value1); } Работать с сенсорами SHARP очень просто - достаточно подключить к нему питание и завести вывод Vo на аналоговый вход Arduino. Значение получаемой функции analogRead представляет собой целое число от 0 до 1023. Таким образом, чтобы узнать напряжение на выходе сенсора, необходимо значение на аналоговом входе Arduino умножить на 0,0048828125 (5 В / 1024). Расстояние вычисляем по формуле distance=volts*0.0001831-0.003097. При чтении данных, при каждой итерации цикла, иногда приходят разные значения сигнала при одном и том же расстоянии. Датчик передает сигнал на аналоговый порт с некоторой амплитудой и иногда в момент считывания данных значение оказывалось отличным от нормального, потому что итерация приходится на провал. Для сглаживания значений, получаемых с дальномера используем функцию irRead(). Датчик обнаруживает попадание объекта в дверной проем. Далее ожидаем окончания прохода. Если это время больше минимального времени прохода (отсечение взмаха руки, пролет предмета и пр.) инкрементируем счетчик посетителей и выводим данные в последовательный порт и на дисплей. Для работы с дисплеем Nokia 5110 нам понадобятся Arduino библиотеки Adafruit_GFX и Adafruit_PCD8544.

Bieži uzdotie jautājumi FAQ

1. Displejā netiek rādīta nekāda informācija
  • Pārbaudiet visu vadu pareizu savienojumu saskaņā ar shēmu 5. attēlā.
2. Attāluma sensors nedarbojas
  • Pārbaudiet asā moduļa savienojumu;
  • Pārbaudiet, vai seriālā porta monitorā ir aktivizēta sensora noteikšana.

Šajā rakstā mēs apsvērsim SHARP GP2Y0A02YK0F IR attāluma mērīšanas sensora savienošanu un darbu ar to.
Atšķirībā no tā paša, šim sensoram ir daudz pieticīgāks mērījumu diapazons, taču tam joprojām ir vairākas noderīgas atšķirīgas īpašības. Piemēram, šis sensors ļauj izmērīt attālumu pat caur caurspīdīgām virsmām (lai gan zaudējot rādījumu precizitāti, bet tomēr).

Sensora savienojums:

GND uz jebkuru no GND tapām --- arduino

ĀRĀ uz jebkuru no arduino analogajām ieejām (piemēros savienots ar A0)

VCC pie + 5 voltiem arduino

Galvenās tehniskās īpašības:

Attāluma mērīšanas diapazons: 20 līdz 150 cm

analogā izeja

Izmēri: 29,5x13x21,6mm

Strāvas patēriņš: 33 mA

Barošanas spriegums: 4,5 līdz 5,5 V

Tas ir jāizsaiņo un jāpievieno mapei "bibliotēkas" Arduino IDE mapē. Neaizmirstiet restartēt vidi, ja IDE bija atvērta, kad to pievienojāt.

Kāda ir šīs bibliotēkas īpatnība un kāpēc to ieteicams lietot? Atbilde ir vienkārša un slēpjas tās darbības principā. Attāluma mērīšanai tiek izmantoti daudzi mērījumi, no kuriem tiek izmesti kļūdaini, kas ļoti atšķiras no blakus esošajiem. Pēc autoru domām, 12% no visiem rādījumiem rada 42% kļūdas galīgajā attāluma vērtībā, ja kļūdaini mērījumi netiek izmesti.

Pārejam uz programmas kodu - piemēru darbam ar sensoru (piemērs ir piemērots arī sensoram GP2Y0A21Y, kodā jums būs jāmaina modeļa vērtība uz 1080):

Programmas koda piemērs

#iekļauts #define ir A0 //kontakts, kuram pievienots sensors. Noteikti analogs!#define 20150. gada modeli //sensora modelis. 1080 — GP2Y0A21Y, 20150 — GP2Y0A02Y SharpIR SharpIR(ir, modelis); nederīgs uzstādīt () { Seriāls.begin(9600); ) spēkā neesošs cilpa() ( aizkave (2000); neparakstīts garš pepe1=millis (); // atzīmē laiku pirms mērījumu sākuma int dis=SharpIR .distance(); // iegūt attālumu no sensora Seriāls.print("Vidējais attālums: "); // izdrukā attālumu līdz porta monitoram Seriāls.println(dis); neparakstīts garš pepe2=millis()-pepe1; // saskaita mērījumam pavadīto laiku Seriāls.print("Paņemtais laiks (ms): "); // un izvadiet to Seriāls.println(pepe2); )

attāluma mērītāji

Šajā nodarbībā mēs uzzināsim vairāk par attāluma mērītājiem.

ultraskaņas diapazona meklētājsHC-SR04

Šodien (2016) AliExpress tas maksā ne vairāk kā USD 1.

Sensoram ir 4 izejas:

  • Vcc — šī tapa tiek darbināta ar 5 V spriegumu.
  • Trig — šī tapa ir jāvirza uz loģiku 1 uz 10 µs, lai attāluma mērītājs izstaro ultraskaņas viļņu.
  • Atbalss - pēc ultraskaņas viļņa atgriešanās šim kontaktam tiks dota loģiska vienība uz laiku, kas ir proporcionāls attālumam līdz objektam
  • Gnd - šī tapa tiek savienota ar zemi.

Ultraskaņas tālmērs - darbojas pēc "sikspārņa" principa. Tas izsūta ultraskaņas viļņu un skaita laiku, kas nepieciešams, lai vilnis atgrieztos. Zinot skaņas ātrumu un laiku, kas nepieciešams, lai vilnis atgrieztos, jūs varat aprēķināt attālumu līdz objektam.

Ar šī attāluma mērītāja palīdzību saliksim nelielu parkošanās sensoru, kuru var palielināt un salikt kā gatavu ierīci auto novietošanai. Es arī parādīšu, kā jūs varat izmantot attāluma meklētāju, lai kontrolētu savas ierīces.

Tālmērs

Saliksim vienkāršu shēmu, lai saprastu, kā darbojas attāluma mērītājs.

Kods

#define ECHO 13 #define TRIG 12 void setup() ( pinMode(ECHO, INPUT); // ECHO jāiestata uz loģisku vienību pinMode(TRIG, OUTPUT); //No TRIG mēs nolasīsim attāluma vērtību Serial.begin (9600) ; //Izveidojiet savienojumu ar seriālo portu mikrosekundēs int dist = pulseIn( ECHO, HIGH) / 54; // Daliet ar 54, lai rādījumus pārvērstu par cm.

Paskaidrojumi

pulseIn(atbalss,AUGSTS);- Izmantojot šo funkciju, mēs skaitījām laiku, kurā ECHO tapa ir iestatīta uz HIGH. Šis laiks tiek ņemts vērā mikrosekundēs.

Kopumā pulseIn(); var uzrakstīt šādi:

pulseIn(pin, vērtība, taimauts);

Piespraust- tapa, uz kuras tiks aprēķināts laiks.

Nozīme– Paredzamais signāla līmenis, kurā tiks veikta skaitīšana. AUGSTS vai ZEMS.

Pārtraukums– laiks mikrosekundēs, kurā gaidāma signāla ierašanās. Pēc taimauta beigām funkcijas atgrieztā vērtība tiks iestatīta uz nulli.

Tātad, mēs izdomājām attāluma mērītāja darbības principu. Laiks izgatavot parkošanās sensorus rotaļu automašīnām.

Parktronic

Ķēdes shēma izskatās šādi:

#define ECHO 3 // Saņemt signālu no attāluma meklētāja #define TRIG 2 // Sūtīt signālu uz attāluma meklētāju #define COUNT 5 // LED skaits #define BUZZ 6 // Zummera tapa #define FIRST 9 // LED pirmā tapa #define dist_setup 1 //Noskaņošanas faktors #define frekvence 5000 void setup() ( for(int i = 0; i< COUNT; ++i) //Обозначаем светодиоды как выход... { pinMode(i+FIRST, OUTPUT); } pinMode(ECHO, INPUT); //...ECHO как вход... pinMode(TRIG, OUTPUT); //...TRIG как выход... pinMode(BUZZ, OUTPUT); //...пищалку как выход Serial.begin(9600); //Установим соединение с Serial } void loop() { digitalWrite(TRIG, HIGH); //Подаем команду на дальномер digitalWrite(TRIG, LOW); int dist = pulseIn(ECHO, HIGH) / 54; //Измеряем расстояние до объекта dist = constrain(dist, 2, 60); //Полученные значения загоняем в диапазон от 2 до 60 //Сравниваем полученные показания и включаем нужный режим if (dist < 10) { all_led_on(); } else if (dist < 20 * dist_setup) { four_led_on(); } else if (dist < 30 * dist_setup) { three_led_on(); } else if(dist < 40 * dist_setup) { two_led_on(); } else if(dist < 50 * dist_setup) { one_led_on(); } else { for(int i = 0; i < COUNT; ++i) { digitalWrite(i+FIRST, LOW); } noTone(BUZZ); } } // Описание режимов void one_led_on() { digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, LOW); digitalWrite(13, HIGH); tone (BUZZ, frequency, 1000); delay(1000); } void two_led_on() { digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, HIGH); digitalWrite(13, HIGH); tone(BUZZ, frequency, 700); delay(700); } void three_led_on() { digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, HIGH); digitalWrite(12, HIGH); digitalWrite(13, HIGH); tone(BUZZ, frequency, 400); delay(400); } void four_led_on() { digitalWrite(9, LOW); digitalWrite(10, HIGH); digitalWrite(11, HIGH); digitalWrite(12, HIGH); digitalWrite(13, HIGH); tone(BUZZ, frequency, 200); delay(200); } void all_led_on() { for(int i = 0; i < COUNT; ++i) { digitalWrite(i+FIRST, HIGH); } tone(BUZZ, frequency, 5000); delay(5000); }

Paskaidrojumi

Parkošanās sensori ir aprīkoti ar LED un skaņas indikāciju. Kad objekts tuvojas noteiktā attālumā, tiek dzirdami biežāki pīkstieni un iedegas vairāk gaismas diožu.

dist_ uzstādīt - tas ir koeficients, ar kuru jūs varat pielāgot attālumu līdz parkošanās sensoru darbībai.

Man tas ir vienāds ar vienu. Ja jums ir jāsamazina attālums, jums jāsamazina koeficients, bet tad tas būs 0.xxx formā. Lai to izdarītu, tiek ieviests pludiņa tipa mainīgais.

Pīkstienu biežumu var arī mainīt. Lai to izdarītu, jums ir jāmaina vērtība biežums . Bet jāatceras, ka pjezo izstarotājs šausmīgi čīkst. Ārkārtīgi. Un man šķiet, ka tas ātri atturēs jūs no tā lietošanas ilgāk vai ilgāk par 5 minūtēm.

Pēc izvēles samaziniet frekvenci līdz 20 Hz vai pievienojiet, piemēram, parastu 8 omu skaļruni.

Parole

Tagad mēģināsim izveidot slepenu šifru, kas iedegas gaismas diodes. Un, ja ķēdē iekļaujat servomotoru ar vārstu, tad varat izveidot slēdzeni uz durvīm vai kastīti ar paroli.

Pievērsiet uzmanību diagrammai.

Kods

//Pirmās tālmēra tapas #define TRIG1 12 #define ECHO1 13 //Otrās attāluma meklētāja tapas #define TRIG2 10 #define ECHO2 11 //LEDs #define FIRST 3 #define COUNT 5 //Reset button #define RESET 2 //Pass intkey1 ; intkey2; intkey3; void setup() ( //LED projektēšana kā izeja priekš(int i = 0; i< COUNT; i++) { pinMode(i+FIRST, OUTPUT); } //Обозначение пинов на дальномерах pinMode(TRIG1, OUTPUT); pinMode(ECHO1, INPUT); pinMode(TRIG2, OUTPUT); pinMode(ECHO2, INPUT); pinMode(RESET, INPUT_PULLUP); } void loop() { //Подача сигнала на дальномеры digitalWrite(TRIG2, HIGH); digitalWrite(TRIG2, LOW); int dist2 = pulseIn(ECHO2, HIGH,3000) / 54; digitalWrite(TRIG1, HIGH); digitalWrite(TRIG1, LOW); int dist1 = pulseIn(ECHO1, HIGH) / 54; //Дополнительная индикация "ввода" символов if(dist1 < 10 && dist2 < 10) { digitalWrite(5, HIGH); delay(100); } if(dist2 >20 && dist2< 25) { digitalWrite(4, HIGH); delay(100); } if(dist1 >20 && dist1< 25) { digitalWrite(6, HIGH); delay(100); } //Код пароля + индикация "ввода" символов if(dist2 >10 && dist2<15) { key1 = 1; digitalWrite(3, HIGH); delay(100); } if(dist1 >10 && dist1< 15) { digitalWrite(7, HIGH); delay(100); key1 = 0; } if(dist1 >20 && dist1< 25 && key1 == 1) { key2 = 1; } else if(dist2 >20 && dist2<25 || key1 == 0) { key1 = 0; key2 = 0; } if(dist1 < 10 && dist2 < 10 && key2 == 1) { key3 = 1; } if(key3 == 1) { for(int i = 0; i < COUNT; i++) { digitalWrite(i + FIRST, HIGH); } } if(key3 == 0) { for(int i = 0; i < COUNT; i++) { digitalWrite(i + FIRST, LOW); } } //Сброс пароля boolean res = digitalRead(RESET); if(res == 0) { key1 = 0; key2 = 0; key3 = 0; } }

Paskaidrojumi

Lai iedegtos visas piecas gaismas diodes, jums jāzina darbību secība, kas jums jāveic. Šeit ir uzdevums jums - "Neskatoties uz zemāk sniegtajiem paskaidrojumiem, nosakiet, kāda darbību secība ir jāveic, lai iedegtos visas piecas gaismas diodes"

Tas ir izpildāms uzdevums, ja esat izlasījis kursa pirmo daļu un saprotat, kā šī funkcija darbojas. ja().

Sapratu? Ja jā, tad labi izdarīts, un ja nē, tad gandrīz labi.

Kopumā ir trīs “ievades rakstzīmes” – no 0 līdz 10, 10 līdz 15 un 20 līdz 25.

Stāvoklis no 0 līdz 10 tiek iespējots, novietojot abas rokas 0 līdz 10 cm attālumā no abiem attāluma mērītājiem. Ja tas ir izdarīts, iedegsies dzeltenā gaismas diode.

Statuss 10–15 ieslēgsies, pārvietojot roku uz labo vai kreiso attāluma mērītāju 10–15 cm attālumā. Jums tiks piedāvāts to izdarīt, izmantojot kreiso malu kreisās puses gaismas diode un labajā rokā galējā labās puses gaismas diode. .

Stāvoklis no 20 līdz 25 ieslēdzas brīdī, kad attālums no rokas līdz vienam no attāluma mērītājiem ir no 20 līdz 25 cm. Par to jūs informēs otrā no kreisās un otrā no labās gaismas diodes. attiecīgi kreiso un labo roku.

Ir vērts atzīmēt, ka ir stingri jāievēro secība.

  • Paceliet labo roku 10 līdz 15 attālumā.
  • Pēc tam, kad iedegas galējā labās puses gaismas diode, pavelciet KREISO roku uz attālumu no 20 līdz 25. Tas viss tiek darīts, nemainot labās rokas stāvokli.
  • Pēc otrās gaismas diodes norādīšanas no kreisās puses pārvietojiet KREISO roku uz kreiso pusi, lai nedegtu galējais kreisais gaismas diode, pretējā gadījumā kods būs jāievada vēlreiz. Pietuviniet LABO roku līdz attālumam no 0 līdz 10 un pietuviniet KREISO roku līdz tādam pašam attālumam, nepieskaroties attālumam no 10 līdz 15
  • Gaismas diodēm ir jābūt ieslēgtām un tām nevajadzētu reaģēt uz jūsu darbībām.
  • Nospiediet RESET pogu, lai atiestatītu paroli. Gaismas diodēm vajadzētu izslēgties.

Katra nepareiza kustība atiestata paroli, un tā ir jāievada vēlreiz. Pirmajā reizē tas var nedarboties, bet pēc dažu minūšu treniņa esmu pārliecināts, ka viss izdosies, un gaismas diodes iedegsies.

Pēc tam, kad izdodas iedegt visas gaismas diodes, varat pārbaudīt sevi un mainīt kodu, lai secība būtu atšķirīga - pēc saviem ieskatiem. Varat izveidot vairāk “simbolu” vai atstāt tos pašus, bet katru simbolu izveidot, izmantojot divus attāluma mērītājus. Tas būs patstāvīga risinājuma uzdevums.

infrasarkanais tālmērsAss

Ar šiem attāluma mērītājiem viss ir vēl vienkāršāk. Jums tie ir jāsavieno, tāpat kā visi analogie sensori. Un pat iespējams bez 10 kΩ rezistora. Ja kāda iemesla dēļ jūs nezināt, kā to izdarīt, tas ir aprakstīts manā rakstā par .

Theremin

Ir tāds mūzikas instruments kā theremin. Un tagad mēs apkoposim šī rīka līdzību.

Kods

// Norādīt attāluma meklētāju, pogu un skaņas signālu #define RFIND A5 #define BUT 9 #define BUZ 8 // Būla mainīgie pogai bool sound_on = false; bool but_up = patiess; void setup() ( pinMode(RFIND, INPUT); pinMode(BUZ, OUTPUT); pinMode(BUT,INPUT_PULLUP); ) void loop() ( //Kods, lai ieslēgtu un izslēgtu themin bool but_now = digitalRead(BUT); if( but_up && !but_now) ( delay(10); bool but_now = digitalRead(BUT); if(!but_now) ( sound_on = !sound_on; ) ) but_up = but_now; //Themin kods if(sound_on == 1) ( int val, freq; val = analogRead(RFIND); //Varat paspēlēties ar ierobežošanu un kartēt pēc sirds patikas val = constrain(val, 100, 400); freq = map(val, 100, 400, 1000, 2500); tonis (BUZ, frekvence, 20); ) )

Paskaidrojumi

Ja nospiežat pogu, tad no augstfrekvences vai skaļruņa atkarībā no tā, ko esat pievienojis, atskanēs signāls, kas mainīsies atkarībā no attāluma no attāluma no tālmēra līdz jūsu rokai.

Poga ir nepieciešama, lai apturētu vai palaistu mūsu “Theremin”

Rezultāts

Šodien mēs tuvāk apskatījām attāluma mērītājus un veicām dažus nelielus eksperimentus, no kuriem divus var izmantot dzīvē. Parktronic - palīdzētu novietot automašīnu, un Combination slēdzeni var uzlabot tā, ka, ievadot pareizo paroli, servomotors atver, piemēram, jūsu istabas durvju aizbīdni.

Radio elementu saraksts

Apzīmējums Tips Denominācija Daudzums PiezīmeVeikalsMans piezīmju bloks
1. shēma
Arduino dēlis

Arduino Uno

1 Uz piezīmju grāmatiņu
Maizes dēlisMaizes dēlis-puse1 Uz piezīmju grāmatiņu
Savienojošie vadi"Papa Papa"4 Uz piezīmju grāmatiņu
TālmērsHC-SR042 Uz piezīmju grāmatiņu
2. shēma
Arduino dēlis

Arduino Uno

1 Uz piezīmju grāmatiņu
TālmērsHC-SR041 Uz piezīmju grāmatiņu
Savienojošie vadi"Papa Papa"15 Uz piezīmju grāmatiņu
Maizes dēlisMaizes dēlis-puse1 Uz piezīmju grāmatiņu
Pjezo zummers 1 Uz piezīmju grāmatiņu
Rezistors

220 omi

1 Uz piezīmju grāmatiņu
Gaismas diode

AL102B

2 Uz piezīmju grāmatiņu
Gaismas diode

AL307V

1 Uz piezīmju grāmatiņu
Gaismas diode

AL307D

2 Uz piezīmju grāmatiņu
3. shēma
Arduino dēlis

Arduino Uno

1 Uz piezīmju grāmatiņu
TālmērsHC-SR042 Uz piezīmju grāmatiņu
Rezistors

220 omi

5
Notiek ielāde...Notiek ielāde...