Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

28 Nisan 2021 Çarşamba

RCWL0516 Arduino ile Mikrodalga Mesafe Sensörü Modülü

 

RCWL0516 Arduino ile Mikrodalga Mesafe Sensörü Modülü


Mesafe sensörleri, yüksek frekanslar göndererek hedefin mesafesini ölçmek için kullanılır. Mikrodalgalar, iletişim amacıyla kullanılan VHF / UHF bantlarına sahip elektromanyetik dalgalardır. Kısa mikrodalgalar, özellikle radarlarda, alarm sistemlerinde ve insan vücudu algılamada algılama uygulamalarında kullanılır. RCWL0516, hareket eden bir kişi tarafından yayılan kızılötesi ışığı kullanan pasif kızılötesi hareket sensörlerinin yerini almak üzere oluşturulmuş bir mikrodalga mesafe sensörüdür. RCWL0516, hareketli nesneleri algılamak için bir doppler efekti tekniği kullanır.

Bu eğitim, bileşenlerini, bağlantılarını, konfigürasyonunu, özelliklerini, teknik özelliklerini, arayüzünü, 2D modelini ve uygulamalarını tartışacaktır.

RCWL0516 Bileşenleri

Aşağıdaki şekil bir RCWL0516 modülünün bileşenlerini göstermektedir:

RCWL0516 Mikrodalga Mesafe Sensörü Modülü bileşenleri

Modül, bir Giriş / Çıkış bloğu, bir RCWL0516 IC ve RF Anteni ve bazı isteğe bağlı bağlantılara sahip bir Amplifikatör bloğundan oluşur.

RCWL0516 Pin Çıkışı

RCWL0516 Mikrodalga Mesafe Sensörü Dedektör Modülünün pin çıkışı aşağıdadır:

RCWL0516 pin çıkışı diyagramı Mikrodalga Mesafe Sensörü Modülü

PIN konfigürasyonu

Tablodaki pim yapılandırma ayrıntısı aşağıda belirtilmiştir:

NumaraPin AdıFonksiyon
13V33.3V çıkış pini
2GNDZemin pimi
3DIŞARIAnalog sensör çıkış pini
4VINGüç Kaynağı pimi
5CDSSensör devre dışı bırakma pimi

Özellikler ve Spesifikasyonlar

  • Giriş Çalışma Voltajı: 4 - 28 Volt
  • Çalışma Frekansı: 3.2 GHz
  • Çalışma Akımı: 2.8 - 3.0 mAmper
  • Güç İletimi: 20 - 30 watt
  • Çıkış pimi Voltajı: 3,3 Volt
  • Çıkış pimi Akımı: 100 Amper
  • Çalışma Sıcaklığı: -200C - 800C
  • Aralık: 3 - 7 metre
  • Bazı ayrıntılı özellikleri şunlardır:
  • Çıkış pini, bir hareket algılandığında YÜKSEK (3,3V) olur.
  • 3.3V çıkış pini, 2-3 saniyelik sonlu bir YÜKSEK süreye sahiptir.
  • CdS (Fotodirenç) pini 0,7 Volt'tan az ise, çıkış pimi DÜŞÜK durumda kalır.
  • Geniş çalışma voltaj aralığı
  • Kör açı tespitinden yoksun

Giriş / Çıkış Bloğu: Bu blok, mikro denetleyicilere ve diğer elektronik bileşenlere güç kaynağı pinleri ve I / O pin bağlantıları içerir.

RCLW0516 IC: IC, doppler efekti tekniğinin uygulanmasından sorumlu bir sistemdir ve PIR'den daha az hataya eğilimlidir.

RF Amplifikatörü ve Anten: Modülün radyo dalgalarını güçlendirmek için bir amplifikatör ile gelen dalgaları yakalamak için dahili bir anten.

Kondansatörler ve NPN Transistör: Kondansatörlerin yanında bir NPN transistörü ve bir indüktör, belirli bir yüksek frekansta salınımlar üretir. Basit bir deyişle, bir Colpitts osilatörü olarak çalışır. Kondansatörler ayrıca sinyallerin ayrıştırılmasından ve filtrelenmesinden sorumludur.

