Tafuta Msimbo

Kodi ya Arduino na Video ya Moduli ya Umbali wa IR ya Sharp na Onyesho la LCD1602

Kodi ya Arduino na Video ya Moduli ya Umbali wa IR ya Sharp na Onyesho la LCD1602

Katika mafunzo haya, tutajifunza jinsi ya kutumia moduli ya Sharp ya kupima umbali kwa infrared pamoja na onyesho la LCD1602 kupima umbali kwa usahihi. Sensor ya Sharp IR itatoa umbali uliopimwa, ambao kisha utaonyeshwa kwenye LCD, ikiruhusu maoni ya wakati halisi. Kufikia mwisho wa mradi huu, utakuwa na mfumo unaofanya kazi ambao unaweza kupima umbali kutoka sentimita 4 hadi 30 (katika video saa 00:30).

Moduli za pato la Analog za Sharp: 
2 hadi 15 cm GP2Y0A51SK0F 
4 hadi 30 cm GP2Y0A41SK0F / mfululizo wa GP2Y0AF30 
10 hadi 80 cm GP2Y0A21YK0F 
10 hadi 150 cm GP2Y0A60SZLF 
20 hadi 150 cm GP2Y0A02YK0F 
100 hadi 550 cm GP2Y0A710K0F

Sharpt IR distance sensor

Sensor ya umbali ya Sharp IR hufanya kazi kwa kutoa mwanga wa infrared na kupima muda unaochukua kwa mwanga kurudi nyuma. Hii inaruhusu sensor kuhesabu umbali kulingana na kiasi cha mwanga kinachopokelewa. Onyesho la LCD1602 linatumiwa kuwasilisha taarifa hii kwa muundo unaosomeka. Mpangilio huu ni mdogo, na kuufanya kufaa kwa matumizi mbalimbali, ikiwa ni pamoja na robotiki na mifumo ya kupima umbali.

Vifaa Vimeelezwa

Kwa mradi huu, tutatumia sensor ya umbali ya Sharp IR na onyesho la LCD1602. Sensor ya Sharp IR ina nyaya tatu: nyaya nyekundu inaunganishwa na nguvu ya 5V, nyaya nyeusi inaunganishwa na ardhi, na nyaya ya njano ni ishara ya pato inayounganishwa kwenye pini ya analog kwenye Arduino. Onyesho la LCD1602 linahitaji pini kadhaa kwa mawasiliano, ambazo pia zitaunganishwa kwenye Arduino.

Onyesho la LCD1602 linatumia maktaba ya LiquidCrystal kusimamia data inayotumwa kwake, ikiruhusu udhibiti rahisi wa pato la onyesho. Maktaba hii inashughulikia mawasiliano kati ya Arduino na LCD, na kuifanya iwe rahisi kuchapisha maandishi na nambari.

Maelezo ya Datasheet

MtengenezajiSharp
Nambari ya sehemuGP2Y0A41SK0F
Voltage ya mantiki/IO5 V
Voltage ya usambazaji4.5 – 5.5 V
Masafa ya umbali wa kufanya kazi4 – 30 cm
Voltage ya pato (kwa 30 cm)0.4 V
Voltage ya pato (kwa 4 cm)3 V
Muda wa kujibu30 ms
KifurushiModuli ndogo
Vidokezo / lahajaMifano tofauti inapatikana kwa masafa tofauti

  • Hakikisha sensor ina nguvu sahihi ya 5 V.
  • Tumia ardhi ya pamoja kwa vifaa vyote.
  • Kuwa makini na voltage ya pato, ambayo inabadilika kulingana na umbali.
  • Fikiria kutumia kichujio kwa ishara ya pato ili kuimarisha usomaji.
  • Weka sensor ikiwa safi na bila vizuizi kwa vipimo sahihi.

Maagizo ya Uunganishaji wa Nyaya

Arduino Wiring Diagram of Sharp distance sensor with LCD1602-2
Arduino Wiring Diagram of Sharp distance sensor with LCD1602-2

