نمایش نتایج: از 1 به 10 از 36
Like Tree14 لایک

موضوع: ماژول ساعت DS1307 RTC + باتری (real-time clock )

Threaded View

  1. #1
    max
    max آنلاین نیست.
    Member
    تاریخ عضویت
    Jul 2013
    محل سکونت
    iran-shiraz
    نوشته ها
    70

    ماژول ساعت DS1307 RTC + باتری (real-time clock )

    كاربردDS1307 محصول dallas محاسبه و نگهداري زمان واقعي real time clock ميباشد. اين ماژول ميتواند ساعت ، دقيقه ، ثانيه ، روز ، ماه ، سال و ايام هفته را نگهداري و پردازش كند. باطري ليتيومي اين ماژول امكان تغذيه و نگهداري زمان ds1307 را به مدت چندين سال فراهم ميكند. اين ماژول از طريق ارتباط 2 سيمه I2C به آردوينو متصل ميشود. بر روي اين ماژول علاوه بر RTC ، يك EEPROM سريال به شماره 24C32 با حافظه 32 كيلوبيت تعبيه شده كه از طريق رابط I2C مشترك ميتوان به آن دسترسي داشت. همچنين امكان نصب سنسور دماي ديجيتال DS18B20 نيز بر روي ماژول وجود دارد. در صورت نصب سنسور دما ، پين DS ، اين سنسور را به آردوينو متصل ميكند.
    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: back-1.JPG
مشاهده: 621
حجم: 45.0 کیلو بایت
    مشخصات:
    رابط 2 سيمه I2C
    نگهداري ساعت ، دقيقه ، ثانيه
    نگهداري روز ، ماه ، سال
    تصحيح تقويم بر اساس سالهاي كبيسه
    محاسبه تقويم تا سال 2100 ميلادي
    محاسبه خودكار ماههاي كمتر از 31 روز
    56 بايت حافظه غير فرار در دسترس
    جريان مصرفي باطري backup كمتر از 500nA
    امكان دسترسي به EEPROM سريال .
    امكان نصب سنسور دما.
    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: RTC-DS1307_SCH.jpg
مشاهده: 1267
حجم: 53.5 کیلو بایت
    كافي است تنها براي يك بار ساعت و تاريخ را بر روي ماژول SET كنيد. اين اطلاعات براي چندين سال و تا زماني كه باطري backup توان لازم جهت تامين نيروي مورد نياز ds1307 را داشته باشد ، در دسترس شما قرار دارد.
    کد:
     /* 
     # Example code for DS1307 RTC MODULE
     # Company    : AftabRayaneh
     # Website    : http://shop.aftabrayaneh.com
     # Editor     : mohammad omidvar -max
     # Date       : 14.10.2013
     # Version    : 1.0
    */
    #include <DS1307RTC.h>
    #include <Time.h>
    #include <Wire.h>
    
    const char *monthName[12] = {
      "Jan", "Feb", "Mar", "Apr", "May", "Jun",
      "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
    };
    
    tmElements_t tm;
    
    void setup() {
      bool parse=false;
      bool config=false;
    
      // get the date and time the compiler was run
      if (getDate(__DATE__) && getTime(__TIME__)) {
        parse = true;
        // and configure the RTC with this info
        if (RTC.write(tm)) {
          config = true;
        }
      }
    
      Serial.begin(9600);
      while (!Serial) ; // wait for Arduino Serial Monitor
      delay(200);
      if (parse && config) {
        Serial.print("DS1307 configured Time=");
        Serial.print(__TIME__);
        Serial.print(", Date=");
        Serial.println(__DATE__);
      } else if (parse) {
        Serial.println("DS1307 Communication Error :-{");
        Serial.println("Please check your circuitry");
      } else {
        Serial.print("Could not parse info from the compiler, Time=\"");
        Serial.print(__TIME__);
        Serial.print("\", Date=\"");
        Serial.print(__DATE__);
        Serial.println("\"");
      }
    }
    
    void loop() {
    }
    
    bool getTime(const char *str)
    {
      int Hour, Min, Sec;
    
      if (sscanf(str, "%d:%d:%d", &Hour, &Min, &Sec) != 3) return false;
      tm.Hour = Hour;
      tm.Minute = Min;
      tm.Second = Sec;
      return true;
    }
    
    bool getDate(const char *str)
    {
      char Month[12];
      int Day, Year;
      uint8_t monthIndex;
    
      if (sscanf(str, "%s %d %d", Month, &Day, &Year) != 3) return false;
      for (monthIndex = 0; monthIndex < 12; monthIndex++) {
        if (strcmp(Month, monthName[monthIndex]) == 0) break;
      }
      if (monthIndex >= 12) return false;
      tm.Day = Day;
      tm.Month = monthIndex + 1;
      tm.Year = CalendarYrToTm(Year);
      return true;
    }

    براي دريافت اطلاعات ساعت و تاريخ از كد زير استفاده نماييد.
    کد:
     /*
     # 
     # Example code for DS1307 RTC MODULE
     # Company    : AftabRayaneh
     # Website    : http://shop.aftabrayaneh.com
     # Editor     : mohammad omidvar -max
     # Date       : 14.10.2013
     # Version    : 1.0
    */
    #include <DS1307RTC.h>
    #include <Time.h>
    #include <Wire.h>
    
    void setup() {
      Serial.begin(9600);
      while (!Serial) ; // wait for serial
      delay(200);
      Serial.println("DS1307RTC Read Test");
      Serial.println("-------------------");
    }
    
    void loop() {
      tmElements_t tm;
    
      if (RTC.read(tm)) {
        Serial.print("Ok, Time = ");
        print2digits(tm.Hour);
        Serial.write(':');
        print2digits(tm.Minute);
        Serial.write(':');
        print2digits(tm.Second);
        Serial.print(", Date (D/M/Y) = ");
        Serial.print(tm.Day);
        Serial.write('/');
        Serial.print(tm.Month);
        Serial.write('/');
        Serial.print(tmYearToCalendar(tm.Year));
        Serial.println();
      } else {
        if (RTC.chipPresent()) {
          Serial.println("The DS1307 is stopped.  Please run the SetTime");
          Serial.println("example to initialize the time and begin running.");
          Serial.println();
        } else {
          Serial.println("DS1307 read error!  Please check the circuitry.");
          Serial.println();
        }
        delay(9000);
      }
      delay(1000);
    }
    
    void print2digits(int number) {
      if (number >= 0 && number < 10) {
        Serial.write('0');
      }
      Serial.print(number);
    }

    جهت سفارش این کالا، به این بخش در فروشگاه آفتاب رایانه مراجعه نمایید.
    فایل های پیوست شده فایل های پیوست شده
    ویرایش توسط max : 10-14-2013 در ساعت 11:27 AM

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO