Ардуино код и видео за Sharp IR модул за растојание
Во ова упатство, ќе истражиме како да го користиме Sharp IR модулот за мерење растојание за да мериме растојанија и да активираме дејства врз основа на детектираното растојание. Овој проект ќе демонстрира како да го поставите хардверот и да го напишете Arduino кодот за читање мерења на растојание и активирање на зумер кога објект е детектиран во одреден опсег. Ќе научите како да ги поврзете компонентите и да ги разберете клучните идентификатори во кодот.

За овој проект, ќе користиме Sharp IR сензор кој емитира инфрацрвена светлина и го мери растојанието до објект врз основа на рефлектираната светлина. Кога објект е детектиран во опсегот, зумерот ќе се активира, обезбедувајќи едноставен но ефикасен начин да се демонстрираат можностите на Sharp IR модулот. Погрижете се да го погледнете видеото за визуелен водич за поставувањето и кодот (во видео на 00:00).
Објаснување на хардверот
Главните компоненти на овој проект вклучуваат Sharp IR сензор за растојание, Arduino плоча и зумер. Sharp IR сензорот се состои од предавател и приемник кои работат заедно за мерење растојанија. Кога инфрацрвената светлина од предавателот ќе удри во објект, таа се рефлектира назад до приемникот, овозможувајќи му да го пресмета растојанието врз основа на времето потребно за светлината да се врати.
Arduino дејствува како контролер, читајќи ги мерењата на растојание од IR сензорот и контролирајќи го зумерот врз основа на читањата. Зумерот ќе звучи кога објект е детектиран во одреден опсег, што го прави ова поставување корисно за апликации како детекција на пречки во роботиката.
Детали од техничката документација
| Производител | Sharp |
|---|---|
| Број на дел | GP2Y0A21YK0F |
| Логички/IO напон | 5 V |
| Напон на напојување | 4.5 – 5.5 V |
| Излезен напон | 0.4 – 2.5 V |
| Опсег на мерење | 10 – 80 cm |
| Време на одговор | 50 ms |
| Излезна струја | 20 mA |
| Пакет | Модул |
| Белешки / варијанти | Достапен во повеќе опсези на растојание |
- Обезбедете соодветно напојување (4.5 – 5.5 V) за да избегнете оштетување.
- Користете отпорник за ограничување на струјата ако е потребно.
- Чувајте го сензорот чист за точни читања.
- Внимавајте на пречки од амбиентална светлина.
- Поврзувањето мора да биде сигурно за да се спречат повремени врски.
Инструкции за поврзување

