اطلاعیه

Collapse
No announcement yet.

مشکل ریست شدن ماژول های DS3231 و DS1307

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل ریست شدن ماژول های DS3231 و DS1307

    سلاممن با هر دو ماژول ساعت، پروژه ی ساعت و تقویم رو انجام دادم. اما توی هردو ماژول مشکل ریست شدن ساعت و تاریخ رو دارم.یعنی وقتی برق برد قطع و وصل میشه، ساعت و تاریخ بر میگرده به همون مقادیری که توی کد برنامه ست شده بود.باتری بکاپ هم وجود داره. سالم هم هست. دو تا هم تست کردم. اما همچنان این مشکل هست.اگر دوستان راهنمایی کنن ممنون میشم.

    #2
    پاسخ : مشکل ریست شدن ماژول های DS3231 و DS1307

    یعنی با هر بار روشن شدن مدار دستوری وجود داره که تایم رو ست میکنه
    اگه هست که مشکل از این میتونه باشه
    در ضمن اگر به دیتا شیت مراجعه کنیدبرای ds3231 در قسمت رجیستر کنترل مقدارش رو چک کنی چون بیت هفتم مربوط به عملکرد اسیلاتور در دو حالت Vcc و Vbat هست.

    دیدگاه


      #3
      پاسخ : مشکل ریست شدن ماژول های DS3231 و DS1307

      کدی که روی آردوینو آپلود کردم به این صورت هستش:
      #include <Wire.h>
      #include <DS1307.h>
      #include <U8glib.h>



      U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE);




      int clock [7];

      void setup ()
      {
      for (int i=6;i<8;i++)
      {
      pinMode(i,INPUT);
      }
      DS1307.begin();
      DS1307.setDate(17,1,03,0,12,0,0);

      }


      void loop()
      {
      DS1307.getDate(clock);
      u8g.setColorIndex (1);
      u8g.firstPage ();
      do {
      u8g.drawFrame(0,0,125,62);
      u8g.setFont (u8g_font_7x14);
      u8g.setPrintPos (5, 15);
      u8g.print ("Time:");
      u8g.setPrintPos (60, 30);
      Print (clock[4]);
      u8g.print (":");
      Print (clock[5]);
      u8g.print (":");
      Print (clock[6]);
      u8g.setPrintPos (5, 43);
      u8g.print ("Date:");
      u8g.setPrintPos (60, 58);
      Print (clock[0]);
      u8g.print("/");
      Print (clock[1]);
      u8g.print("/");
      Print (clock[2]);

      }
      while (u8g.nextPage());
      /////////////////////////////
      if (digitalRead(7))
      {
      clock[5]++;
      if (clock[5]>59) clock[5]=0;
      DS1307.setDate(clock[0],clock[1],clock[2],0,clock[4],clock[5],clock[6]);
      }


      if (digitalRead(6))
      {
      clock[4]++;
      if (clock[4]>23) clock[4]=0;
      DS1307.setDate(clock[0],clock[1],clock[2],0,clock[4],clock[5],clock[6]);
      }
      delay(150);
      }
      void Print (int number){
      u8g.print(number/10);
      u8g.print(number%10);
      }

      دیدگاه


        #4
        پاسخ : مشکل ریست شدن ماژول های DS3231 و DS1307

        مشکل اینه که شما هربار که دستگاه روشن میشه ست تایم رو انجام میدید
        من آردوینو کار نکردم ولی شما دستور ست تایم رو بردار ببین ساعتت شروع میکنه از صفر به کار کردن
        اگر جواب مثبت بود که احتمالا هست باید بخشی رو در برنامه نویسی ایجاد کنی برای تنظیم زمان اونم وقتی که میخوای (همون تنظیم ساعت خودمون با 3 کلید) فقط زمانی که خواستیم زمان باید ست بشه با مقدار دلخواهمون

        دیدگاه


          #5
          پاسخ : مشکل ریست شدن ماژول های DS3231 و DS1307

          آقا ممنونم از راهنماییتون. شما درست گفتید: باید خط ست دیت حذف بشه و ساعت بصورت دستی تنظیم بشه.

          دیدگاه


            #6
            پاسخ : مشکل ریست شدن ماژول های DS3231 و DS1307

            سلام.
            من با کدویژن کار میکنم و تا حالا تونستم با استفاده از ایسی ds3231 تاریخ و ساعت رو نشون بدم، خب این ایسی به غیر از تاریخ و ساعت قابلیت اندازه گیری دما رو هم داره منتها کتابخونه ی مدل قدیمی این ایسی که ds1307 (که فاقد اندازه گیری دماست) توی کدویژن هست.
            برای همین نیاز به نوشتنن کتابخونه یا دانلود اون دارم که توی نوشتن کتابخونه مشکل دارم و البته سراغ دانلود کتابخونه هم رفتم ولی سایت هایی که رفتم خوب نحوه ی کار با کتابخونه و ... رو توضیح نداده بود.
            اگر کسی میتونه دما رو با ایسی ds3231 توی کدویژن بخونه، نظرشو بگه.
            با تشکر از کمکتون.

            دیدگاه

            لطفا صبر کنید...
            X