• Loyiha sxemasi
  • DS3231 Real vaqt soati moduli




    Download 1,44 Mb.
    bet9/11
    Sana25.07.2024
    Hajmi1,44 Mb.
    #268592
    1   2   3   4   5   6   7   8   9   10   11
    Bog'liq
    Reja (2)

    DS3231 Real vaqt soati moduli.
    DS3231-bu arzon va yuqori aniqlikdagi Real vaqt soati bo‘lib, u soatlar, daqiqalar va soniyalarni, shuningdek, kun, oy va yil ma'lumotlarini saqlashi mumkin. Bundan tashqari, 31 kundan kam bo‘lgan sakrash yillari va oylari uchun avtomatik kompensatsiya taqdim etiladi.

    DS3231 RTC
    Modul 3,3 va 5 V oralig'ida ishlashi mumkin, bu esa uni ko‘plab ishlab chiqish platformalari yoki mikrokontrollerlar uchun mos qiladi. Batareyaning kirish kuchlanishi 3V ni tashkil qiladi va odatdagi CR2032 3V batareyasi modulni quvvatlantirishi va ma'lumotni bir yildan ortiq saqlashi mumkin.
    Modul Arduino platasiga ulanishni osonlashtiradigan i2c aloqa protokolidan foydalanadi. Shuningdek, bizning veb-saytimizda Arduino-ning I2C protokoli bilan ishlashi bo‘yicha batafsil qo‘llanmani o‘qishingiz mumkin.
    Loyiha sxemasi
    Ds3231 Real vaqt soati modulini Arduino platasiga ulash sxemasi quyidagi rasmda keltirilgan.

    Shunday qilib, bizga modulni quvvatlantirish uchun 4 ta sim, VCC va GND pinlari va ikkita i2c interfeysi pinlari kerak: SDA va SCL.


    Dasturlash.
    Modul ulangandan so‘ng, biz Arduino platasini Real vaqtda soat bilan ishlash uchun dasturlashimiz kerak. Biroq, Arduino va i2c moduli o‘rtasidagi aloqani dasturlash haqida gap ketganda, kod unchalik kichik yoki oddiy emas. Yaxshiyamki, Ds3231 RTC uchun allaqachon internetda topish mumkin bo‘lgan bir nechta kutubxonalar mavjud.
    Ushbu qo‘llanma uchun men Henning Karlsen kutubxonasidan foydalanishga qaror qildim, uni o‘z saytidan topish va yuklab olish mumkin
    Shunday qilib, biz kutubxonani yuklab olib o‘rnatganimizdan so‘ng, dastlab RTC modulining soatini faollashtirish uchun uning birinchi demo misolidan foydalanishimiz mumkin. Demo kod sozlamalari bo‘limida biz haftaning kuni, vaqti va sanasini dastlab belgilash uchun uchta qatorni ajratib ko‘rsatishimiz kerakligini payqashimiz mumkin.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17

    // Code from the Demo Example of the DS3231 Library
    void setup()
    {
    // Setup Serial connection
    Serial.begin(115200);
    // Uncomment the next line if you are using an Arduino
    //while (!Serial) {}

    // Initialize the rtc object
    rtc.begin();

    // The following lines can be uncommented to set the date and time
    //rtc.setDOW(WEDNESDAY); // Set Day-of-Week to SUNDAY
    //rtc.setTime(12, 0, 0); // Set the time to 12:00:00 (24hr format)
    //rtc.setDate(1, 1, 2014); // Set the date to May 5st, 2024
    }

    Birinchi qator haftaning kunini belgilash uchun, ikkinchi qator vaqtni soat, daqiqa va soniyalarda belgilash uchun, uchinchi qator sanani kunlar, oylar va yillarda belgilash uchun.
    Ushbu kodni yuklab olganimizdan so‘ng, biz uchta qatorni sharhlashimiz va kodni qayta yuklab olishimiz kerak bo‘ladi.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    // Code from the Demo Example of the DS3231 Library
    void loop()
    {
    // Send Day-of-Week
    Serial.print(rtc.getDOWStr());
    Serial.print(" ");

    // Send date
    Serial.print(rtc.getDateStr());
    Serial.print(" -- ");
    // Send time
    Serial.println(rtc.getTimeStr());

    // Wait one second before repeating
    delay (1000);
    }

    Agar biz kodning tsiklga bag'ishlangan qismini ko‘rib chiqsak, endi uchta maxsus funktsiyadan foydalanib, biz Real vaqtda soat modulidan ma'lumot olamiz va uni ketma-ket monitorda chop etamiz. Ular Serial Monitor-da qanday ko‘rinishga ega.
    Endi biz Arduino-ni o‘chirib, keyin uni qayta ulab, ketma-ket monitorni qayta ishga tushirsak ham, vaqt qayta tiklanmasdan davom etayotganini sezamiz.
    Shunday qilib, endi bizda ishlaydigan Real vaqt soati bor va biz uni har qanday Arduino loyihasida ishlatishimiz mumkin. Ikkinchi misol sifatida men LCD-ni Arduino-ga uladim va unga vaqt va sanani qo‘ydim.


    /*
    * Arduino DS3231 Real Time Clock Module Tutorial
    * Crated by Dejan Nedelkovski,
    * www.HowToMechatronics.com
    * DS3231 Library */
    #include
    #include // includes the LiquidCrystal Library
    DS3231 rtc(SDA, SCL);
    LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7)
    void setup() {
    rtc.begin(); // Initialize the rtc object
    lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display } }
    void loop() {
    lcd.setCursor(0,0);
    lcd.print("Time: ");
    lcd.print(rtc.getTimeStr());
    lcd.setCursor(0,1);
    lcd.print("Date: ");
    lcd.print(rtc.getDateStr());
    delay(1000); }


      1. Download 1,44 Mb.
    1   2   3   4   5   6   7   8   9   10   11




    Download 1,44 Mb.