Пребарување код

Ардуино код и видео за Sharp IR модул за растојание со LCD1602 дисплеј

Ардуино код и видео за Sharp IR модул за растојание со LCD1602 дисплеј

Во ова упатство, ќе научиме како да го користиме Sharp инфрацрвениот модул за растојание заедно со LCD1602 дисплеј за прецизно мерење на растојанија. Sharp IR сензорот ќе го излегува измереното растојание, кое потоа ќе биде прикажано на LCD-от, овозможувајќи повратна информација во реално време. До крајот на овој проект, ќе имате функционална поставка што може да мери растојанија од 4 до 30 сантиметри (во видеото на 00:30).

Sharp аналогни излезни модули: 
2 до 15 cm GP2Y0A51SK0F 
4 до 30 cm GP2Y0A41SK0F / GP2Y0AF30 серија 
10 до 80 cm GP2Y0A21YK0F 
10 до 150 cm GP2Y0A60SZLF 
20 до 150 cm GP2Y0A02YK0F 
100 до 550 cm GP2Y0A710K0F

Sharpt IR distance sensor

Sharp IR сензорот за растојание работи така што емитува инфрацрвена светлина и го мери времето потребно за светлината да се одбие назад. Ова му овозможува на сензорот да го пресмета растојанието врз основа на количината на примена светлина. LCD1602 дисплејот се користи за прикажување на оваа информација во читлив формат. Поставката е компактна, што ја прави погодна за различни апликации, вклучувајќи роботика и системи за мерење растојание.

Објаснување на хардверот

За овој проект, ќе ги користиме Sharp IR сензорот за растојание и LCD1602 дисплејот. Sharp IR сензорот има три жици: црвената жица се поврзува на 5V напојување, црната жица се поврзува на маса (ground), а жолтата жица е излезниот сигнал што се поврзува на аналоген пин на Arduino-то. LCD1602 дисплејот бара неколку пинови за комуникација, кои исто така ќе бидат поврзани со Arduino-то.

LCD1602 дисплејот користи LiquidCrystal библиотека за управување со податоците што му се испраќаат, овозможувајќи лесна контрола на излезот на дисплејот. Оваа библиотека ја управува комуникацијата помеѓу Arduino-то и LCD-от, што го прави едноставно печатењето текст и броеви.

Детали од техничката документација

ПроизводителSharp
Број на делGP2Y0A41SK0F
Логички/IO напон5 V
Напон на напојување4.5 – 5.5 V
Опсег на работно растојание4 – 30 cm
Излезен напон (на 30 cm)0.4 V
Излезен напон (на 4 cm)3 V
Време на одговор30 ms
ПакетКомпактен модул
Белешки / варијантиДостапни се различни модели за различни опсези

  • Осигурете се дека сензорот е правилно напојуван со 5 V.
  • Користете заедничка маса (ground) за сите компоненти.
  • Бидете внимателни со излезниот напон, кој варира со растојанието.
  • Размислете за користење филтер за излезниот сигнал за стабилизирање на читањата.
  • Чувајте го сензорот чист и без пречки за точни мерења.

Инструкции за поврзување

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

За да го поврзете Sharp IR модулот за растојание, поврзете ја црвената жица на 5V пинот на Arduino-то. Потоа, поврзете ја црната жица на еден од пиновите за маса (GND) на Arduino-то. Жолтата жица, која го излегува мерењето на растојанието, треба да се поврзе на аналогниот пин A0 на Arduino-то. За LCD1602 дисплејот, поврзете ги пиновите на следниов начин: rs на пин 12, en на пин 11, d4 на пин 5, d5 на пин 4, d6 на пин 3 и d7 на пин 2. Осигурете се дека сите врски се цврсти за да избегнете проблеми со лабави жици (во видеото на 02:15).

Примери на код и објаснување

Arduino кодот за овој проект ги иницијализира LCD-от и Sharp IR сензорот. Клучните идентификатори вклучуваат IR, кој е дефиниран како аналоген пин што се користи за Sharp IR излезот, и model, кој го специфицира типот на Sharp сензорот што се користи. Во функцијата за поставување (setup), LCD-от се иницијализира за прикажување содржина.

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 // дефинирај Sharp IR сигнален пин
#define model 430 // моделот на IR модулот

Овој извадок покажува како се иницијализира LiquidCrystal библиотеката и како се дефинираат пинот и моделот на IR сензорот. Моделот е критичен за да се осигура дека библиотеката функционира правилно со специфичниот тип на сензор што се користи.

Во функцијата за јамка (loop), растојанието континуирано се мери и се прикажува на LCD-от. Функцијата SharpIR.distance() го добива растојанието во сантиметри, кое потоа се форматира во низа и се печати на LCD-от.

int dis = SharpIR.distance(); // го добива растојанието во cm
String distance = String(dis);
distance = "Растојание: " + distance + "cm";
lcd.print(distance);

Овој коден фрагмент го добива читањето на растојанието од сензорот и го форматира за приказ. Континуираното ажурирање на дисплејот дава повратна информација во реално време за растојанието измерено од Sharp IR сензорот.

Демонстрација / Што да очекувате

По завршувањето на поврзувањето и поставувањето на кодот, треба да видите како LCD-от го прикажува растојанието измерено од Sharp IR сензорот. Можете да ја тестирате поставката со поставување пречка на различни растојанија. Читањата треба да бидат точни во специфицираниот опсег од 4 до 30 сантиметри. Имајте предвид дека читањата може да станат помалку сигурни на крајните точки од овој опсег (во видеото на 04:50).

Временски ознаки од видеото

  • 00:00 Вовед
  • 02:15 Инструкции за поврзување
  • 04:50 Демонстрација на поставката

Слики

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.
Јазик: 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  
}

Ресурси и референци

Датотеки📁

Arduino библиотеки (zip)

Fritzing датотека