CDS: Modülün yalnızca karanlıkta çalışmasını sağlamak için modüle bir ışık direnci eklemek için bir pim. Aynı zamanda bir etkinleştirme / devre dışı bırakma kontrolü olarak da işlev görür.

Modülü ihtiyaca göre değiştirmek için C-TM, R-CDS, R-GN kullanılır. C-TM, bir kondansatör ilavesiyle pinin tetikleme süresini uzatmak için kullanılır.

Foto direncin sınır değerini değiştirmek için, R-CDS uygun bir dirence bağlanmalıdır. Son olarak, R-GN, sensörün ölçüm mesafesini ayarlamamıza yardımcı olabilir. Bir dirence takmak, sensörün menzilini azaltabilir.

RCWL0516 nasıl çalışır?

Entegre anten, mikrodalga sinyallerini yakalar ve üretir. Anten yansıyan bir sinyal aldığında, bunu miksere / amplifikatöre gönderir. İletilen ve yansıtılan sinyali karıştırır ve aralarındaki fark daha sonra işlenmek üzere IC'ye iletilir. IC, gövde ile sensör arasındaki mesafeyi gösterecek bir çıkış voltaj sinyali gönderecektir.

Arduino ile kullanımı

Bu hareket algılama sensörü modülünü mikro denetleyicilerle arayüzlemek kolaydır. Gösteri amacıyla, bu eğitimde bir Arduino kullanacağız RCWL0516 ile Arduino'nun arayüzünü kurmak bağlantılar yapmaktır. Bağlantı şeması aşağıda gösterilmiştir:

Arduino ile arayüz oluşturan RCWL0516 mikrodalga sensörü

Pin konfigürasyonu aşağıdaki gibidir:

RCWL0516 ModülüArduino UNO
GNDGND
VIN5V
DIŞARID10

CDS pini, modüle bir foto direnç eklemek ve sensörün yalnızca karanlıkta çalışmasını sağlamak için bir seçenek sunar. Kablo bağlantılarını buna göre yapın. Bağlantıları yaptıktan sonra Arduino kodunu yükleyin. Sonuçları gözlemlemek için Seri Monitörü açın. Bir hareket algılanır algılanmaz, seri monitör bir mesaj gösterecektir.

Arduino Kodu

Bu hareket dedektör sensörü bir hareket algıladığında çıkış pinini 2-3 saniye aktif yüksek duruma tetikler ve ardından tekrar aktif düşük duruma geçer.

int detectPin = 10;
bool detect = false;
int led = 13;
void setup() {
 Serial.begin(115200);
 Serial.println("Starting...\n");
 pinMode (detectPin, INPUT);
 pinMode (led, OUTPUT);
}

void loop() {

 detect = digitalRead(detectPin);
 if(detect == true) {
 digitalWrite(led, HIGH);
 Serial.println("Movement detected");
 }
 else {
 digitalWrite(led, LOW);
 }
 delay(1000);
}

Yukarıdaki kodun çıktısını görmek için kodu Arduino kartına yükleyin. Bundan sonra, 115200 baud hızı seçerek Arduino IDE seri monitörü açın. Şimdi, RCWL0516 mikrodalga sensörünün önünde bir hareket olduğunda, sensörü algılayacak ve Arduino seri monitöründe "Hareket algılandı" mesajını gösterecektir. Ayrıca Arduino'nun D13 pinine bağlı olan onboard led de yanar.

Arduino terminalinde RCWL0516 sensör çıkışı

RCWL0516 Alternatif Seçenekler

  • SEN0192
  • HC-SR04

Başvurular

  • Ev Otomasyon sistemleri
  • Radarlar
  • Hırsız alarm sistemleri

Bu modül, hırsız alarmlarında ve güvenlik ışıklarında yaygın olarak kullanılan tanınmış PIR (Pasif Kızılötesi Sensör) hareket sensörlerine bir alternatif olarak tasarlanmıştır Çip üzerinde 3,3V sağlayan dahili bir voltaj regülatörü de dahil olmak üzere tüm temel elektronik bileşenleri içerir.

