Показано с 1 по 10 из 178

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Местный
    Регистрация
    07.12.2014
    Сообщений
    102
    Вес репутации
    155

    По умолчанию Re: Бортовой компьютер мотоцикла

    Вчера прицепил RTC модуль реального времени на базе DS1307, собственно пытался уже давно но ничего не получалось ... вначале была проблема связи модуля с ардуиной, дата и время были премерно следующие "2165/165/165 165:165:85", потом таймер каждый раз начинался заново при отключении питания, ну и в заключении долго пытался найти как синхронизировать время.

    Видео- http://youtu.be/reKBAI_8LaI

    В начале обязательно подтягиваем шину I2С к +5В через резисторы 10к, даже если устройство на шине одно, без резисторов работать не будет.

    Библиотеки из примера http://zelectro.cc/Media/Default/%D0...%8B/RTClib.zip
    http://zelectro.cc/Media/Default/%D0...D1%8B/Time.zip
    Заливаем в ардуино скетч:
    PHP код:
    #include <Wire.h>
    #include "RTClib.h"
    #include <Time.h>

    RTC_DS1307 RTC;

    void setup () {
        
    Serial.begin(9600);
        
    Wire.begin();
        
    RTC.begin();
    }

    void loop () {
        
    time_t curTime 0;
        
    // На Serial поступит время в формате unixtime
        
    if (Serial.available() > 0)
        {
          
    int eps millis();
          
    time_t coef 1000000000;
          while (
    coef 0)
          {
             
    byte b Serial.read();
             if (
    == 255)
             {
                continue; 
             }
             
    curTime += coef*(b-'0');
             
    coef /= 10;
          }
          
    // Устанавливаем считанное по байтам время в RTC
          
    RTC.adjust(curTime + (millis()-eps)/1000);
        }

    Открываем окно терминала, далее переходим по ссылке http://www.bl2.ru/programing/timestamp.html, быстро копируем Текущее Unix время,например: 1423495561, и так же быстро вставляем текст в окно терминала комбинацией клавиш Ctrl + v, нажимаем отправить! Всё! время выставлено, проверяем:

    PHP код:
    #include <Wire.h>
    #include "RTClib.h"

    RTC_DS1307 RTC;

    void setup () {
        
    Serial.begin(9600);
        
    Wire.begin();
        
    RTC.begin();
    }

    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);

    Последний раз редактировалось Oleg_33; 11.02.2015 в 21:08.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •