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.

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 saaraha | Sharp |
|---|---|
| Nambarka qaybta | GP2Y0A21YK0F |
| Danabka Logic/IO | 5 V |
| Danabka sahayda | 4.5 – 5.5 V |
| Danabka wax soo saarka | 0.4 – 2.5 V |
| Xadka cabbiraadda | 10 – 80 cm |
| Waqtiga jawaabta | 50 ms |
| Qulqulka wax soo saarka | 20 mA |
| Baakad | Module |
| Qoraalo / noocyo kale | Waxaa 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

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
/*
* 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
-
Amaazon
Kheyraadka & Tixraacyada
-
DibeddaSharp IR GP2Y0A51SK0F Datasheet (PDF)global.sharp
-
DibeddaSharp Library from RoboJob.comrobojax.com
Faylasha📁
Arduino Libraries (zip)
-
Arduino library for sharp IR distance sensor
robojax-sharp_IR-master.zip
Waraaqa xogta (pdf)
-
Sharp IR GP2Y0A21YK Infrared distance sensor datasheet
robojax_sharp_IR_GP2Y0A21YK_datasheet.pdf0.36 MB
Faylka Fritzing
-
sharp ir sensor GP2Y0A02YK0F
sharp ir sensor GP2Y0A02YK0F .fzz
Faylal kale
-
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