Infracrveni daljinomjer. Robot Senses: Sharp GP2Y0A21YK IR senzor udaljenosti. Specifikacije Sharp infracrvenog daljinomjera

Roboti, kao i smrt, svim ljudima su zaista potrebni organi čula za navigaciju u svemiru. Sharp GP2Y0A21YK infracrveni daljinomjer je vrlo pogodan za ovu ulogu ako trebate izbjeći sudare s preprekama ili znati otprilike gdje se ova prepreka nalazi.

Usput, možda već imate jednog od robota kod kuće koji koristi slične senzore. Ovo su gotovo svi zdravi kineski robotski usisivači i, vjerujem, mnogi Roomba modeli. I vjerovatno mnoge druge.

A ako ovi senzori imaju mjesta u manje-više ozbiljnoj tehnologiji, onda ćemo im naći primjenu, zar ne?

Da ne bih prevarao, odmah ću reći: naručio sam ove senzore ne samo da bih se igrao. Naprotiv, od samog početka sam znao da će mi biti od koristi da napravim interaktivnu lampu koja menja intenzitet sjaja u zavisnosti od položaja dlana iznad nje.

Naravno, stvarnost je na kraju napravila svoja prilagođavanja. Drugim riječima, sada ima pet načina rada: noćno svjetlo, svjetlo koje se može prigušiti, termometar, ručno podesivo sjeverno svjetlo i automatsko sjeverno svjetlo.

I pored toga - nekoliko servisnih funkcija: uključivanje i isključivanje pozadine i gornje rasvjete u prostoriji.

Evo kako to funkcionira:

Pa, sada je vrijeme da detaljnije razgovaramo o senzoru, zahvaljujući kojem se sve dogodilo.

Kao što sam rekao na samom početku, Sharp GP2Y0A21YK je infracrveni daljinomjer. To znači da je opremljen IR emiterom i IR prijemnikom: prvi služi kao izvor snopa, čiju refleksiju hvata drugi. Istovremeno, IR zraci senzora su nevidljivi ljudskom oku (iako možete uočiti crveno treperenje ako pogledate u senzor) i pri tom su intenzitetu bezopasni.

Takođe nemaju uticaja na domaće životinje.

Prema karakteristikama:

  • Napon napajanja: 5V
  • Maksimalna potrošnja struje: 40 mA (tipično - 30 mA)
  • Radni opseg: 10 cm - 80 cm
Što se tiče konkurenata, u poređenju sa ultrazvučnim senzorima, na primjer, super popularnim HC-SR04, ovaj senzor ima i prednosti i nedostatke. Prednosti uključuju sve što je gore rečeno, tj. neutralnost i bezazlenost.

Nedostaci su manji domet (HC-SR04 ima oko 4 m) i ovisnost o vanjskim smetnjama, uključujući i neke vrste rasvjete. Na primjer, vidio sam da se spominje da sunčeva svjetlost može utjecati na očitavanja senzora.

Senzor se isporučuje u spartanskom kompletu, tj. sam senzor i kabel sa konektorom za spajanje na senzor. S druge strane su jednostavno kalajisane žice, što nije baš zgodno za korištenje sa Arduino Uno, ali je sasvim prikladno za kontrolere bez zalemljenih konektora. Budući da sam planirao koristiti senzor sa Arduino Pro Mini, ovo je bila potpuno prikladna opcija - jednostavno sam zalemio žice u matičnu ploču.

Žice se razlikuju po boji: žuta - signal, crna - uzemljenje, crvena - napajanje plus (+5V).

Izlaz senzora je analogan (iako iz nekog razloga u podacima piše digitalno). Odnosno, napon na njemu je proporcionalan udaljenosti do prepreke. Međutim, kao iu slučaju ultrazvuka, postoje razlike između različitih vrsta prepreka za senzor.

S tim u vezi, u tablici sa podacima, Sharp daje podatke koristeći Kodak referentne kartice sa reflektivnošću od 90% kao reflektorima. Sudeći po tome, na 20 cm senzor proizvodi 1.3V.

Hajde da uporedimo sa mojim eksperimentalnim podacima:

Da vas podsjetim da Arduino analogni ulaz radi u opsegu 0V - 5V i ima 1024 koraka, otuda i proračun: (5/1024)*(očitavanje senzora). Dakle, ako uzmete u obzir činjenicu da se sve radi vlastitim (drhtavim) rukama, onda se očitanja dobro uklapaju u karakteristike senzora. A u isto vrijeme možete vidjeti da se crna površina sama prilagođava.