PIR sensörü gibi, bu sensör de yalnızca kendi algılama menzilinde hareket eden bir şeyi algılar, ancak hareket eden bir kişiden gelen siyah cisim radyasyonunu (kızılötesi) algılamak yerine, bu sensör, herhangi bir türü algılamak için bir "Mikrodalga Doppler radarı" tekniği kullanır. hareketli nesneler.

Boyut:

Yaklaşık 7 metre hassasiyet aralığına sahiptir. Tetiklendiğinde, TTL seviyesi çıkış pini (OUT), inaktif durumuna (DÜŞÜK) dönmeden önce 2 ila 3 saniye süreyle LOW'dan (0 V) HIGH'a (3,3 V) değişir.

Özellikler:

1. Çalışma Voltajı: 4-28V
2. Çalışma Akımı: 2.8mA (tipik); 3mA (maks.)
3. Algılama Mesafesi: 5-7m
4. İletim Gücü: 20mW (tipik); 30mW (max)
5. Çıkış Voltajı: 3.2-3.4V
6. Çıkış Voltajı Akım Kapasitesi: 100mA
7. Tetikleme Modu: Tekrar Tetikleme
8. Düşük Çıkış Seviyesi: 0V
9. Çıkış Seviyesi Yüksek: 3.3V
10. Çalışma Sıcaklığı: -20º 80º Celsius'a
11. Saklama Sıcaklığı: -40º - 100º Santigrat

Özelliklerinden görüldüğü gibi, sensör geniş bir güç aralığını işleyebilir: 4 ila 28 V arası Çıkış pimi, işitsel veya görsel bir göstergeyi çalıştırma veya hatta onu girişe bağlama gibi çok sayıda görev için kullanılabilir. işlem için bir mikro denetleyicinin.

Takıldığında, modülün önünde metal parçalardan kaçının. Benzer şekilde, modülün önünde ve arkasında daima en az 1 cm boş alan bırakın.

Çıkış pimleri:

CDS - Sensör devre dışı bırakma girişi (düşük = devre dışı)
VIN - 4 ila 28V DC güç girişi
OUT - HIGH (3.3V) hareket algılandı / DÜŞÜK (0V) devre dışı
GND - Toprak / 0V
3V3 - Düzenlenmiş DC çıkışı (100mA maks.)

LDR isteğe bağlıdır. Takılıysa, gün ışığı aldığında modülün çalışmasını engeller. Sensör güvenlik ışıklarını açmak için kullanıldığında yararlı bir işlev haline geldiği açıktır, çünkü gün ışığı olduğunda açmayı durduracaktır çünkü gün ışığı ile aydınlatma gerekli değildir.

Algılama mesafesi ve bir algılama olduğunda modül çıkışının süresi, devre kartının arkasındaki bazı lehim noktalarına pasif bileşenler eklenerek ayarlanabilir.

Farklı ayarlamalar yapmak için isteğe bağlı elemanlar, C-TM , R-GN ve R-CDS olarak işaretlenmiş noktalara lehimlenmiştir (aşağıda, plakanın lehim tarafının görüntüsü).

Işığa bağlı bir direnç LDR'nin ( CDS olarak işaretlenmiş ekleneceği lehim noktaları vardır CDS giriş pini , gerekirse sensörde devre dışı bırakma (ortam ışığı algılama seçeneğini geçersiz kılma) işlevi görür.

C-TM: Tekrar etkinleştirme süresini ayarlar (varsayılan: 2 saniye). Bir kondansatör eklemek, açma süresinin daha uzun bir tekrarını verecektir.

R-GN: algılama mesafesinin ayarlanması (varsayılan olarak 7 metre). Algılamaya bir direnç eklenerek mesafe kısaltılacaktır. 1MΩ direnç ile bağlanırsa, algılama aralığı yaklaşık 5m'dir.

