Raadi Koodka

Koodka Arduino iyo Fiidiyowga Module-ka Fogaanta IR ee Sharp

Koodka Arduino iyo Fiidiyowga Module-ka Fogaanta IR ee Sharp

Casharkaani waxaan ku baran doonaa sida loo isticmaalo qaybta masaafada ee Sharp IR si loo cabbiro masaafada oo loo kiciyo ficillo ku salaysan masaafada la ogaaday. Mashruucani wuxuu muujin doonaa sida loo habeeyo qalabka iyo qorista koodhka Arduino si loo akhriyo cabbirada masaafada oo loo kiciyo qalabka dhawaqa (buzzer) marka shay lagu ogaado gudaha xad gaar ah. Waxaad baran doontaa sida loo xiro qaybaha isku xirka oo aad u fahanto aqoonsiyada muhiimka ah ee koodhka ku jira.

Sharpt IR distance sensor

Mashruucan, waxaan isticmaalaynaa dareeme Sharp IR oo sii daaya iftiin infir-cej ah oo cabbira masaafada shay ku salaysan iftiinka dib u soo noqda. Marka shay lagu ogaado gudaha xadka, qalabka dhawaqa ayaa la kiciyay, taasoo bixineysa hab fudud oo wax ku ool ah oo lagu muujiyo awoodaha qaybta Sharp IR. Hubi inaad fiiriso fiidiyowga si aad u hesho hagitaan muuqaal ah oo ku saabsan habaynta iyo koodhka (fiidiyowga 00:00).

Qalabka La Sharaxay

Qaybaha ugu muhiimsan ee mashruucan waxaa ka mid ah dareeme masaafada ee Sharp IR, looxa Arduino, iyo qalab dhawaq. Dareemaha Sharp IR wuxuu ka kooban yahay gudbiye iyo qaateeye oo si wada jir ah u cabbira masaafada. Marka iftiinka infir-cejka ah ee gudbiyaha uu ku dhaco shay, wuxuu dib ugu soo noqdaa qaateeyaha, taasoo u oggolaaneysa inuu xisaabiyo masaafada ku salaysan waqtiga loo qaaday iftiinka si uu u soo noqdo.

Arduino wuxuu u shaqeeyaa sidii kontoroolaha, isagoo akhriya cabbirada masaafada ee dareemaha IR oo xakameynaya qalabka dhawaqa ku salaysan akhriska. Qalabka dhawaqa wuxuu dhawaqi doonaa marka shay lagu ogaado gudaha xad go'an, taasoo ka dhigaysa habayntan mid waxtar u leh codsiyada sida ogaanshaha caqabadaha ee robotics-ka.

Faahfaahinta Xaashida Xogta

Soo saarahaSharp
Nambarka qaybtaGP2Y0A21YK0F
Danabka Logic/IO5 V
Danabka sahayda4.5 – 5.5 V
Danabka wax soo saarka0.4 – 2.5 V
Xadka cabbiraadda10 – 80 cm
Waqtiga jawaabta50 ms
Qulqulka wax soo saarka20 mA
BaakadModule
Qoraalo / noocyo kaleWaxaa laga heli karaa xaddiyo masaafo oo kala duwan

  • Hubi sahayda danab ee saxda ah (4.5 – 5.5 V) si looga fogaado waxyeello.
  • Isticmaal resistor si aad u xaddiddo qulqulka haddii loo baahdo.
  • Nadiifi dareemaha si aad u hesho akhris sax ah.
  • Ka digtoonow faragelinta iftiinka deegaanka.
  • Xiridda waa inay adag tahay si looga hortago xiridda kala goysa.

Tilmaamaha Xiridda

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

Si aad u xirto qaybta masaafada ee Sharp IR, ku xir biinka dhulka ee qaybta biinka GND ee Arduino. Kadib, ku xir biinka VCC ee qaybta biinka 5V ee Arduino. Biinka wax soo saarka ee qaybta Sharp IR waa in lagu xiraa biinka 2 ee Arduino, kaas oo akhriyi doona xogta masaafada.

