Tafuta Msimbo

Msimbo wa Arduino na Video ya Moduli ya Umbali ya IR ya Sharp

Msimbo wa Arduino na Video ya Moduli ya Umbali ya IR ya Sharp

Katika mafunzo haya, tutachunguza jinsi ya kutumia moduli ya Sharp IR ya umbali kupima umbali na kuanzisha vitendo kulingana na umbali unaogunduliwa. Mradi huu utaonyesha jinsi ya kusanidi vifaa na kuandika msimbo wa Arduino kusoma vipimo vya umbali na kuamsha buzzer wakati kitu kinapogunduliwa ndani ya eneo fulani. Utajifunza jinsi ya kuunganisha vipengele pamoja na kuelewa vitambulisho muhimu katika msimbo.

Sharpt IR distance sensor

Kwa mradi huu, tutatumia sensor ya Sharp IR ambayo hutoa mwanga wa infrared na kupima umbali wa kitu kulingana na mwanga unaoakisiwa. Wakati kitu kinapogunduliwa ndani ya eneo, buzzer itaanzishwa, ikitoa njia rahisi na yenye ufanisi ya kuonyesha uwezo wa moduli ya Sharp IR. Hakikisha umeangalia video kwa mwongozo wa kuona kuhusu usanidi na msimbo (katika video saa 00:00).

Vifaa Vimeelezwa

Vipengele vikuu vya mradi huu vinajumuisha sensor ya umbali ya Sharp IR, bodi ya Arduino, na buzzer. Sensor ya Sharp IR ina transmitter na receiver zinazofanya kazi pamoja kupima umbali. Wakati mwanga wa infrared kutoka transmitter unapogonga kitu, unarudi kwa receiver, ikiruhusu kuhesabu umbali kulingana na muda uliochukuliwa kwa mwanga kurudi.

Arduino hufanya kama mtawala, ikisoma vipimo vya umbali kutoka kwa sensor ya IR na kudhibiti buzzer kulingana na usomaji. Buzzer itasikika wakati kitu kinapogunduliwa ndani ya eneo maalum, na kufanya usanidi huu kuwa muhimu kwa matumizi kama ugunduzi wa vizuizi katika robotiki.

Maelezo ya Datasheet

MtengenezajiSharp
Nambari ya sehemuGP2Y0A21YK0F
Voltage ya Logic/IO5 V
Voltage ya usambazaji4.5 – 5.5 V
Voltage ya pato0.4 – 2.5 V
Kipimo cha umbali10 – 80 cm
Muda wa kujibu50 ms
Mkondo wa pato20 mA
KifurushiModuli
Vidokezo / lahajaInapatikana katika safu nyingi za umbali

  • Hakikisha usambazaji wa nishati sahihi (4.5 – 5.5 V) ili kuepuka uharibifu.
  • Tumia resistor kupunguza mkondo ikiwa ni lazima.
  • Weka sensor ikiwa safi kwa usomaji sahihi.
  • Kuwa makini na usumbufu wa mwanga wa mazingira.
  • Wiring lazima iwe salama ili kuzuia miunganisho ya mara kwa mara.

Maagizo ya Wiring

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

Ili kuunganisha moduli ya umbali ya Sharp IR, unganisha pini ya ground ya moduli kwenye pini ya GND kwenye Arduino. Kisha, unganisha pini ya VCC ya moduli kwenye pini ya 5V kwenye Arduino. Pini ya pato la ishara kutoka kwa moduli ya Sharp IR inapaswa kuunganishwa kwenye pini 2 kwenye Arduino, ambayo itasoma data ya umbali.

Kwa buzzer, unganisha pini ndefu (chanya) kwenye pini 8 kwenye Arduino na pini fupi (hasi) kwenye GND. Hakikisha miunganisho yote ni salama na kwamba vipengele vina nishati sahihi ili kuhakikisha utendaji mzuri.

Mifano ya Msimbo na Maelekezo

Hapo chini ni sehemu fupi kutoka kwa msimbo wa Arduino ambapo tunafafanua pini na kusanidi sensor. Kitambulisho IR kinafafanuliwa kama pini ya analog inayotumiwa kwa ishara ya sensor.

#define IR A0 // fafanua pini ya ishara
SharpIR SharpIR(IR, model); // Anzisha SharpIR na pini iliyofafanuliwa

Msimbo huu huanzisha sensor ya Sharp IR kwenye pini maalum ya analog. Kitambulisho model kinabainisha aina ya sensor inayotumiwa, ambayo katika kesi hii imewekwa kuwa 1080 kwa model ya GP2Y0A21YK0F.

Katika kazi ya setup, tunaanza mawasiliano ya serial ili kufuatilia usomaji wa umbali:

void setup() {
    Serial.begin(9600); // Anzisha mawasiliano ya serial
    Serial.println("Robojax Sharp IR  "); // Chapisha ujumbe kwenye kifuatiliaji cha serial
}

Kazi ya setup huanzisha mawasiliano ya serial kwa kasi ya 9600 baud, ikiruhusu Arduino kutuma data ya umbali kwenye Serial Monitor kwa uchunguzi.

Ndani ya kazi ya loop, tunasoma umbali kutoka kwa sensor na kuuchapisha:

void loop() {
    int dis = SharpIR.distance(); // Soma umbali
    Serial.print("Mean distance: "); // Chapisha umbali kwenye kifuatiliaji cha serial
    Serial.println(dis); // Toa kipimo cha umbali
}

Sehemu hii inaonyesha jinsi ya kusoma umbali kila mara na kuuchapisha kwenye Serial Monitor. Kigezo dis kinashikilia thamani ya umbali iliyopimwa na sensor ya Sharp IR.

Maonyesho / Nini cha Kutarajia

Wakati usanidi umekamilika, unaweza kutarajia buzzer kusikika wakati wowote kitu kinapogunduliwa ndani ya eneo maalum la sensor ya Sharp IR. Serial Monitor itaonyesha "Mean distance" pamoja na umbali uliopimwa kwa sentimita. Ikiwa hakuna vitu ndani ya eneo, kifuatiliaji kitaonyesha hilo pia (katika video saa 02:30).

Makosa ya kawaida ni pamoja na kuhakikisha sensor imewekwa vizuri na kwamba hakuna vizuizi vinavyozuia ishara ya infrared. Pia, angalia kwamba usambazaji wa nishati ni thabiti ili kuepuka usomaji usio wa kawaida.

Vidokezo vya Muda wa Video

  • 00:00 - Utangulizi wa mradi
  • 02:30 - Maonyesho ya utendaji wa sensor
  • 03:45 - Maelezo ya wiring
  • 05:00 - Maelekezo ya msimbo

Bilder

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
Språk: 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

}

Tänker att du kanske behöver

Resurser och referenser

Filer📁

Arduino-bibliotek (zip)

Datablad (pdf)

Fritzing-fil

Andra filer