За да го поврзете Sharp IR модулот за растојание, поврзете го пинчето за заземјување на модулот со GND пинот на Arduino. Потоа, поврзете го VCC пинот на модулот со 5V пинот на Arduino. Излезниот сигнален пин од Sharp IR модулот треба да се поврзе со пин 2 на Arduino, кој ќе ги чита податоците за растојание.
За зумерот, поврзете го подолгиот пин (позитивен) со пин 8 на Arduino и пократкиот пин (негативен) со GND. Погрижете се сите врски да бидат сигурни и компонентите да бидат правилно напојувани за да се обезбеди правилна функционалност.
Примери на код и објаснување
Подолу е краток извадок од Arduino кодот каде ги дефинираме пиновите и го поставуваме сензорот. Идентификаторот IR е дефиниран како аналоген пин што се користи за сигналот на сензорот.
#define IR A0 // дефинирај сигнален пин
SharpIR SharpIR(IR, model); // Иницијализирај SharpIR со дефинираниот пин
Овој код го иницијализира Sharp IR сензорот на одредениот аналоген пин. Идентификаторот model го специфицира типот на сензорот што се користи, кој во овој случај е поставен на 1080 за моделот GP2Y0A21YK0F.
Во функцијата setup, ја започнуваме сериската комуникација за следење на читањата на растојание:
void setup() {
Serial.begin(9600); // Иницијализирај сериска комуникација
Serial.println("Robojax Sharp IR "); // Печати порака на серискиот монитор
}
Функцијата setup ја иницијализира сериската комуникација на 9600 бауди, овозможувајќи му на Arduino да испраќа податоци за растојание до Серискиот монитор за набљудување.
Во функцијата loop, го читаме растојанието од сензорот и го печатиме:
void loop() {
int dis = SharpIR.distance(); // Читај го растојанието
Serial.print("Mean distance: "); // Печати растојание на серискиот монитор
Serial.println(dis); // Излез на мерењето на растојание
}
Овој извадок покажува како континуирано да се чита растојанието и да се печати на Серискиот монитор. Променливата dis ја држи вредноста на растојанието измерена од Sharp IR сензорот.
Демонстрација / Што да очекувате
Кога поставувањето е завршено, можете да очекувате зумерот да звучи секогаш кога објект е детектиран во одредениот опсег на Sharp IR сензорот. Серискиот монитор ќе прикаже „Mean distance" заедно со измереното растојание во сантиметри. Ако нема објекти во опсегот, мониторот ќе го означи и тоа (во видео на 02:30).
Вообичаени грешки вклучуваат осигурување дека сензорот е правилно порамнет и дека нема пречки што го блокираат инфрацрвениот сигнал. Исто така, проверете дали напојувањето е стабилно за да избегнете неправилни читања.
Временски ознаки на видеото
- 00:00 - Вовед во проектот
- 02:30 - Демонстрација на функционалноста на сензорот
- 03:45 - Објаснување на поврзувањето
- 05:00 - Објаснување на кодот
/*
* Sharp IR (infrared) distance measurement module for Arduino
* Measures the distance in cm.
* Original library: https://github.com/guillaume-rico/SharpIR
* Watch video instruction for this code: https://youtu.be/GL8dkw1NbMc
*
* Full explanation of this code and wiring diagram is available at
* my Arduino Course at Udemy.com here: http://robojax.com/L/?id=62
* Written by Ahmad Shamshiri on Feb 03, 2018 at 07:34
* in Ajax, Ontario, Canada. www.robojax.com
*
* Get this code and other Arduino codes from Robojax.com
Learn Arduino step by step in a structured course with all material, wiring diagrams, and libraries
all in one place.
If you found this tutorial helpful, please support me so I can continue creating
content like this.
or make a donation using PayPal http://robojax.com/L/?id=64
* * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
*/
// Sharp IR code for Robojax.com
#include <SharpIR.h>
#define IR A0 // define signal pin
#define model 1080 // used 1080 because model GP2Y0A21YK0F is used
// Sharp IR code for Robojax.com
// ir: the pin where your sensor is attached
// model: an int that determines your sensor: 1080 for GP2Y0A21Y
// 20150 for GP2Y0A02Y
// 430 for GP2Y0A41SK
/*
2 to 15 cm GP2Y0A51SK0F use 1080
4 to 30 cm GP2Y0A41SK0F / GP2Y0AF30 series use 430
10 to 80 cm GP2Y0A21YK0F use 1080
10 to 150 cm GP2Y0A60SZLF use 10150
20 to 150 cm GP2Y0A02YK0F use 20150
100 to 550 cm GP2Y0A710K0F use 100550
*/
SharpIR SharpIR(IR, model);
void setup() {
// Sharp IR code for Robojax.com
Serial.begin(9600);
Serial.println("Robojax Sharp IR ");
}
void loop() {
// Sharp IR code for Robojax.com
delay(500);
unsigned long startTime=millis(); // takes the time before the loop on the library begins
int dis=SharpIR.distance(); // this returns the distance to the object you're measuring
// Sharp IR code for Robojax.com
Serial.print("Mean distance: "); // returns it to the serial monitor
Serial.println(dis);
//Serial.println(analogRead(A0));
unsigned long endTime=millis()-startTime; // the following gives you the time taken to get the measurement
Serial.print("Time taken (ms): ");
Serial.println(endTime);
// Sharp IR code for Robojax.com
}
Things you might need
-
Amazon
Resources & references
-
ExternalSharp IR GP2Y0A51SK0F datasheet (PDF)global.sharp
-
ExternalSharp Library from RoboJob.comrobojax.com
Files📁
Arduino Libraries (zip)
-
Arduino library for sharp IR distance sensor
robojax-sharp_IR-master.zip
Datasheet (pdf)
-
Sharp IR GP2Y0A21YK Infrared distance sensor datasheet
robojax_sharp_IR_GP2Y0A21YK_datasheet.pdf0.36 MB
Fritzing File
-
sharp ir sensor GP2Y0A02YK0F
sharp ir sensor GP2Y0A02YK0F .fzz
Other files
-
Sharp GP2Y0A41SK0F Infrared distance sensor datasheet
robojax_sharp_IR_GP2Y0A41SK0F_datasheet.pdf0.84 MB -
Sharp GP2Y0A710K0F Infrared distance sensor datashee
robojax_sharp_IR_GP2Y0A710K0F_datasheet.pdf0.33 MB