Tako da sija

Istovremeno, kako je pažljiv čitalac primijetio, postoje specifičnosti. Stvar je u tome da kada se prepreka približi donjoj granici dometa (10 cm), senzor počinje smatrati da se prepreka, naprotiv, udaljava (kada sam je pokrio rukom, očitanja su bila fiksirana na 345).

To izgleda otprilike ovako:

Otuda zaključak: iako je datasheet sasvim adekvatan za mnoge svrhe, ponekad ima smisla provesti eksperimente kako kasnije ne bi bilo strašno bolno. A to je posebno tačno ako je senzor donekle uvučen (ili prekriven IC prozirnim materijalom), što znači da može primiti refleksije sa zidova ili drugih elemenata kućišta.

Na primjer, suočio sam se s činjenicom da je Evlampia, nakon što je nakon uspješnih "desktop" testova instalirana na svoje uobičajeno mjesto, počela ludovati. Isprva sam mislio da su smetnje u napajanju krive i čak sam ugradio par kondenzatora (10 µF i 0,1 µF) paralelno sa napajanjem senzora, povukao Arduino analogni ulaz na nulu kroz otpornik od 10 kOhm, pa čak i kupio utičnica za zaštitu od prenapona.

Ali kada to nije pomoglo, ponovo se vratio za stol, gdje je okrenuo senzor u različitim smjerovima i vidio da se u stvari, čak i ako je udaljenost do najbliže prepreke veća od 80 cm, očitanja senzora primjetno mijenjaju. Dakle, ako su vam troškovi neadekvatni, provjerite stvarna očitavanja u stvarnim uvjetima.

Evo, na primjer, elementarne skice koja, prvo, prikazuje očitanja senzora u intervalima od pola sekunde, i, drugo, pali Arduino LED ako očitanja padnu u rasponu od 100 do 200:

// Žuta - A0, crna - zemlja, crvena - +5V unsigned int l; void setup() ( Serial.begin(9600); pinMode(A0, INPUT); pinMode(13, OUTPUT); l = 0; ) void loop() ( l = analogRead(A0); Serial.println(l); kašnjenje (1000 if (l > 100 && l);< 200) { digitalWrite(13, HIGH); } else { digitalWrite(13, LOW); } }

Da sumiramo, senzor je, iako malo izbirljiv, vrlo jednostavan za korištenje i relativno jeftin.

Može se koristiti u robotima, kao i za kontrolu raskrižja ulaznih vrata, u nekim interaktivnim uređajima kojima se upravlja pokretima i u bilo čemu drugom što vaša mašta predloži.

Planiram da kupim +32 Dodaj u favorite Svidjela mi se recenzija +38 +67

Daljinomjeri

U ovom vodiču ćemo detaljnije pogledati daljinomjere.

Ultrazvučni daljinomjerHC-SR04

Danas (2016.) ne košta više od 1 USD na AliExpressu.

Senzor ima 4 izlaza:

  • Vcc – Ovaj pin napaja napajanje od 5V.
  • Trig – Logički se mora primijeniti na ovaj pin na 10 μs tako da daljinomjer emituje ultrazvučni talas.
  • Eho – Nakon što se ultrazvučni talas vrati, na ovaj kontakt će se primeniti logički talas za vreme proporcionalno udaljenosti do objekta
  • Gnd – Ovaj pin se povezuje na masu.

Ultrazvučni daljinomjer – radi na principu “šišmiša”. On šalje ultrazvučni talas i broji vreme potrebno da se talas vrati. Znajući brzinu zvuka i vrijeme potrebno da se val vrati, možete izračunati udaljenost do objekta.

Pomoću ovog daljinomjera sastavit ćemo mali parking senzor, koji se može povećati i sastaviti u gotov uređaj za parkiranje automobila. Također ću vam pokazati kako možete koristiti daljinomjer za kontrolu svojih uređaja.

Daljinomjer

Hajde da sastavimo jednostavan dijagram da shvatimo kako radi daljinomjer.

Kod

#define ECHO 13 #define TRIG 12 void setup() ( pinMode(ECHO, INPUT); // ECHO treba postaviti na logički jedan pinMode(TRIG, OUTPUT); // Iz TRIG-a ćemo pročitati vrijednost udaljenosti Serial.begin (9600) ; //Uspostavite vezu sa serijskim portom ) void loop() ( //Pošaljite na TRIG HIGH i odmah LOW digitalWrite(TRIG, HIGH); digitalWrite(TRIG, LOW); //Pročitajte dužinu TRIG, LOW); dolazni signal u mikrosekundama int dist = pulseIn( ECHO, HIGH) / 54 // Podijelite očitanja u cm Serial.println(dist); malo tako da oko ima vremena da razlikuje očitanja)

