ஆர்டுயினோ குறியீடு மற்றும் வீடியோ ஷார்ப் IR தூர தொகுதி LCD1602 மற்றும் I2C தொகுதியுடன்
இந்த திட்ட வழிகாட்டி, ஷார்ப் அகச்சிவப்பு (IR) தொலைவு சென்சார் மற்றும் LCD1602 காட்சியைப் பயன்படுத்தி எளிய ஆனால் பயனுள்ள தொலைவு அளவீட்டு அமைப்பை உருவாக்க உங்களுக்கு உதவும். இந்த அமைப்பு ஒரு குறிப்பிட்ட வரம்பிற்குள் தொலைவுகளை துல்லியமாக அளவிடவும், அவற்றை நேரடியாக திரையில் காட்டவும் அனுமதிக்கிறது, இது பல்வேறு DIY மின்னணு பயன்பாடுகளுக்கு ஏற்றதாக அமைகிறது.
ஷார்ப் அனலாக் வெளியீட்டு தொகுதிகள்:
2 முதல் 15 செ.மீ GP2Y0A51SK0F
4 முதல் 30 செ.மீ GP2Y0A41SK0F / GP2Y0AF30 தொடர்
10 முதல் 80 செ.மீ GP2Y0A21YK0F
10 முதல் 150 செ.மீ GP2Y0A60SZLF
20 முதல் 150 செ.மீ GP2Y0A02YK0F
100 முதல் 550 செ.மீ GP2Y0A710K0F

இந்த அமைப்புக்கான நடைமுறை பயன்பாட்டு எடுத்துக்காட்டுகள் மற்றும் திட்ட யோசனைகள் பின்வருமாறு:
- பம்பர் சேதத்தைத் தடுக்க தானியங்கி பார்க்கிங் உதவி அமைப்பை உருவாக்குதல்.
- தொட்டிகள் அல்லது கிணறுகளுக்கு எளிய நீர் மட்ட சென்சார் உருவாக்குதல்.
- தொடர்பு இல்லாத திரவ விநியோகியை உருவாக்குதல்.
- அருகாமையைக் கண்டறிந்து அடிப்படை பாதுகாப்பு அலாரத்தை செயல்படுத்துதல்.
- ஹாப்பர்கள் அல்லது தொட்டிகளுக்கு நிரப்பு-நிலை காட்டியை உருவாக்குதல்.
- சிறிய ரோபோக்கள் அல்லது RC வாகனங்களுக்கு மோதல் தவிர்ப்பு அமைப்பை வடிவமைத்தல்.
வன்பொருள்/கூறுகள்
இந்த திட்டத்தை முடிக்க, உங்களுக்கு பின்வரும் கூறுகள் தேவைப்படும்:
- Arduino Uno அல்லது இணக்கமான போர்டு
- ஷார்ப் அகச்சிவப்பு தொலைவு சென்சார் (மாதிரி GP2Y0A41SK0F, 4 முதல் 30 செ.மீ அளவிடும்)
- I2C தொகுதியுடன் கூடிய LCD1602 (எளிதான வயரிங்கிற்கு)
- பிரெட்போர்டு (விருப்பம், முன்மாதிரிக்கு)
- ஜம்பர் கம்பிகள்
- Arduino மின்சாரம் மற்றும் நிரலாக்கத்திற்கான USB கேபிள்
வயரிங் வழிகாட்டி

