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.

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ı
| Üretici | Sharp |
|---|---|
| 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ılavuzu | Yok |
| Giriş mantık eşikleri | 0,8 V (düşük), 2,0 V (yüksek) |
| Gerilim düşümü / RDS(on) / doyum | Yok |
| Termal sınırlar | –10 ila 60 °C |
| Paket | Plastik kasa |
| Notlar / varyantlar | Mesafe ö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
/*
* 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
-
Amazon
Kaynaklar ve referanslar
-
DışSharp IR GP2Y0A51SK0F datasheet (PDF)global.sharp
Dosyalar📁
Arduino Kütüphaneleri (zip)
-
TM1637 Arduino Library
TM1637_library.zip1.36 MB -
Arduino library for sharp IR distance sensor
robojax-sharp_IR-master.zip
Veri Sayfası (pdf)
-
Sharp GP2Y0A21YK Kızılötesi mesafe sensörü veri sayfası
robojax_sharp_IR_GP2Y0A21YK_datasheet.pdf0.36 MB
Fritzing Dosyası
-
TM1637 Seven Segment module
TM1637.fzpz0.01 MB -
sharp ir sensor GP2Y0A02YK0F
sharp ir sensor GP2Y0A02YK0F .fzz
Kullanım Kılavuzu
-
TM1637 Ekran Kılavuzu
robojax-TM1637_display_manual.pdf0.31 MB
Diğer dosyalar
-
Sharp GP2Y0A41SK0F Kızılötesi mesafe sensörü veri sayfası
robojax_sharp_IR_GP2Y0A41SK0F_datasheet.pdf0.84 MB -
Sharp GP2Y0A710K0F Kızılötesi mesafe sensörü veri sayfası
robojax_sharp_IR_GP2Y0A710K0F_datasheet.pdf0.33 MB