Objašnjenja

pulseIn(ECHO,HIGH);- Koristeći ovu funkciju, izbrojali smo vrijeme za koje je ECHO pin postavljen na HIGH. Ovo vrijeme se računa u mikrosekundama.

IN opšti pogled pulseIn(); može se napisati ovako:

pulseIn(pin, vrijednost, timeout);

Pin– Pin na koji će se vrijeme računati.

Značenje– Nivo očekivanog signala na kojem će se izvršiti brojanje. VISOKO ili NISKO.

Vrijeme je isteklo– vrijeme u mikrosekundama tokom kojeg se očekuje da signal stigne. Kada istekne vremensko ograničenje, vrijednost koju vraća funkcija bit će postavljena na nulu.

Dakle, shvatili smo princip rada daljinomjera. Vrijeme je za izradu parking senzora za automobile.

Parktronic

Dijagram parking senzora izgleda ovako:

#define ECHO 3 // Prijem signala od daljinomjera #define TRIG 2 // Dobavljanje signala daljinomjeru #define COUNT 5 // Broj LED dioda #define BUZZ 6 // Pin za zujalicu #define PRVI 9 // Prvo pin LED dioda #define dist_setup 1 //Tuning faktor #define frekvenciju 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); }

Objašnjenja

Parktronic je opremljen LED i zvučnom indikacijom. Kada se objekat približi na određene udaljenosti, čuju se češći zvučni signali i više LED dioda svijetli.

dist_ postaviti – ovo je koeficijent s kojim možete podesiti udaljenost prije nego što se aktiviraju parking senzori.

Za mene je jednako jedan. Ako trebate smanjiti udaljenost, morate smanjiti koeficijent, ali tada će on biti u obliku 0.xxx. Da biste to učinili, uvodi se varijabla tipa float.

Frekvencija škripe se također može promijeniti. Da biste to učinili, morate promijeniti vrijednost frekvencija . Ali zapamtite da piezo emiter užasno pišti. Ekstremno. I, čini mi se da će vas brzo obeshrabriti da ga koristite dalje ili duže od 5 minuta.

Alternativa je smanjenje frekvencije na 20 Hz ili povezivanje običnog zvučnika od 8 oma, na primjer.

Lozinka

Pokušajmo sada napraviti tajni kod koji pali LED diode. A ako u krug uključite servomotor sa zasunom, možete napraviti bravu na vratima ili ladici sa lozinkom.

Obratite pažnju na dijagram.

Kod

//Igle ​​prvog daljinomjera #define TRIG1 12 #define ECHO1 13 //Igle ​​drugog daljinomjera #define TRIG2 10 #define ECHO2 11 //LEDs #define FIRST 3 #define COUNT 5 //Dugme za resetiranje #define RESET 2 / /Password varijable int key1; int ključ2; int key3; void setup() ( //Označavanje LED dioda kao izlaza za (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; } }

Objašnjenja

Da biste upalili svih pet LED dioda, morate znati redoslijed radnji koje treba izvršiti. Evo zadatka za vas - "Uprkos objašnjenjima u nastavku, odredite koji slijed radnji treba izvršiti da bi svih pet LED dioda upalilo"

Ovo je izvodljiv zadatak ako ste pročitali prvi dio kursa i razumjeli kako funkcija funkcionira if().

Jasno? Ako da, bravo, a ako ne, skoro pa dobro urađeno.

Postoje tri „ulazna znaka“ ukupno – od 0 do 10, od 10 do 15 i od 20 do 25.

Stanje od 0 do 10 se aktivira ako obje ruke dovedete na udaljenost od 0 do 10 cm do oba daljinomjera. Ako to učinite, žuta LED dioda će zasvijetliti.

Stanje od 10 do 15 će se uključiti kada svoju ruku dovedete do desnog ili lijevog daljinomjera na udaljenosti od 10 do 15 cm.

Stanje od 20 do 25 je uključeno u trenutku kada je udaljenost od ruke do jednog od daljinomjera od 20 do 25 cm O tome će vas obavijestiti druga lijeva i druga desna LED dioda za lijevu i desnu ruku , odnosno.