ஷார்ப் IR சென்சார் மற்றும் I2C தொகுதியுடன் கூடிய LCD1602 ஐ உங்கள் Arduino உடன் இணைப்பது எளிது, ஏனெனில் I2C தொகுதி LCD க்கு தேவையான கம்பிகளின் எண்ணிக்கையை குறைக்கிறது.
ஷார்ப் IR சென்சாரில் மூன்று கம்பிகள் உள்ளன: சிவப்பு (5V), கருப்பு (தரை), மற்றும் மஞ்சள் (வெளியீடு). சிவப்பு கம்பியை Arduino இன் 5V பின்னுடன் இணைக்கவும், கருப்பு கம்பியை Arduino இன் எந்த GND பின்னுடன் இணைக்கவும், மஞ்சள் வெளியீட்டு கம்பியை Arduino இன் அனலாக் பின் A0 உடன் இணைக்கவும் (வீடியோவில் 03:55).
I2C தொகுதியுடன் கூடிய LCD1602 இல் நான்கு கம்பிகள் உள்ளன: VCC, GND, SDA, மற்றும் SCL. VCC பின்னை Arduino இன் 5V உடன் இணைக்கவும், GND பின்னை Arduino இன் GND உடன் இணைக்கவும். SDA (சீரியல் டேட்டா லைன்) கம்பியை Arduino இன் அனலாக் பின் A4 உடன் இணைக்க வேண்டும், மற்றும் SCL (சீரியல் க்ளாக் லைன்) கம்பியை Arduino இன் அனலாக் பின் A5 உடன் இணைக்க வேண்டும் (வீடியோவில் 02:42).
குறியீடு விளக்கம்
வழங்கப்பட்ட Arduino குறியீடு இரண்டு முக்கிய நூலகங்களைப் பயன்படுத்துகிறது: Wire.h I2C தொடர்புக்காக, LiquidCrystal_I2C.h LCD ஐ கட்டுப்படுத்துவதற்காக, மற்றும் SharpIR.h ஷார்ப் IR சென்சாருக்காக. குறியீட்டின் பயனர்-கட்டமைக்கக்கூடிய பகுதிகள் முக்கியமாக சென்சார் வரையறை மற்றும் LCD துவக்கத்துடன் தொடர்புடையவை.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// 16 எழுத்துகள் மற்றும் 2 வரி காட்சிக்கு LCD முகவரியை 0x27 ஆக அமைக்கவும்
LiquidCrystal_I2C lcd(0x27, 16, 2);
LiquidCrystal_I2C lcd(0x27, 16, 2); என்ற வரி LCD பொருளை துவக்குகிறது. முதல் அளவுரு, 0x27 (வீடியோவில் 03:26), பெரும்பாலான PCF8574 அடிப்படையிலான I2C LCD தொகுதிகளுக்கான இயல்புநிலை I2C முகவரி ஆகும். உங்கள் LCD வேலை செய்யவில்லை என்றால், அதன் சரியான முகவரியை நீங்கள் கண்டுபிடிக்க வேண்டியிருக்கலாம் (பொதுவான மாற்றுகள் 0x3F). இரண்டாவது அளவுரு, 16, உங்கள் LCD இல் ஒவ்வொரு வரிக்கும் 16 எழுத்துகள் இருப்பதைக் குறிப்பிடுகிறது, மூன்றாவது அளவுரு, 2, அதில் 2 வரிகள் இருப்பதைக் குறிக்கிறது.
#include <SharpIR.h>
#define IR A0 // ஷார்ப் IR சிக்னல் பின்னை வரையறுக்கவும்
#define model 430 // IR தொகுதியின் மாதிரி
// Robojax.com க்கான ஷார்ப் IR குறியீடு
// ir: உங்கள் சென்சார் இணைக்கப்பட்ட பின்
// model: உங்கள் சென்சாரை தீர்மானிக்கும் ஒரு முழு எண்:
/*
* GP2Y0A02YK0F --> "20150"
GP2Y0A21YK --> "1080"
GP2Y0A710K0F --> "100500"
GP2YA41SK0F --> "430"
*/
SharpIR SharpIR(IR, model);
இந்த வரிகள் ஷார்ப் IR சென்சாரை அமைக்கின்றன. #define IR A0 என்பது ஷார்ப் IR சென்சாரின் வெளியீட்டு கம்பி இணைக்கப்பட்ட Arduino அனலாக் பின்னை வரையறுக்கிறது. #define model 430 (வீடியோவில் 04:27) முக்கியமானது, ஏனெனில் இது உங்கள் ஷார்ப் IR சென்சாரின் சரியான மாதிரியைக் குறிப்பிடுகிறது. சென்சாரின் அனலாக் மின்னழுத்த வெளியீட்டிலிருந்து சென்டிமீட்டரில் தொலைவுக்கு சரியான கணித மாற்றத்தைப் பயன்படுத்த நூலகம் இந்த மாதிரி எண்ணைப் பயன்படுத்துகிறது. கருத்து தொகுதி பல்வேறு ஷார்ப் IR மாதிரிகள் மற்றும் அவற்றின் தொடர்புடைய முழு எண் மதிப்புகளை பட்டியலிடுகிறது, அவை இங்கே பயன்படுத்தப்பட வேண்டும். எடுத்துக்காட்டாக, நீங்கள் GP2Y0A21YK ஐப் பயன்படுத்தினால், 430 ஐ 1080 ஆக மாற்ற வேண்டும்.
void setup()
{
lcd.begin();
lcd.backlight();
}
setup() செயல்பாட்டில், lcd.begin() LCD ஐ துவக்குகிறது, மற்றும் lcd.backlight() அதன் பின்னொளியை இயக்குகிறது, இதனால் காட்சி தெரியும்.
void loop()
{
lcd.clear();
lcd.print("Robojax IR Test");
lcd.setCursor (0,1); // 2வது வரியின் தொடக்கத்திற்கு செல்லவும்
int dis=SharpIR.distance();// தொலைவை செ.மீ இல் பெறுகிறது
String distance = String(dis);
distance ="Distance: "+distance+"cm";
lcd.print(distance);
delay(500);
}
loop() செயல்பாட்டிற்குள்:
lcd.clear();காட்சியில் முந்தைய உரையை அழிக்கிறது.lcd.print("Robojax IR Test");முதல் வரியில் நிலையான செய்தியை அச்சிடுகிறது.lcd.setCursor (0,1);கர்சரை இரண்டாவது வரியின் தொடக்கத்திற்கு நகர்த்துகிறது (0 முதல் நெடுவரிசை, 1 இரண்டாவது வரி, வரிகள் 0-இல் தொடங்குவதால்).int dis=SharpIR.distance();SharpIR நூலகத்திலிருந்துdistance()செயல்பாட்டை அழைத்து, சென்சாரின் மதிப்பைப் படித்து, சென்டிமீட்டரில் உள்ள தூரத்தைக் குறிக்கும் முழு எண்ணாக மாற்றுகிறது (வீடியோவில் 05:06). இது அளவீட்டைப் பெறுவதற்கான முக்கிய செயல்பாடு ஆகும்.String distance = String(dis);முழு எண் தூரத்தை சரமாக மாற்றுகிறது, ஏனெனில் அச்சிடுவதற்கு முழு எண்களை நேரடியாக சரங்களுடன் இணைக்க முடியாது.distance ="Distance: "+distance+"cm";மதிப்புக்கு முன் "Distance: " மற்றும் பின் "cm" சேர்க்க சரத்தை வடிவமைக்கிறது.lcd.print(distance);வடிவமைக்கப்பட்ட தூர சரத்தை LCD இல் காட்டுகிறது.delay(500);500 மில்லி-வினாடி இடைவெளியை அறிமுகப்படுத்துகிறது (வீடியோவில் 06:00). Sharp சென்சாரின் துல்லியம் மற்றும் நிலைத்தன்மைக்கு இந்த தாமதம் முக்கியமானது. இந்த மதிப்பை நீங்கள் சரிசெய்யலாம்: அதிகரிப்பது துல்லியத்தை மேம்படுத்தலாம் ஆனால் புதுப்பிப்புகளை மெதுவாக்கும், குறைப்பது புதுப்பிப்புகளை வேகப்படுத்தும் ஆனால் துல்லியத்தை குறைக்கலாம்.
நேரடி திட்டம்/செயல்விளக்கம்
கூறுகள் இணைக்கப்பட்டு, குறியீடு உங்கள் Arduino க்கு பதிவேற்றப்பட்டவுடன், அமைப்பு தூரங்களை அளந்து காட்டத் தொடங்கும். இந்த திட்டம் அருகிலுள்ள வரம்புகளில் துல்லியமான அளவீடுகளை நிரூபிக்கிறது, எடுத்துக்காட்டாக, பொருள் 12 செ.மீ. இல் இருக்கும்போது 12 செ.மீ. (வீடியோவில் 00:31) மற்றும் 10 செ.மீ. க்கு 10 செ.மீ. (வீடியோவில் 00:37) காட்டுகிறது.
இருப்பினும், பொருள் மேலும் நகரும் போது, குறிப்பாக 15-20 செ.மீ. க்கு அப்பால், துல்லியம் குறையலாம். உதாரணமாக, 20 செ.மீ. இல், காட்சி 21 செ.மீ. (வீடியோவில் 07:06) காட்டலாம், மற்றும் 25 செ.மீ. இல், 28 அல்லது 29 செ.மீ. (வீடியோவில் 07:32) படிக்கலாம். இந்த நடத்தை இந்த அகச்சிவப்பு சென்சார்களின் சிறப்பியல்பு ஆகும். Sharp IR சென்சார் தூரத்துடன் மாறுபடும் ஒரு அனலாக் மின்னழுத்தத்தை வெளியிடுகிறது: தூரம் அதிகரிக்கும்போது, வெளியீட்டு மின்னழுத்தம் குறைகிறது (வீடியோவில் 07:56).
தூரத்திற்கும் மின்னழுத்த வெளியீட்டிற்கும் இடையிலான உறவு நேரியல் அல்லாதது, குறிப்பாக சென்சாரின் வரம்பின் உச்சநிலைகளில். இந்த நேரியல் அல்லாத தன்மைதான் `SharpIR` நூலகம் பயனுள்ளதாக இருப்பதற்கான காரணம், ஏனெனில் இந்த மாறுபட்ட மின்னழுத்தங்களை மிகவும் துல்லியமான தூர அளவீடுகளாக மாற்ற அளவுத்திருத்த தரவு உள்ளது. நீண்ட வரம்புகளில் அதிக துல்லியம் தேவைப்படும் பயன்பாடுகளுக்கு, அந்த தூரங்களுக்காக வடிவமைக்கப்பட்ட வேறு Sharp IR மாதிரியைத் தேர்ந்தெடுப்பது அல்லது தனிப்பயன் அளவுத்திருத்த வளைவுகளை செயல்படுத்துவது அவசியமாகலாம்.
அத்தியாயங்கள்
- [00:06] திட்ட அறிமுகம் மற்றும் கண்ணோட்டம்
- [01:10] Sharp IR சென்சார் விவரங்கள் மற்றும் பின் அவுட்
- [02:09] LCD I2C தொகுதி வயரிங்
- [02:58] Arduino குறியீடு விளக்கம்
- [06:36] தூர அளவீட்டு செயல்விளக்கம்
- [07:47] சென்சார் பண்புகள் மற்றும் துல்லிய வரம்புகள்
- [08:48] முடிவுரை மற்றும் வளங்கள்
/*
* Sharp IR 555 (infrared) distance measurement module with LCD1602 and I2C for Arduino
* Measures the distance in cm.
* Watch the video https://youtu.be/RHgMwtKLEnE
* *
Original library: https://github.com/guillaume-rico/SharpIR
// Written and updated by Ahmad for Robojax.com
// on January 3, 2018 at 20:01 in Ajax, Ontario, Canada
// 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/>.
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
///////////////////***** start of Sharp IR
#include <SharpIR.h>
#define IR A0 // define Sharp IR signal pin
#define model 430 // the model of the IR module
// Sharp IR code for Robojax.com
// ir: the pin where your sensor is attached
// model: an int that determines your sensor:
/*
* GP2Y0A02YK0F --> "20150"
GP2Y0A21YK --> "1080"
GP2Y0A710K0F --> "100500"
GP2YA41SK0F --> "430"
*/
SharpIR SharpIR(IR, model);
/////////////////////**** end of Sharp IR
void setup()
{
// Robojax code for LCD with I2C
// initialize the LCD,
lcd.begin();
// Turn on the backlight and print a message.
lcd.backlight();
// Robojax code for LCD with I2C
}
void loop()
{
//start of loop Robojax code for LCD with I2C
lcd.clear();
lcd.print("Robojax IR Test");
lcd.setCursor (0,1); // go to start of 2nd line
int dis=SharpIR.distance();// gets the distance in cm
String distance = String(dis);
distance ="Distance: "+distance+"cm";
lcd.print(distance);
//lcd.print(millis() / 1000);
delay(500);
//end of loopcode Robojax code for LCD with I2C
}
நீங்கள் தேவைப்படும் எண்ணங்கள்
-
அமேசான்Purchase LCD1602-I2C from Amazonamzn.to
-
அமேசான்
வளங்கள் மற்றும் மேற்கோள்கள்
இன்னும் எந்த வளங்களும் இல்லை.
கோப்புகள்📁
ஆர்டினோ நூலகங்கள் (ஜிப்)
-
Arduino library for sharp IR distance sensor
robojax-sharp_IR-master.zip
தரவியல் அட்டவணை (பிடிஎப்)
-
Sharp IR GP2Y0A21YK Infrared distance sensor datasheet
robojax_sharp_IR_GP2Y0A21YK_datasheet.pdf0.36 MB
பிரிட்சிங் கோப்பு
-
LCD LCD1602-I2C module with 4 wires
LCD1602-I2C.fzpz0.01 MB -
sharp ir sensor GP2Y0A02YK0F
sharp ir sensor GP2Y0A02YK0F .fzz
மற்ற கோப்புகள்
-
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