R-CDS: Bir direnç ekleyerek (1MΩ dahili dirence paralel olarak), kullanıcı ışık algılama eşiğini kendi ihtiyaçlarına göre değiştirebilir. Bu, yalnızca devre kartının ön tarafındaki lehim noktalarına ( CDS ) lehimlenen bir ışık sensörü olduğunda geçerlidir .

47–100K direnç, standart 5 mm LDR ile iyi çalışır.

İşleyiş

Modül elektroniklerinin eşit derecede önemli iki bölümü vardır: MMBR941M yüksek frekanslı NPN transistörüne dayalı bir mikrodalga frekans verici / alıcı / karıştırıcı ve bir RCWL-9196 entegre devresine dayalı çok daha düşük bir frekans bölümü .

Teknik olarak, mikrodalga bölümü , devre kartı izlerinden yapılmış gerekli indüktöre (ve kapasitörlere) sahip bir " Colpitt osilatörüne " benziyor İndüktör (~ 10 nH), üst yüzeydeki S eğrisinin izidir ve kondansatörler, alt yüzeydeki halka yapısı ve ayrıca S eğrisinin solundaki dikdörtgen bloktur.

Yönetim kurulu devresi

Bileşenlerin konumu

Çip devresi

İki çıkış modu

Bir test devresi

Herhangi bir şeye girmeden önce, donanıma ve ilk kurulum / çalıştırma prosedürüne aşina olmanızı ve bazı küçük deneyler yapmayı denemenizi tavsiye ederim.

RCWL-0516'yı sadece bir güç kaynağı ve çıkışında bir LED ile kullanabilmenize rağmen, hareket algılandığında harekete geçmek için daha fazla akım gerektiren harici yükleri kontrol etmek için bir röle sürücü devresi eklenebilir.


İlk testin şeması:

Modülün OUT pini ile 16 pimli yonganın ( RCWL-9196 ) gerçek çıkış pini arasında 1kΩ direnç olduğu için 1k direncin (R1) gerekli olmadığına dikkat edin .

Röle ( RL1 devresinde) standart ile tahrik edilir BC547'nin veya 2N3904 transistor T1 ) ve bir "röle" vardır göstergesi ( LED1 ) olup röle aktif halde olduğu zaman açılır. İsterseniz farklı voltajdaki diğer röleleri de kullanabilirsiniz. Bununla birlikte, bu durumda, güç kaynağı girişinin (5V olan) değiştirilmesi gerekir (elbette birkaç başka küçük değişiklikle). 2 pimli konektör ( JP1 ) gelecekteki testler için ayrılmıştır ve yalnızca modüle bir ışık sensörü bağlandığında kullanılabilir.

Doppler etkisi

Prensip olarak, Doppler etkisi , hareket eden bir nesneden yansıyan sinyalin bir alıcısı tarafından alınan frekanstaki bir değişikliktir. Doppler radarlarında, hareket eden bir nesneyi tespit etmek için modüle edilmemiş bir sinyal ( CW ) kullanılabilir Sensör alıcı, iletilen sinyali bir hedeften yansıyan sinyal ile işler.

Doppler etkisi nedeniyle, bir nesnenin antene göre hareket hızı, frekansta bir değişikliğe neden olur. Doppler frekansının (alıcıda elde edilen frekans) saniyede hedef tarafından gönderilen sinyal frekansının yarım dalga sayısı olduğunu basitçe tahmin edebilirsiniz. Daha yüksek bir hız, daha yüksek bir Doppler frekansı üretecektir. Sinyalin fazını tespit etmek için bir düzenlemeye sahip böyle bir sistem, hedefin hareketinin yönünü de gösterebilir: yaklaşan nesneler daha yüksek bir frekans üretirken, uzaklaşan nesneler sesli sinyalinkinden daha düşük bir frekans üretir.

Colpitts osilatör