Vrijedi napomenuti da se redoslijed mora striktno pridržavati.

  • DESNU ruku dovedite na udaljenost od 10 do 15.
  • Nakon što zasvijetli krajnja desna LED dioda, povucite LJEVU ruku na razmak od 20 do 25. Sve se to radi bez promjene položaja desne ruke.
  • Nakon što se prikaže druga LED dioda s lijeve strane, pomaknite LJEVU ruku ulijevo tako da ne zasvijetli krajnja lijeva LED dioda, inače ćete prvo morati unijeti kod. Približite svoju DESNU ruku na razdaljinu od 0 do 10, a LIJEVU ruku na istu udaljenost, bez dodirivanja udaljenosti od 10 do 15
  • LED diode treba da budu upaljene i da ne reaguju na vaše radnje.
  • Pritisnite dugme RESET da resetujete lozinku. LED diode bi se trebale ugasiti.

Svaki pogrešan potez resetuje lozinku i mora se ponovo uneti. Možda neće uspjeti prvi put, ali nakon nekoliko minuta treninga, siguran sam da će sve uspjeti i LED diode će zasvijetliti.

Nakon što uspijete upaliti sve LED diode, možete se testirati i promijeniti kod tako da redoslijed bude drugačiji - po vašem nahođenju. Možete napraviti više „simbola“, ili možete ostaviti iste, ali svaki simbol napravite koristeći dva daljinomjera. Ovo će biti zadatak za koji ćete odlučiti sami.

Infracrveni daljinomjerSharp

Sa ovim daljinomjerima sve je još jednostavnije. Moraju biti povezani kao i svi analogni senzori. A moguće je čak i bez otpornika od 10 kOhm. Ako iz nekog razloga ne znate kako to učiniti, onda je to opisano u mom članku o.

Teremin

Postoji takav muzički instrument kao što je teremin. A sada ćemo sastaviti sličnost ovog alata.

Kod

// Odredite daljinomjer, dugme i zujalicu #define RFIND A5 #define BUT 9 #define BUZ 8 // Booleove varijable za dugme bool sound_on = false; bool but_up = istina; void setup() ( pinMode(RFIND, INPUT); pinMode(BUZ, OUTPUT); pinMode(BUT,INPUT_PULLUP); ) void loop() ( //Kôd za uključivanje i isključivanje teremina bool but_now = digitalRead(BUT); if( but_up && !but_now) ( kašnjenje(10); bool but_now = digitalRead(BUT); if(!but_now) ( sound_on = !sound_on; ) ) but_up = but_now //Kod za theremin if(sound_on == 1); ( int val, freq; val = analogRead(RFIND); //Možete se igrati sa ograničenjima i vrijednostima mapirati kako želite val = constrain(val, 100, 400); tone(BUZ, freq, 20);

Objašnjenja

Ako pritisnete dugme, čut će se signal iz zujalice ili zvučnika, ovisno o tome što ste spojili, koji će varirati ovisno o udaljenosti od daljinomjera do vaše ruke.

Dugme je potrebno da zaustavite ili pokrenete naš “Theremin”

Zaključak

Danas smo pobliže pogledali daljinomjere i izveli nekoliko malih eksperimenata, od kojih se dva mogu koristiti u stvarnom životu. Parking senzori bi vam pomogli pri parkiranju, a Code Lock se može poboljšati na način da kada unesete ispravnu lozinku, servomotor otvara rezu na vratima vaše sobe, na primjer.

Spisak radioelemenata

Oznaka Tip Denominacija Količina BilješkaProdavnicaMoja beležnica
Šema 1
Arduino ploča

Arduino Uno

1 U notes
Bread boardBreadboard-pola1 U notes
Spojne žice"tata-tata"4 U notes
DaljinomjerHC-SR042 U notes
Šema 2
Arduino ploča

Arduino Uno

1 U notes
DaljinomjerHC-SR041 U notes
Spojne žice"tata-tata"15 U notes
Bread boardBreadboard-pola1 U notes
Piezo emiter 1 U notes
Otpornik

220 Ohm

1 U notes
Dioda koja emituje svetlost

AL102B

2 U notes
Dioda koja emituje svetlost

AL307V

1 U notes
Dioda koja emituje svetlost

AL307D

2 U notes
Šema 3
Arduino ploča

Arduino Uno

1 U notes
DaljinomjerHC-SR042 U notes
Otpornik

220 Ohm

5

