صفحه 3 از 5 نخستنخست 12345 آخرینآخرین
نمایش نتایج: از 21 به 30 از 49
Like Tree14 لایک

موضوع: ماژول ساعت فوق دقیق ds3231 با رابط i2c

  1. #21
    Junior Member
    تاریخ عضویت
    Mar 2014
    نوشته ها
    13
    مهندس جان شما کلا
    dt = clock.getDateTime();
    رو از تابع لوپ حذف کن
    و تابع SENDSTR رو اینجور بنویس:
    String SENDSTR (void)
    {
    dt = clock.getDateTime();
    String k=String(clock.dateFormat("Y-m-d l H:i:s", dt));
    return k; }
    در این حالت ابتدا زمان جدید فراخوانی میشه، بعد تبدیل به داده رشته ای میشه و بعد وقتی کد زیر رو زدی:

    File dataFile = SD.open(SENDSTR(), FILE_WRITE);
    مقدار رشته با زمان فعلی به عنوان نام فایل ثبت میشه
    .................................................. .............................................
    از طرفی یه مقدار منظورت رو نمی فهمم مبهم میگی.
    خب اگه بنا نباشه مقدار SENDSTR عوض بشه که کافیه فقط یکبار
    File dataFile = SD.open(k, FILE_WRITE);
    ایجاد بشه و اصلا close نشه تا وقتی که می خوای تو همین فایل بنویسه.
    تو تلگرام دقیق تر بگو قراره چه اتفاقی بیافته
    لایک کردن

  2. #22
    Member
    تاریخ عضویت
    Feb 2016
    نوشته ها
    55
    نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
    علتش این هست که جنس متغیر رو const گرفتید
    کد صحیح :
    کد:
     String k;
    
    
    void setup() {
    // put your setup code here, to run once:
    Serial.begin(9600);
    k=String(1234);
    Serial.print("k1 = "); Serial.println(k);
    //static
    //public
    }
    
    
    
    
    void loop() {
    Serial.print("k1 = "); Serial.println(k);
    delay(1000);
    // put your main code here, to run repeatedly:
    }
    سلام من این مثال کوتاه و ساده رو زدم برای اینکه مشکل اصلی مو حل کنم. فرمایش شما رو هم امتحان کردم متاسفانه نشد یعنی اولین مقدارش در تابع setup رو درست نشون میده ولی در Loop هیچ مقداری رو نشون نمیده؟! چطوری میشه یه متغیر سراسری تعریف کرد که مقدارشو یکبار که خوند دیگه وقتی تو سریال مانیتور نمایشش می دهیم ثابت بشه و تغییر نکنه در حلقه های بعدی.

  3. #23
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط mr.ansaripour نمایش پست ها
    سلام من این مثال کوتاه و ساده رو زدم برای اینکه مشکل اصلی مو حل کنم. فرمایش شما رو هم امتحان کردم متاسفانه نشد یعنی اولین مقدارش در تابع setup رو درست نشون میده ولی در Loop هیچ مقداری رو نشون نمیده؟! چطوری میشه یه متغیر سراسری تعریف کرد که مقدارشو یکبار که خوند دیگه وقتی تو سریال مانیتور نمایشش می دهیم ثابت بشه و تغییر نکنه در حلقه های بعدی.

    من خودم کد خودمو تست کردم جواب میده ها !

    میخوای از یه سنسور یه داده رو بخونی و دیگه هم تغییرش ندی
    لایک کردن

  4. #24
    Member
    تاریخ عضویت
    Feb 2016
    نوشته ها
    55
    خیلی لطف کردید درست فرمودید کار کرد. منconst اولین رو برداشتم ولی عبارت دوم به صورت زیر نوشتم :
    String k=String(1234);//Correct
    در حالیکه String اولی اضافه بود و به صورت زیر باید می نوشتم . با این حال خیلی لطف کردید و ممنون MAGMAGMary .


    k=String(1234);//Wrong

    فقط ممنون میشم این سوال دیگه من رو هم جواب بدید که چطور می تونم از کتابخانه استفاده شده برای این ماژول برای برد DUE استفاده کنم؟
    فایل های پیوست شده فایل های پیوست شده

  5. #25
    Member
    تاریخ عضویت
    Feb 2016
    نوشته ها
    55
    ds3231_simple:12: Error: 'ds3231 clock' redeclared as different kind of symbol

    ds3231 clock;

    ^

    in file included from c:\users\lenovo\appdata\local\arduino15\packages\a rduino\tools\arm-none-eabi-gcc\4.8.3-2014q1\arm-none-eabi\include\stdlib.h:11:0,

    from c:\users\lenovo\appdata\local\arduino15\packages\a rduino\hardware\sam\1.6.7\cores\arduino/arduino.h:24,

    from sketch\ds3231_simple.ino.cpp:1:

    C:\users\lenovo\appdata\local\arduino15\packages\a rduino\tools\arm-none-eabi-gcc\4.8.3-2014q1\arm-none-eabi\include\time.h:44:12: Error: Previous declaration of 'clock_t clock()'

    clock_t _exfun(clock, (void));

    ^

    c:\users\lenovo\desktop\arduino ide\libraries\arduino-ds3231-master\ds3231_simple\ds3231_simple.ino: In function 'void setup()':

    Ds3231_simple:21: Error: Request for member 'begin' in 'clock', which is of non-class type 'clock_t() {aka long unsigned int()}'

    clock.begin();

    ^

    ds3231_simple:24: Error: Request for member 'setdatetime' in 'clock', which is of non-class type 'clock_t() {aka long unsigned int()}'

    clock.setdatetime(__date__, __time__);

    ^

    c:\users\lenovo\desktop\arduino ide\libraries\arduino-ds3231-master\ds3231_simple\ds3231_simple.ino: In function 'void loop()':

    Ds3231_simple:29: Error: Request for member 'getdatetime' in 'clock', which is of non-class type 'clock_t() {aka long unsigned int()}'

    dt = clock.getdatetime();

    ^

    exit status 1
    'ds3231 clock' redeclared as different kind of symbol
    پیام خطای بالا نمایش داده می شه وقتی می خوام بریزم روی برد due ولی خوب روی uno مشکلی نداره

  6. #26
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط mr.ansaripour نمایش پست ها
    خیلی لطف کردید درست فرمودید کار کرد. منconst اولین رو برداشتم ولی عبارت دوم به صورت زیر نوشتم :

    فقط ممنون میشم این سوال دیگه من رو هم جواب بدید که چطور می تونم از کتابخانه استفاده شده برای این ماژول برای برد due استفاده کنم؟

    90 مگ آردوینو due?

    خلاصه به بردها اضافش کردم و کتابخونه رو تست کردم .
    جالب بود تعدادی از کتابخونه ها روی آردوینو due جواب نمیدن .
    حتی کتابخونه 5110!

    جای سرچ داره
    لایک کردن

  7. #27
    Member
    تاریخ عضویت
    Feb 2016
    نوشته ها
    55
    شما می دونید باید دنبال چی بگردیم دقیقا یعنی باید در فایل های کتابخانه ای .cpp یا .h تغییراتی ایجاد کرد یا خیر باید کلا دنبال کتابخانه ای دیگر را گرفت یا اصلا باید یه فایل خاص رو به کتابخانه اضافه کرد؟

  8. #28
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط mr.ansaripour نمایش پست ها
    شما می دونید باید دنبال چی بگردیم دقیقا یعنی باید در فایل های کتابخانه ای .cpp یا .h تغییراتی ایجاد کرد یا خیر باید کلا دنبال کتابخانه ای دیگر را گرفت یا اصلا باید یه فایل خاص رو به کتابخانه اضافه کرد؟

    راستش خودم تا حالا با due کار نکرده بودم و شکه شدم فعلا نیاز به جستجو دارم

  9. #29
    Member
    تاریخ عضویت
    Feb 2016
    نوشته ها
    55
    آقا کتابخانه RTClib جواب می ده روی DUE در حالیکه همین روی UNO جواب خوبی نمی ده و کتابخانه دیگر هم روی UNO جواب می ده ولی روی DUE تعطیله
    فایل های پیوست شده فایل های پیوست شده
    لایک کردن

  10. #30
    Member
    تاریخ عضویت
    Feb 2016
    نوشته ها
    55
    نقل قول نوشته اصلی توسط yhz7 نمایش پست ها
    دوست عزیز حتما باطری روی ماژول خالی شده اون رو عوض کنی مشکل حل میشه
    ضمنا اگه باطری نو بندازی بعد یه مدت(حدودا دو سه هفته) باطری باد میکنه و فاسد میشه علتش اینه که از تغذیه ماژول از مسیر دیود شیشه ای و یک مقاومت 220 اهمی یاطری روی ماژول شارژ میشه و باعث باد کردن و فاسد شدن باطری میشه یا باید باطری قابل شارژ روش بندازی یا دیود شیشه ای رو حذف کنی که باطری شارژ نشه
    سلام من با استفاده از این ماژول و کتابخونه rtclib که آدرسش رو در بالا آوردم با برد due وقتی برد رو از برق قطع می کنم با وجود اینکه باتری روش هست و دیود شیشه ای رو چه بردارم چه بگذارم باشه باز زمان رو از وقتی که برنامه روش ریختم نشون می ده و به عبارتی عقب می افته دلیلش چیه؟

صفحه 3 از 5 نخستنخست 12345 آخرینآخرین

کلمات کلیدی این موضوع

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

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

SEO by vBSEO