Colpitts osilatör popüler bir türüdür LC osilatör tarafından icat Edwin Colpitts Aşağıdaki şekil, tipik bir Colpitts bir göre osilatör 1918 BJT bir ile tank devresinin bir indüktör eder, L kapasitörler seri kombinasyonu paralel olarak bağlı olan C1 ve C2 . Colpitts osilatörünün frekansı, tank devrenizin bileşenlerine bağlıdır ve basit bir formül kullanılarak hesaplanabilir (şekle bakın). Örneğin: L = 27 uH, C1 = 1 nF ve C2 = 15 nF ise, F = 1 MHz Colpitts osilatörünün değişen endüktans veya kapasitans ile ayarlanabileceğini unutmayın.

Bir Colpitts osilatörünün şeması

Bence RCWL-0516 mikrodalga sensörü, yaygın PIR sensörüne güçlü bir alternatif, ancak bu model çok sınırlı (seyrek) belgelere sahip ve bu da onu yeni başlayanlar için bir sorun haline getiriyor. Bulunan "Çince" materyali okumanın yanı sıra, birilerinin hızlı bir şekilde kullanabilmesi için bazı bilgiler eklemek için bazı araştırmalar da yapılmıştır. Şu anda bu sensör modülü için hareket algılama uygulaması dışında bir kullanım bulunmamakla birlikte, fonksiyon eklemek veya değiştirmek için kolayca uyarlanabilir. Bunlardan biri, uzaklaşan veya yaklaşan nesnelerin yörüngelerinin daha ayrıntılı bir şekilde ayrılması olacaktır. RF emisyon özelliklerinden dolayı sensörler birbirlerinin 1 metre yakınına yerleştirilmemelidir, ancak doğru mesafeye yerleştirilmiş iki sensör ile hareketli nesnenin sağdan sola mı yoksa tam tersi mi, soldan sağa mı hareket ettiğini bilmek de mümkün olacaktır. Her iki algılamayı, yani yaklaşma ve uzaklaşma ve sensörlere göre yatay yönde hareket birleştirilerek, tespit edilen nesnenin izlenen alanda nasıl hareket ettiğine dair ayrıntıların bilinmesi mümkün olacaktır.



ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.

Arduino ile DS3231 RTC Modülü - Tarih ve Saati Ayarlama / Okuma

 

Arduino ile DS3231 RTC Modülü - Tarih ve Saati Ayarlama / Okuma

DS3231 RTC modülü, doğru sonuçları nedeniyle piyasadaki ünlü bir gerçek zamanlı saattir. Burada, RTC gerçek zamanlı saat anlamına gelir. Saat ve Tarihi yüksek hassasiyetle yöneten uygun fiyatlı bir sistemdir. Bu küçük boyutlu modülün altı pimi, veri aktarımı için entegre (I2C) bir arabirimi ve güç yedekleme için bir pil hücresi vardır. DS3231 Gerçek Zamanlı Modül, bir TWI arayüzü, iki alarm saati ve dahili bir sıcaklık dengelemeli kristal Osilatör ile birlikte gelir. RTC modülü, tüketici ürünlerindeki uygulamalarını endüstriyel düzeyde bulur.





DS3231 RTC Modülü Pinout

Aşağıdaki şekil DS3231 RTC Modülünün pim şemasını göstermektedir:

DS3231 RTC Modülü pin çıkışı şeması

 PIN konfigürasyonu

DS3231 Gerçek Zamanlı Modülün pinout'unu tartışalım. Tablodaki pim yapılandırma ayrıntısı aşağıda belirtilmiştir:

Pin AdıFonksiyon
VCCGüç Kaynağı pimi
GNDZemin pimi
SQWKare dalga Çıkış pimi
SCLSeri Saat pimi
SDASeri Veri pini
32 bin32KHz Açık tahliye Çıkış pimi
  • SQW: Kare dalga oluşturmak veya alarmlar için kesinti olarak kullanılmak üzere kullanılır.
  • SCL: Veri aktarımlarını senkronize etmek için kullanılan bir seri saat hattı. I2C arayüzünün bir parçasıdır.
  • SDA: Bir seri veri iletim hattı. I2C arayüzünün bir parçasıdır.
  • 32K: Bu pin bir referans saat için kullanılır.