Infracrveni daljinomjer vam omogućava da odredite udaljenost do objekata. Ovo je model GP2Y0A021 kompanije Sharp. Senzor određuje udaljenost reflektovanim snopom svjetlosti u infracrvenom spektru. Daljinomjer se može koristiti za izbjegavanje prepreka i navigaciju po terenu.

Izlaz je analogni signal, sa nivoom napona koji zavisi od udaljenosti do cilja u određenom pravcu.

Senzor je povezan sa kontrolnom elektronikom preko 3 žice. Prilikom povezivanja na Arduino bit će izuzetno zgodno koristiti Troyka Shield. Kabl za povezivanje je uključen u komplet.

Pažnja! Pinout napajanja za ovaj senzor može varirati. Prije nego što uključite modul, upoznajte se sa karakteristikama povezivanja DFRobot modula.

Da biste pouzdano instalirali daljinomjer bilo gdje, postoji poseban nosač.

Karakteristike

  • Napon napajanja: 4,5–5,5 V
  • Potrošnja struje: 30–40 mA
  • Raspon udaljenosti: 10–80 cm

Ograničenja

Budući da uređaj radi pomoću svjetlosti, senzor nije pogodan za određivanje udaljenosti do objekata koji apsorbiraju svjetlost. Daljinomjer neće ni osjetiti prozirnu površinu, poput plastike ili pleksiglasa. Ultrazvučni daljinomjer URM37 ili HC-SR04 je pogodan za određivanje udaljenosti u takvom okruženju.

Ovaj infracrveni daljinomjer ima malu mrtvu zonu ispred sebe: 10 cm Ako trebate vidjeti prepreke na manjim udaljenostima, a ekstremna udaljenost nije toliko važna, razmislite o daljinomjeru za udaljenosti od 4-30 cm u istoj liniji. Ako vaš uređaj treba da vidi dalje, obratite pažnju na daljinomjer za udaljenosti od 20-150 cm. Možete postići veću fleksibilnost kombiniranjem senzora s različitim dometima.

U ovom članku ćemo pogledati povezivanje i rad sa SHARP GP2Y0A02YK0F IR senzorom udaljenosti.
Za razliku od istog, ovaj senzor ima mnogo skromniji mjerni opseg, ali i dalje ima niz korisnih karakterističnih svojstava. Na primjer, ovaj senzor vam omogućava mjerenje udaljenosti čak i kroz prozirne površine (iako se gubi tačnost očitavanja, ali ipak).

Veza senzora:

GND na bilo koji od GND pinova --- Arduino

OUT na bilo koji od analognih ulaza Arduina (u primjerima je spojen na A0)

VCC na +5 volti na arduinu

Glavne tehničke karakteristike:

Opseg mjerenja udaljenosti: 20 do 150 cm

Analogni izlaz

Dimenzije: 29,5x13x21,6 mm

Potrošnja struje: 33 mA

Napon napajanja: 4,5 do 5,5 V

Mora se raspakovati i dodati u folder "biblioteke" u Arduino IDE folderu. Ne zaboravite ponovo pokrenuti okruženje ako je IDE bio otvoren kada ste ga dodali.

Šta je posebno u vezi ove biblioteke i zašto se preporučuje za korišćenje? Odgovor je jednostavan i leži u principu njegovog rada. Za mjerenje udaljenosti koriste se mnoga mjerenja, od kojih se odbacuju pogrešna, koja se jako razlikuju od susjednih. Prema autorima, 12% svih očitavanja doprinosi 42% greške konačnoj vrijednosti udaljenosti, ako se ne odbace pogrešna mjerenja.

Pređimo na programski kod - primjer rada sa senzorom (primjer je pogodan i za senzor GP2Y0A21Y; u kodu ćete morati promijeniti vrijednost modela na 1080):

Primjer koda

#include #define ir A0 //pin na koji je senzor spojen. Definitivno analogno!#defini model 20150 //model senzora. 1080 za GP2Y0A21Y, 20150 za GP2Y0A02Y SharpIR SharpIR (ir, model); void postaviti () { Serial.begin(9600); ) void petlja() ( kašnjenje (2000); unsigned long pepe1=millis (); // označava vrijeme prije početka mjerenja int dis=SharpIR .distance(); // dobiti udaljenost od senzora Serial.print("Srednja udaljenost: "); // ispisuje udaljenost do monitora porta Serial.println(dis); unsigned long pepe2=millis()-pepe1; // računati vrijeme provedeno na mjerenju Serial.print("Vrijeme potrebno (ms): "); // i prikaži ga Serial.println(pepe2); )