- Gerekli malzemeler:
- RTC nedir?
- DS3231 RTC'yi MSP430 ile Bağlama:
- RTC Modülü için MSP430'un Programlanması:
Bu eğitimde, RTC modülü DS3231'i MSP430 ile arayüzleyerek bir Dijital Saat yapacağız ve 16x2 LCD'de saat ve tarihi göstereceğiz. MSP-EXP430G2, Mikrodenetleyicilerini nasıl kullanacaklarını öğrenmek ve pratik yapmak için Texas Instruments tarafından sağlanan bir Geliştirme Aracı, yani LaunchPad'dir. Bu kart, tüm MSP430 serisi Mikrodenetleyicileri programlayabildiğimiz MSP430 Değer Çizgisi kategorisine girer. MSP'de yeniyseniz, MSP430 eğitimine başlarken göz atın.
Gerekli malzemeler:
- MSP430
- DS3231 RTC modülü
- POT -10k
- LCD Modül 16 * 2
- Bağlantı telleri
- Breadboard
RTC nedir?
DS3231, bir RTC (Gerçek Zamanlı Saat) modülüdür. Elektronik projelerinin çoğu için tarih ve saati korumak için kullanılır. Bu modül, ana güç kesildiğinde veya MCU donanımdan sıfırlamadan geçtiğinde bile tarih ve saati koruyan kendi madeni para hücreli güç kaynağına sahiptir. Bu modülde tarih ve saati bir kez belirlediğimizde, her zaman takip edecektir. DS1307, DS3231 vb. Gibi çeşitli RTC IC türleri mevcuttur.
Daha önce aşağıdaki projelerde Diğer mikrodenetleyicilerle RTC kullandık:
Not: Bu modülü ilk kez kullanırken tarih ve saati ayarlamanız gerekir. Ayrıca RTC IC DS1307'yi de kullanabilirsiniz, daha önce DS1307'yi Arduino ile kullandık.
DS3231 RTC'yi MSP430 ile Bağlama:
MSP430 Mikrodenetleyici tabanlı Dijital Saat için devre şeması aşağıda verilmiştir. Daha önce de belirtildiği gibi DS3231, I2C iletişimi yardımıyla çalışır, bu nedenle bir Seri Saat (SCL) ve MSP430'umuzdaki I2C pinlerine (PIN 2.1) bağlanması gereken bir Seri Veri (SDA) pinine sahip olacaktır., SCL) ve pin 10 (PIN 2.2, SDA).
MSP430 3.3V Vcc verir ancak LCD ve RTC modülüne bağlamak için 5V'a ihtiyacımız var. Bu yüzden, bir hack kullanacağız, USB kablo konektörünün yanında TP1 olarak adlandırılan bir jumper var. Oradan 5V alabilirsin.
Devre şeması:
RTC Modülü için MSP430'un Programlanması:
Burada programlama için Energia IDE kullanıyoruz. Arduino IDE ile aynıdır ve kullanımı kolaydır. MSP ve enerji konusunda yeniyseniz, Energia IDE'yi kullanarak MSP'yi kullanmaya başlayın. RTC modülüne arayüz oluşturmak için bu kart için kitaplığa ihtiyacımız var. Bu bağlantıdan RTC kitaplığını indirin ve kurun.
Ayrıca Energia IDE'ye önceden yüklenmiş Wire (I2C iletişimi için kullanılır) ve likit kristal kitaplıklarına ihtiyacımız var.
Bu MSP430 dijital saatin tam kodu bu makalenin sonunda verilmiştir. Kod basit ve kolay anlaşılır. Burada birkaç bölümünü açıklıyoruz.
Öncelikle gerekli kütüphaneleri eklemeliyiz.
Aşağıdaki kitaplık, RTC modülü ile MSP430 arasındaki I2C iletişimi içindir. SDA ve SCK pinleri bu kütüphanede zaten tanımlanmıştır, bu yüzden bu pinleri ayrı ayrı ilan etmemize gerek yoktur.
#Dahil etmek
Ardından, RTC saati için RTClib.h kitaplığını ve LCD işlevleri için LiquidCrystal.h dosyasını ekledik .
#include "RTClib.h" #include
Bundan sonra, RTC modülümüzü başlatmak için bir örnek oluşturmalıyız.
RTC_DS3231 rtc;
Ardından 7 boyutunda bir dizi oluşturun ve yedi günü içinde adla saklayın.
char daysOfTheWeek = {"Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"};
LCD ekran tarafından kullanılacak MSP430 Pin beyanı: (RS (P2.0), EN (P1.4), D4 (P1.5), D5 (P2.3), D6 (P2.4), D7 (P2.5))
LiquidCrystal lcd (8, 6, 7,11,12,13);
In boşluk kurulum () , biz LCD ekran ve RTC arayüzü başlatıldı ve, ekranın boyutları (genişlik ve yükseklik) belirttiğiniz başlar ()
başka bir kütüphane komutları önce çağrılması gerekir.
geçersiz kurulum () { lcd.begin (16, 2); lcd.setCursor (3,0); lcd.print ("RTC Saati"); gecikme (3000); lcd.clear (); rtc.begin (); // rtc.adjust (DateTime (F (__ DATE__), F (__ TIME__))); }
Şimdi, ekranda gösterilen Zaman doğru ancak bir sorun var, mikrodenetleyicinizi her yeniden başlattığınızda / sıfırladığınızda LCD, kodu yüklediğiniz Zamanı gösterecektir. Bunun nedeni, rtc.adjust () işlevinin bilgisayarınızın saatini kaydetmiş olmasıdır , bu nedenle sıfırladığınızda, bu saatle başlar.
Bu sorunu çözmek için, önce programı rtc.adjust () işleviyle yorum yapmadan yükleyin. Sonra hemen aynı satırı yorumlayın ve programı tekrar yükleyin. Artık tarih ve saatiniz ayarlanmıştır ve mikro denetleyicinin sıfırlanmasından etkilenmeyecektir.
Gelen döngü fonksiyonu olarak adlandırdığımız önceden değişkende RTC modülü ve mağazadan tarih ve zaman alır şimdi ve kullanarak LCD üzerinde görüntülemek lcd.print () fonksiyonu.
void döngü () { DateTime now = rtc.now (); lcd.clear (); lcd.setCursor (3,0); lcd.print (şimdi. gün (), Aralık); lcd.print ("/");…. …….
Tam kod ve Video aşağıda verilmiştir.