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

За овој проект, ќе треба да ги разберете жиците и кодот што ја управува интеракцијата помеѓу компонентите. 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 - Вообичаени грешки и решавање проблеми
/*
* 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
-
Amazon
Resources & references
-
ExternalSharp IR GP2Y0A51SK0F datasheet (PDF)global.sharp
Files📁
Arduino Libraries (zip)
-
TM1637 Arduino Library
TM1637_library.zip1.36 MB -
Arduino library for sharp IR distance sensor
robojax-sharp_IR-master.zip
Datasheet (pdf)
-
Sharp IR GP2Y0A21YK Infrared distance sensor datasheet
robojax_sharp_IR_GP2Y0A21YK_datasheet.pdf0.36 MB
Fritzing File
-
TM1637 Seven Segment module
TM1637.fzpz0.01 MB -
sharp ir sensor GP2Y0A02YK0F
sharp ir sensor GP2Y0A02YK0F .fzz
User’s Manual
-
TM1637 Display Manual
robojax-TM1637_display_manual.pdf0.31 MB
Other files
-
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