DS3231 RTC Modülü Özellikleri ve Teknik Özellikleri

  • Çalışma Gerilimi: 2.3 - 5.5 Volt
  • Çalışma Sıcaklığı: -45 - 800C
  • Maksimum Voltaj: VCC + 0.3 Volt
  • Akü Yedek Akımı: 500 mA
  • -40 - 800C'de doğruluk: ± 3,5 ppm
  • 0 - 400C'de doğruluk: ± 2,0 ppm
  • Sıcaklık Doğruluğu: 30C
  • Paket Tipi: 16, 300-mil SO paketi

Ayrıntılı Özellikler

Ayrıntılı özelliklerden bazıları aşağıda listelenmiştir:

  • Düşük voltajlarla çalışabilir
  • İhtiyaca göre programlanabilir Kare dalga çıkışı
  • Güç olmasa bile güncel kalmak için bir pil yedeği
  • Hızlı iletim için çift yönlü, 400 kHz I2C arayüzü
  • Veri okumak / yazmak veya kaydetmek için 32 bayt EEPROM
  • 2 Günün saati çalar saatler
  • Zamanı sıfırlamak için bir basma düğmesi
  • RTC, 12 saat veya 24 saat biçiminde kullanılabilir
  • Kullanıcı tarafından sağlanan değeri fabrika değerine göre bir ofset olarak ayarlamak için eskiyen bir trim kaydı
  • Saniye, dakika, saat, gün, hafta, ay, yıl bilgisini korur
  • Otomatik olarak bir güç kaynağından yerleşik bir pil kaynağına geçer


DS3231 RTC Şematik Diyagramı

Modülün şeması, modülü onarırken yardımcı olabilecek bağlantıları anlamak için sağlanmıştır:

DS3231 RTC Modülü dahili devre şeması

DS3231 RTC Modülü ile bir mikro denetleyici arasında nasıl arabirim oluşturulur?

Arabirim basittir. Sadece bir güç kaynağı veya kontrolör aracılığıyla RTC'ye güç verin (hasarı önlemek için 5 Volt'tan fazla olmayın) ve ardından SCL'yi SCL'ye ve SDA'yı sırasıyla modülün SDA'sına ve mikrodenetleyiciye bağlayın. İletim, oldukça karmaşık olan eşzamanlı entegre entegre devre (I2C) protokolü aracılığıyla gerçekleşir.

RTC modülü için yazılan kitaplıklar işleri kolaylaştırmaya yardımcı olabilir. Programa dahil edilmişlerse, otomatik olarak tarih ve saati kullanıcıya sağlarlar. Ayrıca, bu kitaplıklar çalar saati değiştirmemize veya ayarlamamıza yardımcı olabilir.

Modül, elektrik kesintisi durumunda bir pil ile birlikte gelir. Modülün tarih ve saat ile güncel kalmasına yardımcı olacaktır.

DS3231 RTC modülü düğme pil tutucu

DS3231 RTC'yi Arduino ile Arayüz

Daha önce açıklandığı gibi, örnek olarak bir Arduino UNO ile RTC arasında arayüz oluşturacağız:

Arduino ile arayüz oluşturan DS3231 RTC Modülü

Pimleri uygun şekilde bağlayın.

Arduino UNORTC Modülü
5VVCC
GNDGND
ICSP2 BaşlığıSDA
ICSP2 BaşlığıSCL

DS3231 RTC Kitaplığını Arduino IDE'ye yükleyin

Bir DS3231 RTC modülünü programlamak için Arduino'nun I2C iletişim pinlerini kullanmamız gerekir. I2C iletişimi hakkında bilginiz yoksa şu makalelere göz atabilirsiniz:

Ancak sıfırdan bir kod yazmak için çaba gerektirir. Neyse ki, bir RTC modülünden zaman ölçümleri almak için geri arama işlevleri sağlayan bir Arduino RTClib kitaplığı mevcuttur. Bu kitaplık, I2C iletişimi üzerinden bir RTC modülüyle iletişim kurmanın tüm karmaşıklığını gizler. DS3231'den veri okumak için RTClib tarafından uygulanan basit geri arama işlevlerini kullanabiliriz. 

