Kód Arduina a video pre Sharp IR modul vzdialenosti
V tomto návode si ukážeme, ako používať modul Sharp IR na meranie vzdialenosti a spúšťanie akcií na základe zistenej vzdialenosti. Tento projekt demonštruje, ako zapojiť hardvér a napísať kód pre Arduino na čítanie meraní vzdialenosti a aktiváciu bzučiaka, keď sa objekt zistí v určitom rozsahu. Naučíte sa, ako zapojiť komponenty a pochopíte kľúčové identifikátory v kóde.

Pre tento projekt použijeme Sharp IR senzor, ktorý vysiela infračervené svetlo a meria vzdialenosť k objektu na základe odrazeného svetla. Keď sa objekt zistí v dosahu, spustí sa bzučiak, čo poskytuje jednoduchý a efektívny spôsob demonštrácie schopností modulu Sharp IR. Nezabudnite si pozrieť video pre vizuálneho sprievodcu nastavením a kódom (vo videu o 00:00).
Vysvetlenie hardvéru
Hlavné komponenty tohto projektu zahŕňajú Sharp IR senzor vzdialenosti, dosku Arduino a bzučiak. Sharp IR senzor pozostáva z vysielača a prijímača, ktoré spolupracujú pri meraní vzdialeností. Keď infračervené svetlo z vysielača narazí na objekt, odrazí sa späť k prijímaču, čo umožňuje vypočítať vzdialenosť na základe času potrebného na návrat svetla.
Arduino funguje ako ovládač, číta merania vzdialenosti z IR senzora a ovláda bzučiak na základe nameraných hodnôt. Bzučiak zaznie, keď sa objekt zistí v určenom rozsahu, čo robí toto zapojenie užitočným pre aplikácie, ako je detekcia prekážok v robotike.
Podrobnosti z datasheetu
| Výrobca | Sharp |
|---|---|
| Označenie dielu | GP2Y0A21YK0F |
| Logické/IO napätie | 5 V |
| Napájacie napätie | 4,5 – 5,5 V |
| Výstupné napätie | 0,4 – 2,5 V |
| Rozsah merania | 10 – 80 cm |
| Čas odozvy | 50 ms |
| Výstupný prúd | 20 mA |
| Puzdro | Modul |
| Poznámky / varianty | Dostupné vo viacerých rozsahoch vzdialenosti |
- Zaistite správne napájanie (4,5 – 5,5 V), aby nedošlo k poškodeniu.
- V prípade potreby použite rezistor na obmedzenie prúdu.
- Udržiavajte senzor čistý pre presné merania.
- Dávajte pozor na rušenie okolitým svetlom.
- Zapojenie musí byť pevné, aby sa predišlo prerušovaným spojeniam.
Pokyny na zapojenie

Na zapojenie modulu Sharp IR vzdialenosti pripojte uzemňovací pin modulu na pin GND na Arduine. Potom pripojte pin VCC modulu na pin 5V na Arduine. Výstupný signálový pin z modulu Sharp IR by mal byť pripojený na pin 2 na Arduine, ktorý bude čítať údaje o vzdialenosti.
Pre bzučiak pripojte dlhší pin (kladný) na pin 8 na Arduine a kratší pin (záporný) na GND. Uistite sa, že všetky spojenia sú pevné a že komponenty sú správne napájané, aby bola zaistená správna funkčnosť.
Príklady kódu a vysvetlenie
Nižšie je krátky výňatok z kódu Arduino, kde definujeme piny a nastavíme senzor. Identifikátor IR je definovaný ako analógový pin použitý pre signál senzora.
#define IR A0 // definovať signálny pin
SharpIR SharpIR(IR, model); // Inicializovať SharpIR s definovaným pinom
Tento kód inicializuje Sharp IR senzor na určenom analógovom pine. Identifikátor model špecifikuje typ použitého senzora, ktorý je v tomto prípade nastavený na 1080 pre model GP2Y0A21YK0F.
Vo funkcii setup spustíme sériovú komunikáciu na monitorovanie meraní vzdialenosti:
void setup() {
Serial.begin(9600); // Inicializovať sériovú komunikáciu
Serial.println("Robojax Sharp IR "); // Vytlačiť správu do sériového monitora
}
Funkcia setup inicializuje sériovú komunikáciu pri rýchlosti 9600 baudov, čo umožňuje Arduinu posielať údaje o vzdialenosti do Sériového monitora na pozorovanie.
V rámci funkcie loop čítame vzdialenosť zo senzora a vypíšeme ju:
void loop() {
int dis = SharpIR.distance(); // Prečítať vzdialenosť
Serial.print("Priemerná vzdialenosť: "); // Vytlačiť vzdialenosť do sériového monitora
Serial.println(dis); // Výstup merania vzdialenosti
}
Tento výňatok ukazuje, ako nepretržite čítať vzdialenosť a vypisovať ju do Sériového monitora. Premenná dis uchováva hodnotu vzdialenosti nameranú Sharp IR senzorom.
Demonštrácia / Čo očakávať
Po dokončení nastavenia môžete očakávať, že bzučiak zaznie vždy, keď sa objekt zistí v určenom rozsahu Sharp IR senzora. Sériový monitor zobrazí „Priemerná vzdialenosť" spolu s nameranou vzdialenosťou v centimetroch. Ak v dosahu nie sú žiadne objekty, monitor to tiež indikuje (vo videu o 02:30).
Medzi časté chyby patrí zabezpečenie správneho zarovnania senzora a to, aby žiadne prekážky neblokovali infračervený signál. Tiež skontrolujte, či je napájanie stabilné, aby sa predišlo nepravidelným meraniam.
Časové značky videa
- 00:00 - Úvod do projektu
- 02:30 - Demonštrácia funkčnosti senzora
- 03:45 - Vysvetlenie zapojenia
- 05:00 - Vysvetlenie kódu
/*
* 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
}
Veci, ktoré by ste mohli potrebovať
-
Amazon
Zdroje a referencie
-
ExternéSharp IR GP2Y0A51SK0F Datasheet (PDF)global.sharp
-
ExternéSharp Library from RoboJob.comrobojax.com
Súbory📁
Knižnice Arduino (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
Súbor Fritzing
-
sharp ir sensor GP2Y0A02YK0F
sharp ir sensor GP2Y0A02YK0F .fzz
Iné súbory
-
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