Search Code

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

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

Во ова упатство, ќе истражиме како да го користиме Sharp инфрацрвениот модул за растојание заедно со TM1637 дисплејот за мерење и визуелно прикажување на растојанија. Поставката ви овозможува точно да мерите растојанија и да ги прикажувате во реално време на TM1637 модулот. До крајот на ова упатство, ќе имате функционален проект кој може да мери растојанија и да ги прикажува на дисплејот.

Sharpt IR distance sensor

За овој проект, ќе треба да ги разберете жиците и кодот што ја управува интеракцијата помеѓу компонентите. Sharp IR сензорот за растојание ја комуницира измерената далечина до Arduino, кој пак го ажурира TM1637 дисплејот. Ова упатство ќе ги детализира инструкциите за поврзување и ќе обезбеди увид во кодот што прави сè да работи непречено (во видео на 00:00).

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

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

TM1637 дисплејот е четирицифрен 7-сегментен дисплеј кој се контролира преку два пина: пин за часовник и пин за влез/излез на податоци. Овој дисплеј овозможува лесна визуелизација на отчитувањата на растојанието од Sharp IR модулот, што го прави лесен за употреба и практичен за различни апликации.

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

ПроизводителSharp
Број на делGP2Y0A41SK0F
Логички/IO напон5 V
Напон на напојување4.5–15 V
Излезна струја (по канал)10 mA
Врвна струја (по канал)60 mA
Насоки за PWM фреквенцијаН/П
Прагови на влезна логика0.8 V (ниско), 2.0 V (високо)
Пад на напон / RDS(on) / заситувањеН/П
Термички граници–10 до 60 °C
ПакетПластична кутија
Белешки / варијантиОпсег на мерење растојание: 10–80 cm

  • Обезбедете соодветно напојување (4.5–15 V) за да избегнете оштетување на сензорот.
  • Користете раздвојни кондензатори блиску до пиновите за напојување за стабилност.
  • Чувајте го сензорот подалеку од директна сончева светлина за да спречите пречки.
  • Калибрирајте го сензорот за точни отчитувања на растојанието.
  • Поврзете го TM1637 дисплејот правилно за да избегнете погрешна комуникација.
  • Размислете за ладење ако работите со повисоки струи.

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

За да ги поврзете Sharp IR модулот за растојание и TM1637 дисплејот со Arduino, следете ги овие чекори:

Поврзете ја црвената жица на Sharp IR модулот со 5V пинот на Arduino. Потоа, поврзете ја црната жица со пинот за заземјување (GND) на Arduino. Жолтата жица, која е излезот, треба да се поврзе со аналогниот пин A0 на Arduino. За TM1637 дисплејот, поврзете го CLK пинот со дигиталниот пин 2 и DIO пинот со дигиталниот пин 3 на Arduino. Оваа поставка му овозможува на Arduino да го чита растојанието од Sharp IR модулот и да ги испраќа податоците до TM1637 дисплејот.

Проверете дали сите врски се безбедни за да избегнете повремени проблеми. Ако користите жици за поврзување, проверете дали се соодветно поврзани за да избегнете лабави врски.

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

Следниот извадок покажува како се поставени дисплејот и сензорот:

#define CLK 2 // поврзете CLK на пин 2
#define DIO 3 // поврзете DIO на пин 3

SharpIR SharpIR(A0, model); // Иницијализирајте Sharp IR сензор

Во овој дел, ги дефинираме пиновите за TM1637 дисплејот и го иницијализираме Sharp IR сензорот со одредување на аналогниот пин A0. Ова е клучно за Arduino да знае од каде да ги чита податоците од IR сензорот.

Функцијата loop го зема мерењето на растојанието и го прикажува:

int dis = SharpIR.distance();  // земете го растојанието
display.showNumberDec(dis, false, 3, 1); // прикажете го растојанието

Овде, растојанието се чува во променливата dis, и TM1637 дисплејот се ажурира за да ја прикаже оваа вредност. Параметрите во showNumberDec контролираат како бројот се прикажува, обезбедувајќи правилно форматирање.

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

Откако ќе поврзете сè и ќе го поставите кодот, треба да го видите растојанието прикажано на TM1637. Како што движите објект поблиску или подалеку од сензорот, дисплејот ќе се ажурира во реално време. Сепак, бидете свесни за потенцијални неточности на поголеми растојанија, како што е забележано во видеото (во видео на 12:00).

Вообичаени грешки вклучуваат обратен поларитет на врските за напојување и лебдечки влезови на сензорот, што може да доведе до нестабилни отчитувања. Проверете ја вашата поставка темелно пред да се потпрете на неа за критични мерења.

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

  • 00:00 - Вовед во проектот
  • 01:30 - Инструкции за поврзување
  • 03:00 - Објаснување на кодот
  • 05:30 - Демонстрација на мерење растојание
  • 08:00 - Вообичаени грешки и решавање проблеми

Images

Sharpt IR distance sensor GP2Y0A21YK0F
Sharpt IR distance sensor GP2Y0A21YK0F
Sharpt IR distance sensor
Sharpt IR distance sensor GP2Y0A21YK0F
68-Sharp IR (infrared) module with TM1637 Display for Arduino
Language: C++
/*
 * Sharp IR (infrared) distance measurement module with TM1637 Display for Arduino
 * Measures the distance in cm.

 * Original library: https://github.com/guillaume-rico/SharpIR
  * Original code for TM1637 from https://github.com/avishorp/TM1637
  
 * Watch video instructions for this code: https://youtu.be/dnjY9n927HI

 * Written by Ahmad Shamshiri on Feb 03, 2018 at 12:32
 * 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/>.

*/
#include <Arduino.h>
#include <TM1637Display.h>

// Display Module connection pins (Digital Pins)
#define CLK 2 // connect CLK to pin 2
#define DIO 3 // connect DIO to pin 3

// The amount of time (in milliseconds) between display
#define TEST_DELAY   100  
  uint8_t blank[] = { 0x0, 0x0, 0x0, 0x0 };// blank screen

TM1637Display display(CLK, DIO);

///////////////////***** 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()
{
  // Sharp IR with TM1637 Display code for Robojax.com
   display.setBrightness(0x0f);// set the brightness at max
}

void loop()
{
  // Sharp IR with TM1637 Display code for Robojax.com
  display.setSegments(blank);// clear the screen
  
  int dis=SharpIR.distance();  // this returns the distance to the object you're measuring

  display.showNumberDec(dis, false, 3, 1);// display the distance
  delay(TEST_DELAY);//delay between display
 // Sharp IR with TM1637 Display code for Robojax.com


}

Things you might need

Resources & references

Files📁

Arduino Libraries (zip)

Datasheet (pdf)

Fritzing File

User’s Manual

Other files