Qalabka dhawaqa, ku xir biinka dheer (togan) biinka 8 ee Arduino iyo biinka gaaban (taban) biinka GND. Hubi in dhammaan xiridda ay adag yihiin iyo in qaybaha si sax ah loo shideeyo si loo hubiyo shaqeynta saxda ah.

Tusaalooyinka Koodhka & Sharaxaadda

Hoos waxaa ku qoran qayb kooban oo ka mid ah koodhka Arduino halkaas oo aan ku qeexayno biinanka oo aan u habaynayno dareemaha. Aqoonsiga IR waxaa lagu qeexay biinka analog-ga ah ee loo isticmaalo calaamadda dareemaha.

#define IR A0 // qeex biinka calaamadda
SharpIR SharpIR(IR, model); // Bilaab SharpIR oo leh biinka la qeexay

Koodhkani wuxuu bilaabayaa dareemaha Sharp IR ee biinka analog-ga ah ee la cayimay. Aqoonsiga model wuxuu qeexayaa nooca dareemaha la isticmaalayo, kaas oo xaaladdan lagu dejiyay 1080 ee nooca GP2Y0A21YK0F.

Shaqada habaynta, waxaan ku bilaabaynaa isgaarsiinta serial si loo kormeero akhriska masaafada:

void setup() {
    Serial.begin(9600); // Bilaab isgaarsiinta serial
    Serial.println("Robojax Sharp IR  "); // Daabac farriin kormeerka serial-ka
}

Shaqada habaynta waxay bilaabaysaa isgaarsiinta serial ee 9600 baud, taasoo u oggolaaneysa Arduino inuu u diro xogta masaafada kormeerka serial-ka si loo ilaaliyo.

Gudaha shaqada loop-ka, waxaan akhriyaynaa masaafada dareemaha oo aan daabacaynaa:

void loop() {
    int dis = SharpIR.distance(); // Akhri masaafada
    Serial.print("Mean distance: "); // Daabac masaafada kormeerka serial-ka
    Serial.println(dis); // Soo saar cabbirka masaafada
}

Qaybtani waxay muujinaysaa sida si joogto ah loo akhriyo masaafada oo loo daabaco kormeerka serial-ka. Doorsoomaha dis wuxuu hayaa qiimaha masaafada ee uu cabbiray dareemaha Sharp IR.

Muuujinta / Waxa Lagu Filan Karaa

Marka habayntu dhammaato, waxaad filan kartaa in qalabka dhawaqa uu dhawaqo mar kasta oo shay lagu ogaado gudaha xadka lagu cayimay ee dareemaha Sharp IR. Kormeerka serial-ka wuxuu muujin doonaa "Mean distance" oo ay weheliso masaafada la cabbiray ee sentimitir. Haddii aysan jirin shay gudaha xadka, kormeerku wuxuu tilmaami doonaa taas sidoo kale (fiidiyowga 02:30).

Khaladaadka caadiga ah waxaa ka mid ah hubinta in dareemaha si sax ah loo toosiyay iyo in aysan jirin caqabado xannibaya calaamadda infir-cejka ah. Sidoo kale, hubi in sahayda danabku ay tahay mid deggan si looga fogaado akhriska khaldan.

Waqtiyada Fiidiyowga

  • 00:00 - Hordhaca mashruuca
  • 02:30 - Muujinta shaqeynta dareemaha
  • 03:45 - Sharaxaadda xiridda
  • 05:00 - Sharaxaadda koodhka

Sawirro

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
Luqadda: 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

}

Waad u baahan tahay

Kheyraadka & Tixraacyada

Faylasha📁

Arduino Libraries (zip)

Waraaqa xogta (pdf)

Faylka Fritzing

Faylal kale