Bu nedenle, Arduino ile bir DS3231 RTC modülünü programlamak için Arduino IDE'de bulunan RTClib kütüphanesini kullanacaksınız. 

Bu kütüphaneyi kullanmak için öncelikle Arduino'nun kütüphane yöneticisine giderek bu kütüphaneyi Arduino IDE'ye kurmamız gerekiyor. Arduino IDE'yi açın, Araçlar> Kitaplıkları Yönet'e gidin.

DS3231 kitaplığını Arduino IDE'ye yükleyin

Bundan sonra, bu pencere kütüphane yöneticisi penceresi görünecektir. Arama çubuğuna yazarak "RTClib" i arayın. DS3231 için birçok seçenek göreceksiniz. Ancak bu eğitimde kullanacağımız, Adafruit tarafından RTClib'dir. Adafruit tarafından RTClib'i seçin ve yükle düğmesine tıklayın. 

DS3231 RTC modül kitaplığını Arduino IDE'ye yükleyin

Kur düğmesine tıkladığınızda, RTClib'in şu anda Arduino IDE'nizde kurulu olmayan diğer kitaplık bağımlılıklarını gerektirebileceğine dair bir mesaj alabilirsiniz. Kur butonuna tıklayarak tüm bağımlılıkları kurmanızı tavsiye ederiz. Aksi takdirde, RTClib düzgün çalışmayacaktır.

DS3231 kitaplık yazılımı bağımlılık kitaplıkları

Arduino Kodu

Bu örnek kod, zaman ayarlarını gerçekleştirir. Ayrıca, bu Arduino DS3231 RTC modülünden okuma süresi ve verileri çizer ve Arduino seri monitörüne yazdırır.

// Date and time functions using a DS3231 RTC connected via I2C and Wire lib
#include "RTClib.h"

RTC_DS3231 rtc;

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

void setup () {
  Serial.begin(57600);

#ifndef ESP8266
  while (!Serial); // wait for serial port to connect. Needed for native USB
#endif

  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    Serial.flush();
    abort();
  }

  if (rtc.lostPower()) {
    Serial.println("RTC lost power, let's set the time!");
    // When time needs to be set on a new device, or after a power loss, the
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }

  // When time needs to be re-set on a previously configured device, the
  // following line sets the RTC to the date & time this sketch was compiled
  // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  // This line sets the RTC with an explicit date & time, for example to set
  // January 21, 2014 at 3am you would call:
  // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}

void loop () {
    DateTime now = rtc.now();

    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(" (");
    Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
    Serial.print(") ");
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();

    Serial.print(" since midnight 1/1/1970 = ");
    Serial.print(now.unixtime());
    Serial.print("s = ");
    Serial.print(now.unixtime() / 86400L);
    Serial.println("d");

    // calculate a date which is 7 days, 12 hours, 30 minutes, 6 seconds into the future
    DateTime future (now + TimeSpan(7,12,30,6));

    Serial.print(" now + 7d + 12h + 30m + 6s: ");
    Serial.print(future.year(), DEC);
    Serial.print('/');
    Serial.print(future.month(), DEC);
    Serial.print('/');
    Serial.print(future.day(), DEC);
    Serial.print(' ');
    Serial.print(future.hour(), DEC);
    Serial.print(':');
    Serial.print(future.minute(), DEC);
    Serial.print(':');
    Serial.print(future.second(), DEC);
    Serial.println();

    Serial.print("Temperature: ");
    Serial.print(rtc.getTemperature());
    Serial.println(" C");

    Serial.println();
    delay(3000);
}

Sonuçlar Seri Monitör aracılığıyla gözlemlenebilir. Güncellenen saat ve tarihi gösterecektir.

DS3231 Alternatif Seçenekler

  • DS1302
  • DS1307

Kullanım Alanı ve Fikir veren Projeler

  • DIY projeleri
  • Küresel Konumlandırma Sistemi
  • Telematik
  • Sunucular
  • Gömülü sistemler
  • Cep Telefonları


Bahadır ÖZGEN

Electronic Robotic Coding Research and Development 1975 - ∞

Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com