صفحه 2 از 2 نخستنخست 12
نمایش نتایج: از 11 به 12 از 12
Like Tree2 لایک

موضوع: راه اندازی برد شیلد دیتا لاگر بخش ساعت

  1. #11
    Senior Member
    تاریخ عضویت
    Oct 2016
    نوشته ها
    112
    نقل قول نوشته اصلی توسط faridb نمایش پست ها
    سلام من برد یونو و شیلد دیتا لاگر و ال سی دی کلید دار را وصل کردم و برنامه زیر را روی ان لود کردم
    //Sample using LiquidCrystal library
    #include <LiquidCrystal.h>
    #include <Arduino.h>
    #include <Wire.h>
    #include "RTClib.h"

    #if defined(ARDUINO_ARCH_SAMD)
    // for Zero, output on USB Serial console, remove line below if using programming port to program the Zero!
    #define Serial SerialUSB
    #endif

    RTC_Millis rtc;


    LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

    // define some values used by the panel and buttons
    int lcd_key = 0;
    int adc_key_in = 0;
    #define btnRIGHT 0
    #define btnUP 1
    #define btnDOWN 2
    #define btnLEFT 3
    #define btnSELECT 4
    #define btnNONE 5

    // read the buttons
    int read_LCD_buttons()
    {
    adc_key_in = analogRead(0); // read the value from the sensor
    // my buttons when read are centered at these valies: 0, 144, 329, 504, 741
    // we add approx 50 to those values and check to see if we are close
    if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
    // For V1.1 us this threshold
    if (adc_key_in < 50) return btnRIGHT;
    if (adc_key_in < 250) return btnUP;
    if (adc_key_in < 450) return btnDOWN;
    if (adc_key_in < 650) return btnLEFT;
    if (adc_key_in < 850) return btnSELECT;

    // For V1.0 comment the other threshold and use the one below:



    return btnNONE; // when all others fail, return this...
    }

    void setup()
    {
    lcd.begin(16, 2); // start the library
    //lcd.setCursor(0,0);
    // lcd.print("Push the buttons"); // print a simple message
    //lcd.print("farid bazmandegan");
    Serial.begin(57600);
    rtc.begin(DateTime(F(__DATE__), F(__TIME__)));

    }

    void loop()
    {

    DateTime now = rtc.now();

    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
    delay(1000);


    lcd.setCursor(0,0);
    lcd.print(now.year(), DEC);
    lcd.print("/");
    lcd.print(now.month(), DEC);
    lcd.print("/");
    lcd.print(now.day(), DEC);
    lcd.setCursor(1,1);
    lcd.print(now.hour(), DEC);
    lcd.print(":");
    lcd.print(now.minute(), DEC);
    lcd.print(":");
    lcd.print(now.second(), DEC);
    }
    و ساعت و تاریخ راروی ال سی دی و ترمینال نمایش می دهد ولی مشکل اینجاست که وقتی تغذیه از برد یوتنو جدا می شود بعد از وصل دوباره تاریخ و ساعت دوباره به همان زمان و تاریخ کامپایل کردن برنامه بر می گردد
    چطور می شود این مشکل را حل کرد که ساعت و تاریخ تنظیم شده تغییر نکندد با تشکر

    اگه دیتا لاگر همین باشه که شما لینک دادین باتری شما خالی کرده یا باتری نذاشتید
    روی دیتا لاگر یک جای باتری هست که احنمالا شما باتری را نگذاشتین .این باتری برای ذخیره تاریخ وساعت هستش

  2. #12
    مدیر ویژه
    تاریخ عضویت
    Mar 2014
    نوشته ها
    586
    اره باید یک باتری 3.3 ولت روش باشه که ساعت داخلی شمارش زمان رو توی خودش انجام بده...
    ضمن ایکه کریستال 32.768 کیلو هرتز بغل دستش حساسه.اگردست به پایه اش بخوره احتمالا میریزه به هم ساعت.

    بار اول هم که باتری میذارید ساعت به خودی خود هنگ هست مثلاسال ساعت ماه همش 0fمیشه یا یه چیز نامعقول ...
    لایک کردن

صفحه 2 از 2 نخستنخست 12

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

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

SEO by vBSEO