Search Code

Arduino kodu ve Sharp IR mesafe modülü için TM1637 ekranlı video

Arduino kodu ve Sharp IR mesafe modülü için TM1637 ekranlı video

Bu eğitimde, Sharp kızılötesi mesafe modülünü TM1637 ekranla birlikte kullanarak mesafeleri nasıl ölçeceğimizi ve görsel olarak nasıl temsil edeceğimizi keşfedeceğiz. Bu kurulum, mesafeleri doğru bir şekilde ölçmenizi ve bunları TM1637 modülünde gerçek zamanlı olarak görüntülemenizi sağlar. Bu rehberin sonunda, mesafeleri ölçebilen ve bunları ekranda gösterebilen çalışan bir projeye sahip olacaksınız.

Sharpt IR distance sensor

Bu proje için, bileşenler arasındaki etkileşimi yönlendiren bağlantı şemasını ve kodu anlamanız gerekecektir. Sharp IR mesafe sensörü, ölçülen mesafeyi Arduino'ya iletir ve Arduino da TM1637 ekranını günceller. Bu eğitim, bağlantı talimatlarını ayrıntılı olarak açıklayacak ve her şeyin sorunsuz çalışmasını sağlayan kod hakkında bilgiler sunacaktır (videoda 00:00'da).

Donanım Açıklaması

Bu projenin ana bileşenleri Sharp IR mesafe modülü ve TM1637 ekrandır. Sharp IR modülü, yayılan ışığın geri yansıması için geçen süreyi hesaplayarak bir nesneye olan mesafeyi ölçmek için kızılötesi ışık kullanır. Ölçülen mesafeye göre değişen analog bir çıkış sağlar.

TM1637 ekran, bir saat pini ve bir veri giriş/çıkış pini olmak üzere iki pin üzerinden kontrol edilen dört haneli 7 segmentli bir ekrandır. Bu ekran, Sharp IR modülünden gelen mesafe okumalarının kolayca görselleştirilmesini sağlar ve çeşitli uygulamalar için kullanıcı dostu ve pratiktir.

Veri Sayfası Detayları

ÜreticiSharp
Parça numarasıGP2Y0A41SK0F
Mantık/IO voltajı5 V
Besleme voltajı4,5–15 V
Çıkış akımı (kanal başına)10 mA
Tepe akımı (kanal başına)60 mA
PWM frekans kılavuzuYok
Giriş mantık eşikleri0,8 V (düşük), 2,0 V (yüksek)
Gerilim düşümü / RDS(on) / doyumYok
Termal sınırlar–10 ila 60 °C
PaketPlastik kasa
Notlar / varyantlarMesafe ölçüm aralığı: 10–80 cm

  • Sensöre zarar vermemek için doğru güç kaynağını (4,5–15 V) sağlayın.
  • Stabilite için güç pinlerinin yakınına dekuplaj kapasitörleri kullanın.
  • Paraziti önlemek için sensörü doğrudan güneş ışığından uzak tutun.
  • Doğru mesafe okumaları için sensörü kalibre edin.
  • İletişim hatalarını önlemek için TM1637 ekranını doğru şekilde bağlayın.
  • Daha yüksek akımlarda çalışıyorsanız ısı emici kullanmayı düşünün.

Bağlantı Talimatları

Sharp IR mesafe modülünü ve TM1637 ekranını Arduino'ya bağlamak için şu adımları izleyin:

Sharp IR modülünün kırmızı telini Arduino'daki 5V pinine bağlayın. Ardından, siyah teli Arduino'daki toprak (GND) pinine bağlayın. Çıkış olan sarı tel, Arduino'daki analog pin A0'a bağlanmalıdır. TM1637 ekranı için, CLK pinini dijital pin 2'ye ve DIO pinini Arduino'nun dijital pin 3'üne bağlayın. Bu kurulum, Arduino'nun Sharp IR modülünden mesafeyi okumasını ve verileri TM1637 ekranına göndermesini sağlar.

Ara sıra oluşabilecek sorunları önlemek için tüm bağlantıların güvenli olduğundan emin olun. Jumper kablolar kullanıyorsanız, gevşek bağlantıları önlemek için uygun şekilde bağlandıklarından emin olun.

Kod Örnekleri ve Açıklama

Aşağıdaki alıntı, ekranın ve sensörün nasıl kurulduğunu gösterir:

#define CLK 2 // CLK'yi pin 2'ye bağla
#define DIO 3 // DIO'yu pin 3'e bağla

SharpIR SharpIR(A0, model); // Sharp IR sensörünü başlat

Bu bölümde, TM1637 ekranı için pinleri tanımlıyoruz ve analog pin A0'ı belirterek Sharp IR sensörünü başlatıyoruz. Bu, Arduino'nun IR sensöründen veriyi nereden okuyacağını bilmesi için çok önemlidir.

Döngü fonksiyonu mesafe ölçümünü alır ve görüntüler:

int dis = SharpIR.distance();  // mesafeyi al
display.showNumberDec(dis, false, 3, 1); // mesafeyi görüntüle

Burada, mesafe dis değişkeninde saklanır ve TM1637 ekranı bu değeri gösterecek şekilde güncellenir. showNumberDec içindeki parametreler sayının nasıl görüntüleneceğini kontrol ederek doğru biçimlendirilmesini sağlar.

Gösterim / Beklentiler

Her şeyi bağladıktan ve kodu yükledikten sonra, mesafenin TM1637 üzerinde görüntülendiğini görmelisiniz. Bir nesneyi sensöre yaklaştırdıkça veya uzaklaştırdıkça, ekran gerçek zamanlı olarak güncellenecektir. Ancak, videoda belirtildiği gibi (videoda 12:00'de) daha büyük mesafelerde olası doğruluk hatalarının farkında olun.

Yaygın tuzaklar arasında güç bağlantılarında ters polarite ve sensördeki yüzen girişler yer alır; bu da düzensiz okumalara yol açabilir. Kritik ölçümler için güvenmeden önce kurulumunuzu iyice test ettiğinizden emin olun.

Video Zaman Damgaları

  • 00:00 - Projeye giriş
  • 01:30 - Bağlantı talimatları
  • 03:00 - Kod açıklaması
  • 05:30 - Mesafe ölçümünün gösterimi
  • 08:00 - Yaygın tuzaklar ve sorun giderme

Görseller

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
Dil: 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


}

İhtiyacın olabileceğini düşünüyor

Kaynaklar ve referanslar

Dosyalar📁

Arduino Kütüphaneleri (zip)

Veri Sayfası (pdf)

Fritzing Dosyası

Kullanım Kılavuzu

Diğer dosyalar