Кодты іздеу

Ардуино коды және 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 В
Қоректендіру кернеуі4.5–15 В
Шығыс тогы (арнаға)10 мА
Шыңдық ток (арнаға)60 мА
PWM жиілігі бойынша нұсқауЖоқ
Кіріс логикалық шектері0.8 В (төмен), 2.0 В (жоғары)
Кернеу төмендеуі / RDS(on) / қанығуЖоқ
Жылулық шектер–10-нан 60 °C-қа дейін
ҚаптамаПластикалық корпус
Ескертулер / нұсқаларҚашықтықты өлшеу диапазоны: 10–80 см

  • Датчикті зақымдамау үшін дұрыс қоректендіруді (4.5–15 В) қамтамасыз етіңіз.
  • Тұрақтылық үшін қуат түйреуіштерінің жанында разрядтаушы конденсаторларды қолданыңыз.
  • Кедергіні болдырмау үшін датчикті тікелей күн сәулесінен алыс ұстаңыз.
  • Дәл қашықтық көрсеткіштері үшін датчикті калибрлеңіз.
  • Қате байланысты болдырмау үшін TM1637 дисплейін дұрыс қосыңыз.
  • Жоғары токтарда жұмыс істегенде жылу таратқышты қарастырыңыз.

Сымдарды қосу нұсқаулары

Sharp IR қашықтық модулін және TM1637 дисплейін Arduino-ға қосу үшін мына қадамдарды орындаңыз:

Sharp IR модулінің қызыл сымын Arduino-дағы 5V түйреуішіне қосыңыз. Содан кейін қара сымды Arduino-дағы жерге (GND) түйреуішіне қосыңыз. Шығыс болып табылатын сары сымды Arduino-дағы аналогтық A0 түйреуішіне қосу керек. TM1637 дисплейі үшін CLK түйреуішін Arduino-ның цифрлық 2 түйреуішіне және DIO түйреуішін цифрлық 3 түйреуішіне қосыңыз. Бұл қондырғы Arduino-ға Sharp IR модулінен қашықтықты оқуға және деректерді TM1637 дисплейіне жіберуге мүмкіндік береді.

Аралық ақауларды болдырмау үшін барлық қосылымдардың сенімді екеніне көз жеткізіңіз. Егер сіз секіргіш сымдарды қолдансаңыз, олардың бос қосылыстарды болдырмау үшін дұрыс жалғанғанына көз жеткізіңіз.

Код мысалдары және түсіндірме

Төмендегі үзінді дисплей мен датчиктің қалай орнатылғанын көрсетеді:

#define CLK 2 // CLK-ны 2 түйреуішке қосыңыз
#define DIO 3 // DIO-ны 3 түйреуішке қосыңыз

SharpIR SharpIR(A0, model); // Sharp IR датчигін инициализациялау

Бұл бөлімде біз TM1637 дисплейінің түйреуіштерін анықтаймыз және аналогтық A0 түйреуішін көрсету арқылы Sharp IR датчигін инициализациялаймыз. Бұл Arduino-ға IR датчигінен деректерді қайдан оқу керектігін білу үшін өте маңызды.

Цикл функциясы қашықтықты өлшеуді алып, оны көрсетеді:

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 - Жиі кездесетін қателіктер және ақауларды жою

Суреттер

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
Тіл: 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


}

Сізге қажет болуы мүмкін нәрселер

Ресурстар мен сілтемелер

Файлдар📁

Arduino кітапханалары (zip)

Техникалық сипаттама (pdf)

Fritzing файлы

Пайдаланушының нұсқаулығы

Басқа файлдар