Hľadať kód

Kód Arduina a video pre Sharp IR modul vzdialenosti

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.

Sharpt IR distance sensor

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ýrobcaSharp
Označenie dieluGP2Y0A21YK0F
Logické/IO napätie5 V
Napájacie napätie4,5 – 5,5 V
Výstupné napätie0,4 – 2,5 V
Rozsah merania10 – 80 cm
Čas odozvy50 ms
Výstupný prúd20 mA
PuzdroModul
Poznámky / variantyDostupné 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

Arduino wiring for Sharf IR distance sensor
Arduino wiring for Sharf IR distance sensor

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

Obrázky

Sharpt IR distance sensor GP2Y0A21YK0F
Sharpt IR distance sensor GP2Y0A21YK0F
Arduino wiring for Sharf IR distance sensor
Arduino wiring for Sharf IR distance sensor
Sharpt IR distance sensor
Sharpt IR distance sensor GP2Y0A21YK0F
69-This is the Arduino code and video for a Sharp Infrared Sensor Module
Jazyk: C++
/*
 * 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ť

Zdroje a referencie

Súbory📁

Knižnice Arduino (zip)

Datasheet (pdf)

Súbor Fritzing

Iné súbory