Ili kuunganisha moduli ya umbali ya Sharp IR, unganisha nyaya nyekundu kwenye pini ya 5V kwenye Arduino. Kisha, unganisha nyaya nyeusi kwenye moja ya pini za ardhi (GND) kwenye Arduino. Nyaya ya njano, ambayo hutoa kipimo cha umbali, inapaswa kuunganishwa kwenye pini ya analog A0 kwenye Arduino. Kwa onyesho la LCD1602, unganisha pini kama ifuatavyo: rs kwa pini 12, en kwa pini 11, d4 kwa pini 5, d5 kwa pini 4, d6 kwa pini 3, na d7 kwa pini 2. Hakikisha miunganisho yote ni salama ili kuepuka matatizo ya nyaya zisizo imara (katika video saa 02:15).

Mifano ya Msimbo na Maelezo

Msimbo wa Arduino kwa mradi huu huanzisha LCD na sensor ya Sharp IR. Vitambulisho muhimu vinajumuisha IR, ambayo inafafanuliwa kama pini ya analog inayotumika kwa pato la Sharp IR, na model, ambayo inabainisha aina ya sensor ya Sharp inayotumika. Katika kazi ya usanidi, LCD inaanzishwa ili kuonyesha maudhui.

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

#define IR A0 // define Sharp IR signal pin
#define model 430 // the model of the IR module

Sehemu hii inaonyesha jinsi maktaba ya LiquidCrystal inavyoanzishwa na jinsi pini ya sensor ya IR na model inavyofafanuliwa. Model ni muhimu ili kuhakikisha maktaba inafanya kazi kwa usahihi na aina maalum ya sensor inayotumika.

Katika kazi ya kitanzi, umbali hupimwa kila mara na kuonyeshwa kwenye LCD. Kazi SharpIR.distance() inapata umbali kwa sentimita, ambao kisha unabadilishwa kuwa kamba na kuchapishwa kwenye LCD.

int dis = SharpIR.distance(); // gets the distance in cm
String distance = String(dis);
distance = "Distance: " + distance + "cm";
lcd.print(distance);

Sehemu hii ya msimbo inapata usomaji wa umbali kutoka kwa sensor na kuubadilisha kwa ajili ya kuonyeshwa. Usasishaji wa mara kwa mara wa onyesho unatoa maoni ya wakati halisi kuhusu umbali uliopimwa na sensor ya Sharp IR.

Maonyesho / Nini cha Kutarajia

Baada ya kukamilisha uunganishaji wa nyaya na kupakia msimbo, unapaswa kuona LCD ikionyesha umbali uliopimwa na sensor ya Sharp IR. Unaweza kujaribu mpangilio kwa kuweka kizuizi kwa umbali mbalimbali. Usomaji unapaswa kuwa sahihi ndani ya masafa maalum ya sentimita 4 hadi 30. Kuwa makini kwamba usomaji unaweza kuwa usioaminika sana kwenye ncha za masafa haya (katika video saa 04:50).

Vidokezo vya Muda wa Video

  • 00:00 Utangulizi
  • 02:15 Maagizo ya uunganishaji wa nyaya
  • 04:50 Maonyesho ya mpangilio

Bilder

Arduino Wiring Diagram of Sharp distance sensor with LCD1602-2
Arduino Wiring Diagram of Sharp distance sensor with LCD1602-2
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
Sharpt IR distance sensor
Sharpt IR distance sensor GP2Y0A21YK0F
71-This is the Arduino code and video for a Sharp Infrared Sensor Module with LCD1602.
Språk: C++
/*
 * Sharp IR (infrared) distance measurement module for Arduino
 * Measures the distance in cm and displays it on LCD1602 (without the I2C module)

 * Original library: https://github.com/guillaume-rico/SharpIR
 
 * Watch video instructions for this code: https://youtu.be/NjUOEAoKY7A
 * 
 * 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/>.

*/



// original source https://www.arduino.cc/en/Tutorial/HelloWorld
// include the library code:
#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

///////////////////***** start of Sharp IR
//Sharp IR library source: https://github.com/guillaume-rico/SharpIR
#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 LCD1602 Test 
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  // Robojax Sharp IR with LCD1602 Test 
}

void loop() {
   lcd.clear();
  // Robojax.com Sharp IR Test 
    lcd.setCursor(0, 0);
    lcd.print("Robojax IR Test");
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
 int dis=SharpIR.distance();// gets the distance in cm
 String distance = String(dis);
 distance ="Distance: "+distance+"cm";
 lcd.print(distance); 



  delay(500);
  // Robojax.com Sharp IR Test  
}

Resurser och referenser

Filer📁

Arduino-bibliotek (zip)

Fritzing-fil