RTC with millis

Тема в разделе "Посоветуйте детальки", создана пользователем Arhimag, 6 янв 2017.

  1. Arhimag

    Arhimag Нуб

    Привет!
    Есть задача: две ардуинки не связанные между собой. Есть список команд со временем исполнения с точностью до миллисекунд. Хочется, чтобы они были между собой максимально синхронизированны. Поэтому есть идея поставить RTC с миллисекундами. но бывает ли такой? Или есть какие-то более простые методы?
     
  2. rkit

    rkit Гуру

    Синхронизация по сигналу, да и все.
     
  3. ANV

    ANV Гуру

    Зависит от того, что вы делаете, что такое "максимальная точность" и насколько можно разбежаться часам.

    1. У rtc есть выход sqw. Его можно настроить как pps, а можно на частоту кварца
    2. Время можно брать из gps. На спутнике как никак атомные часы
    3. Если прям точно-точно, то атомные часы уже похудели по размеру до небольших модулей, но ценник в районе $5K

    Но кажется что в большинстве случаев "досчитывать" дробные доли секунды надо самому
     
  4. Arhimag

    Arhimag Нуб

    Синхронизация по сигналу? Имеете ввиду соединить их проводом? Нет, не получится по задумке. Каждый модуль должен быть независим и мобилен. Пытаюсь собрать роботов, в которых закидываешь по Bluetooth команды, а они их выполняют, при этом достаточно слаженно. И кажется, что если погрешность в слаженности секунда, то это уже плохо. Одному ты дал команду разжать держатель, а первый ещё не схватил и за секунду стакан успеет упасть. 1/10 -1/20 секунды выглядят более менее оптимистичными :)

    А можно, про первый пукнт подробнее ч пожалуйста? И что значит досчитывать?
     
  5. rkit

    rkit Гуру

    Хоть проводом, хоть антенной, хоть цепочкой доминошек, хоть квантовой спутанностью, какая разница. Сигнал есть сигнал. Главное, чтобы по времени предсказуемо приходил.
     
  6. Arhimag

    Arhimag Нуб

    Я ещё подумаю по поводу сигнала. Надо ещё как-то сделать, чтобы они не путали сигналы и не реагировали на чужие.. Спасибо!
     
  7. ostrov

    ostrov Гуру

    Один главный по часам, второй ведомый. Самое простой и дешевое решение: радиопередатчик на первом и приемник на втором 433МГц. Первый передает второму секретную фразу (пару-тройку байт), на которую тот синхронизируется. Сдвиг времени на уловить, расшифровать и применить можно вычислить и компенсировать. Синхронизировать можно не постоянно, а перед началом совместной операции, далее уповать на точность кварцев обоих Ардуин, которые обычно очень точны в небольшом отрезке времени.
     
  8. mcureenab

    mcureenab Гуру

    В GPS эта задача решена. Модуль выдает реальное время и сигнал pps. Вместо pps можно чаще сигнал отправлять, но не нужно.
    По сигналу pps устройство вносит поправку в показания своих системных часов, которые затем использует для получения времени. Если сигнал не был принят, то ничего страшного. Системные часы продолжают работать.
    Обычные кварцы имеют погрешность менее 1 мс за секунду. Так что для вашей задачи даже синхронизация раз в минуту хватит.
    Вместо GPS можно радио или ИК использовать для рассылки сигналов точного времени. Сигнал должен содержать показания часов, и собственно синхроимпульс.
    Учтите, что некоторые модули используют буферизацию.