Часы ардуино. Arduino и часы реального времени DS3231: как создать точные цифровые часы

Как подключить модуль часов реального времени DS3231 к Arduino. Почему DS3231 лучше DS1307. Как настроить и использовать RTC для создания точных цифровых часов на Arduino.

Содержание

Что такое часы реального времени (RTC) и зачем они нужны Arduino?

Часы реального времени (RTC) — это электронное устройство в виде интегральной микросхемы, которое точно отсчитывает время даже при отключении основного питания. RTC необходимы для проектов Arduino, требующих точного отслеживания времени:

  • Цифровые часы и будильники
  • Системы автоматизации с расписанием
  • Регистраторы данных с временными метками
  • IoT устройства, синхронизирующие данные

Встроенный таймер Arduino недостаточно точен для долгосрочного отсчета времени. RTC решает эту проблему, обеспечивая стабильный и точный источник времени.

Сравнение популярных модулей RTC: DS3231 vs DS1307

DS3231 и DS1307 — наиболее распространенные модули RTC для Arduino. Давайте сравним их ключевые характеристики:


ХарактеристикаDS3231DS1307
Точность±2 ppm (±0.17 секунд в день)±20 ppm (±1.7 секунд в день)
Температурная компенсацияЕстьНет
Встроенный датчик температурыЕстьНет
Напряжение питания2.3-5.5В4.5-5.5В
ЭнергопотреблениеНижеВыше
ЦенаВышеНиже

DS3231 превосходит DS1307 по всем ключевым параметрам, кроме цены. Для большинства проектов дополнительная стоимость DS3231 оправдана значительно более высокой точностью.

Как подключить модуль DS3231 к Arduino?

Подключение DS3231 к Arduino выполняется по I2C интерфейсу. Для этого потребуется всего 4 провода:

  • VCC — к 5V или 3.3V на Arduino
  • GND — к GND на Arduino
  • SDA — к пину A4 на Arduino Uno/Nano или 20 на Arduino Mega
  • SCL — к пину A5 на Arduino Uno/Nano или 21 на Arduino Mega

Дополнительно можно подключить пин SQW модуля DS3231 к любому цифровому пину Arduino для генерации прерываний.

Схема подключения DS3231 к Arduino Uno

[Здесь можно добавить схему подключения]


Программирование Arduino для работы с DS3231

Для работы с DS3231 удобно использовать библиотеку RTClib. Ее можно установить через менеджер библиотек Arduino IDE. Вот базовый скетч для инициализации и чтения времени с DS3231:

«`cpp #include #include RTC_DS3231 rtc; void setup() { Serial.begin(9600); if (!rtc.begin()) { Serial.println(«Не удалось найти RTC»); while (1); } if (rtc.lostPower()) { Serial.println(«RTC потерял питание, установим время»); rtc.adjust(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); } «`

Этот скетч инициализирует DS3231, проверяет его работоспособность и выводит текущее время в Serial Monitor каждую секунду. Если RTC потерял питание (например, при первом подключении), время устанавливается на основе времени компиляции скетча.


Создание цифровых часов на Arduino и DS3231

Теперь, когда у нас есть базовый код для работы с DS3231, давайте создадим простые цифровые часы с дисплеем. Для этого примера мы будем использовать LCD дисплей 16×2 символов.

«`cpp #include #include #include RTC_DS3231 rtc; LiquidCrystal_I2C lcd(0x27, 16, 2); // Установите правильный адрес I2C вашего LCD void setup() { lcd.init(); lcd.backlight(); if (!rtc.begin()) { lcd.print(«RTC Error»); while (1); } if (rtc.lostPower()) { lcd.print(«RTC lost power»); rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); } } void loop() { DateTime now = rtc.now(); lcd.setCursor(0, 0); lcd.print(«Date: «); if (now.day() < 10) lcd.print('0'); lcd.print(now.day()); lcd.print('/'); if (now.month() < 10) lcd.print('0'); lcd.print(now.month()); lcd.print('/'); lcd.print(now.year()); lcd.setCursor(0, 1); lcd.print("Time: "); if (now.hour() < 10) lcd.print('0'); lcd.print(now.hour()); lcd.print(':'); if (now.minute() < 10) lcd.print('0'); lcd.print(now.minute()); lcd.print(':'); if (now.second() < 10) lcd.print('0'); lcd.print(now.second()); delay(1000); } ```

Этот скетч создает простые цифровые часы, отображающие текущую дату и время на LCD дисплее. Обратите внимание на добавление ведущих нулей для чисел меньше 10 — это улучшает читаемость дисплея.


Расширенные возможности DS3231

DS3231 предлагает ряд дополнительных функций, которые могут быть полезны в более сложных проектах:

Температурный сенсор

DS3231 имеет встроенный датчик температуры. Вот как получить его показания:

«`cpp float temperature = rtc.getTemperature(); Serial.print(«Temperature: «); Serial.print(temperature); Serial.println(» C»); «`

Установка и использование будильников

DS3231 поддерживает два независимых будильника. Вот пример установки и проверки будильника:

«`cpp // Установка будильника на каждый день в 8:30 rtc.setAlarm1(DateTime(0, 0, 0, 8, 30, 0), DS3231_A1_Hour); // Проверка срабатывания будильника if (rtc.alarmFired(1)) { Serial.println(«Будильник сработал!»); rtc.clearAlarm(1); } «`

Генерация прямоугольных волн

DS3231 может генерировать прямоугольные волны разной частоты на выводе SQW:

«`cpp rtc.writeSqwPinMode(DS3231_SquareWave1Hz); // 1 Hz square wave «`

Типичные проблемы при работе с DS3231 и их решения

При работе с DS3231 могут возникнуть некоторые проблемы. Вот наиболее распространенные из них и способы их решения:


RTC не обнаруживается

Если Arduino не может обнаружить RTC, проверьте следующее:

  • Правильность подключения проводов (особенно SDA и SCL)
  • Напряжение питания (должно быть в диапазоне 2.3-5.5В)
  • Адрес I2C устройства (стандартный адрес DS3231 — 0x68)

Неточное время

Если время на DS3231 идет неточно, возможные причины:

  • Разряженная батарея резервного питания
  • Сильные электромагнитные помехи
  • Экстремальные температуры (выше 85°C или ниже -40°C)

Потеря времени при отключении питания

Если RTC теряет настройки времени при отключении основного питания:

  • Проверьте наличие и заряд батареи резервного питания (обычно CR2032)
  • Убедитесь, что батарея правильно подключена
  • Замените батарею, если она разряжена

Заключение: почему DS3231 — отличный выбор для проектов Arduino

DS3231 предлагает отличное сочетание точности, функциональности и простоты использования, что делает его идеальным выбором для большинства проектов Arduino, требующих точного отсчета времени. Его преимущества:


  • Высокая точность даже при колебаниях температуры
  • Низкое энергопотребление
  • Простой интерфейс I2C
  • Дополнительные функции (температурный сенсор, будильники)
  • Широкая поддержка в библиотеках и сообществе Arduino

Используя DS3231 в своих проектах Arduino, вы можете быть уверены в надежном и точном отсчете времени, что открывает широкие возможности для создания умных устройств, систем автоматизации и многого другого.


Arduino часы реального времени ds3231 в категории «Техника и электроника»

Часы реального времени DS3231, RTC, Arduino (без батарейки) [#8-9]

На складе в г. Запорожье

Доставка по Украине

115 грн

Купить

Ardu.prom.ua (наложка НП от 150 грн!)

Часы реального времени DS3231 RTC Arduino

На складе в г. Умань

Доставка по Украине

140 грн

Купить

Интернет-магазин «FreeBuy.in.ua»

Модуль часы реального времени DS1307 для Arduino rt

Доставка по Украине

184.23 грн

92.11 грн

Купить

Модуль часы реального времени DS1307 для Arduino ep

Доставка по Украине

202.88 грн

101.44 грн

Купить

Ephir.com.ua

Модуль часы реального времени DS1307 для Arduino ps

Доставка по Украине

174.90 грн

87.45 грн

Купить

Интернет магазин Pricess

Модуль часы реального времени DS1307 для Arduino

На складе в г. Ровно

Доставка по Украине

по 40 грн

от 15 продавцов

40 грн

Купить

Магазин «Панас»

DS1307 часы реального времени Arduino

На складе в г. Полтава

Доставка по Украине

29.99 грн

Купить

Интернет магазин «E-To4Ka»

Часы реального времени DS1307 Arduino AVR Pic

На складе в г. Умань

Доставка по Украине

33 грн

Купить

Интернет-магазин «FreeBuy.in.ua»

DS1307 часы реального времени Arduino

На складе в г. Полтава

Доставка по Украине

29.99 грн

Купить

IT Electronics

Часы реального времени с батарейкой DS3231SN

Доставка по Украине

87 грн

Купить

Інтернет — магазин Аруіно в Києві «RoboStore»

Часы реального времени DS3231 модуль RTC

Доставка из г. Кривой Рог

126 грн

Купить

Онлайн-магазин «КласМагаз»

RTC модуль реального часу на базі DS3231 для Raspberry Pi та Arduino

Доставка из г. Ровно

120 грн

Купить

Інтернет-магазин «Перша гуртівня електрики»

Модуль часы реального времени DS1307 для Arduino, 102973

На складе в г. Ровно

Доставка по Украине

50 грн

Купить

Интернет магазин » Горячий Стиль «

Модуль часы реального времени DS1307 для Arduino

Доставка по Украине

80 грн

75 грн

ІНТЕРНЕТ-МАГАЗИН «Доставлено «

Модуль часов реального времени DS3231 с отсеком для батарейки Diymore

На складе

Доставка по Украине

241 грн

Купить

DIYelectronics / Бесплатная доставка до 🍉🍉🍉на все заказы

Смотрите также

Часы реального времени DS1307 для Arduino (без батарейки) [#3-1]

На складе в г. Запорожье

Доставка по Украине

22.80 грн

Купить

Ardu.prom.ua (наложка НП от 150 грн!)

Модуль часы реального времени DS1307 для Arduino

На складе

Доставка по Украине

47 — 89 грн

от 5 продавцов

68 грн

51 грн

Купить

T2TV. com.ua | Онлайн Гипермаркет

Годинник реального часу DS1307Z

На складе

Доставка по Украине

10 грн

Купить

Інтернет-магазин «Мікроампер»

Часы реального времени DS3231

Доставка из г. Одесса

330 грн

Купить

Интернет магазин «controller.in.ua»

Часы реального времени DS3231

Доставка по Украине

187.50 грн

Купить

Интернет магазин «controller.in.ua»

DS1307 часы реального времени Arduino

Доставка из г. Полтава

по 29.99 грн

от 2 продавцов

29.99 грн

Купить

USCompany

Модуль часов реального времени DS3231

На складе

Доставка по Украине

116.40 грн

Купить

Магазин «Солдер»

Модуль часы реального времени DS1307 для Arduino

Доставка по Украине

164 грн

136 грн

Купить

Promsnab

Модуль часы реального времени DS1307 для Arduino

На складе в г. Ровно

Доставка по Украине

40 грн

Купить

Магазин «Freedelivery»

Модуль часов реального времени DS1307 RobotDyn

На складе в г. Одесса

Доставка по Украине

73 грн

Купить

DIYelectronics / Бесплатная доставка до 🍉🍉🍉на все заказы

Модуль часы реального времени DS1307 для Arduino

На складе в г. Ровно

Доставка по Украине

по 40 грн

от 4 продавцов

40 грн

Купить

KRONS интернет- магазин

DS1302 IIC часы реального времени

На складе в г. Николаев

Доставка по Украине

29 грн

Купить

Інтернет-магазин техніки та електроніки

Модуль часов реального времени DS1302 RTC для ARDUINO (без батареи)

Доставка из г. Днепр

39.70 грн

Купить

Інтернет-магазин «Електроніка»

Модуль RTC годинника реального часу DS3231

Доставка по Украине

192. 50 грн

Купить

«DiyLab» — інтернет-магазин електронних модулів та компонентів

Часы на Ардуино

Изготовление больших часов

на ардуино

Сегодня, мой милый друг, мы с тобой смастерим замечательные часы. Процесс довольно не простой, но и мы не лыком шиты, приступим!

Магиструм

самый умный

Необходимые комплектующие:

Адресные модульные светодиоды ws2812b 114 шт. или лента ws2812b 30 светодиодов на метр

Часы реального времени DS3231

Arduino Nano

Кнопки 3 шт.

Блок питания 5V , 1-2 A

Провода, макетная плата, резистор 200 Ом, припой и т.д.

Для начала, печатаем большие сегменты 28 шт на 3D принтере любым (желательно черным, как смоль) пластиком (я печатал PETG)
Поскольку стенки 1,6 мм, слайсер лучше настроить так:

Ссылка на модель сегмент STL

Печатаем малые сегменты 2 шт

org/ImageObject»>

Ссылка на модель STL

Модель для Ленты ws2812b:

Ссылка на модель для ленты STL

Далее можно отшпаклевать и покрасить или оставить в исходном виде (при качественной 3D печати и прямых руках) .
Экран можно напечатать белым пластиком на 3D принтере или вырезать из молочного оргстекла 1.5-2 мм.

Ссылка на экран STL

Вырезаем корпус часов.
Можно лобзиком, на лазере и тд. из фанеры 3 мм.
Стенки клеим в 3 слоя фанерой 3 мм или делаем по своему усмотрению.

Ссылка на чертеж Корел

Шкурим корпус, шпаклюем неровности.

Опять шкурим, грунтуем, красим

Стенки клеим в 3 слоя фанерой 3 мм или делаем по своему усмотрению.

Собираем сегменты.
Предварительно красим сегменты внутри белой водоэмульсионной краской.

Паяем согласно схеме

Плюс и Минус (GND) можно соединять между диодами последовательно, или параллельно, или последователно-параллельно ( как удобно).

Провод данных должен приходить c пина Ардуинки на Din первого диода, далее перемычка с Dout к следующему диоду Din по схеме :

Подключаем блок питания, вешаем на стену. Готово!

У тебя получились отличные часики, которыми можно хвастать перед друзьями, делать на их фоне селфи и отслеживать, как быстро утекает время. Ты молодец!

Магиструм

самый умный

Научим вашего ребенка реализовывать свои проекты!

Пробное бесплатное занятие длится 60-90 минут. За это время ребенок соберет своего первого робота

Точность тактовой частоты Arduino

Каждый Arduino имеет встроенный источник тактового сигнала, обычно работающий на частоте 8 или 16 МГц. В большинстве Arduino для генерации тактового сигнала используется кварцевый кристалл, но в некоторых моделях вместо него используется керамический резонатор.

Кажется, существует общее мнение, что керамические резонаторы не так хороши, как кристаллы [1][2][3]. Некоторые люди даже предупреждают, что керамические резонаторы вызывают проблемы с высокоскоростной последовательной связью, но другие оспаривают это. Возможно, какое-то измерение прольет свет на ситуацию.

Я измерил частоту Arduino Duemilanove с кварцевым резонатором и частоту Arduino Pro Mini

с керамическим резонатором. Короче говоря, кристалл действительно намного точнее керамического резонатора, хотя точность керамического резонатора достаточна для большинства приложений, включая последовательную связь. Длинная история написана ниже.

Тестовая установка

Ингредиенты:

  • Arduino Duemilanove с ATmega328 и кварцевым резонатором 16 МГц
  • Arduino Pro Mini 5V с ATmega328 и керамическим резонатором 16 МГц
  • GPS-защита Adafruit [4]
  • GPS-приемник EM-406A

Экран GPS установлен на Duemilanove, а выход PPS (импульсов в секунду) GPS-приемника подключен к входным контактам на обоих Arduino. Функция захвата входных данных ATmega328 используется для считывания значения счетчиков 16 МГц на обоих Arduino ровно один раз в секунду. Кроме того, датчик внутренней температуры ATmega считывается раз в секунду.

Скетч Arduino доступен здесь: arduinofreq.pde

К сожалению, прием GPS через мое окно не очень хороший. Бывают периоды, когда видно менее 4 спутников. Приемнику GPS требуется как минимум 4 спутника для точного расчета времени, в противном случае его сигнал PPS медленно отклоняется от точного времени. Это было решено путем удаления измерений менее чем с 4 спутниками из набора данных перед анализом.

Обратите внимание, что я измерил только один кристалл и только один керамический резонатор . Это серьезное ограничение, из-за которого трудно делать общие выводы. Возможно, например, что мой кристалл гораздо точнее большинства кристаллов. Правильным экспериментом было бы измерение нескольких плат из разных партий, но у меня нет времени на такие игры. Будем надеяться, что мои Arduino находятся где-то в типичном диапазоне.

Несоответствие частоты

Осцилляторы никогда не бывают ровно 16 МГц. Каждая составляющая имеет свое небольшое рассогласование частот. Получается, что мой кварц на 0,011% быстрее 16 МГц, а мой керамический резонатор на 0,077% медленнее 16 МГц.

Ни один из осцилляторов не подходит для создания будильника. Часы, предназначенные для работы на частоте ровно 16 МГц, будут отставать на 9 секунд в день с кварцевым генератором или терять 67 секунд в день с керамическим генератором. Точность можно повысить, измерив фактическую частоту генератора и откалибровав программу Arduino для этой частоты вместо 16 МГц. Это эффективно устраняет статическое рассогласование частот.

Оба генератора достаточно хороши для последовательной связи. Последовательный канал в стиле RS-232 обычно допускает несоответствие скорости передачи не менее 1%. По этому стандарту керамический резонатор все еще в 10 раз лучше, чем нужно.

Модель Ардуино Дуэмиланове ATmega328 Про Мини 5В ATmega328
Источник синхронизации Кристалл 16 МГц Керамический резонатор 16 МГц
Длительность измерения 18 часов
Диапазон частот 16001672 … 16001677 Гц 15987746 … 15987918 Гц
Средняя частота 16001674,7 Гц 15987821,8 Гц
Несоответствие от 16 МГц +105 частей на миллион −761 частей на миллион
Стандартное отклонение 0,7 Гц, среднеквадратичное значение 43,9 Гц, среднеквадратичное значение
Температура АРН 70 . .. 73 °С 65 … 67 °С

Стабильность частоты

Частота генератора не является точно постоянной; он все время меняется. Колебания частоты частично вызваны внешними факторами, такими как температура, и частично собственным шумом внутри генератора.

Стандартное отклонение частоты является первым признаком стабильности. Кристалл достаточно стабилен со стандартным отклонением всего 0,7 Гц, в то время как керамический резонатор гораздо более изменчив.

Стабильность часов зависит от промежутка времени, в течение которого они измеряются. Например, атомные часы чрезвычайно стабильны в течение дней и недель, но кристаллы более стабильны, чем атомные часы, в течение очень коротких периодов времени. Отклонение Аллана — это распространенный способ выразить стабильность часов при различной продолжительности измерения. [5] [6]

График отклонения Аллана выше показывает, что кристалл намного более стабилен, чем резонатор. Я должен отметить, что этот сюжет Аллана не совсем соответствует стандартам. Первоначальный нисходящий уклон Думиланове вызван исключительно ограниченным разрешением моих измерений. Наклон обеих линий вверх, вероятно, вызван изменением температуры во время измерения. В идеальных условиях типичные кварцевые генераторы намного точнее, чем то, что я здесь показываю.

Температурная чувствительность

Частота генератора изменяется в зависимости от температуры. Я измерял частоту генератора и внутреннюю температуру ресивера в течение нескольких дней. Поскольку резонатор находится близко к AVR на платах Arduino, я предполагаю, что они испытывают примерно одинаковые колебания температуры.

Результат показывает сильную связь между температурой и частотой. Кристалл на моем Duemilanove смещается почти на 1 Гц на градус Цельсия, в то время как керамический резонатор на Pro Mini примерно в 100 раз более чувствителен к температуре.

Модель Ардуино Дуэмиланове ATmega328 Про Мини 5В ATmega328
Источник синхронизации Кристалл 16 МГц Керамический резонатор 16 МГц
Длительность измерения 158 часов
Диапазон частот 16001671 . .. 16001730 Гц 15983561 … 15988135 Гц
Средняя частота 16001679 Гц 15987508 Гц
Стандартное отклонение 7,4 Гц, среднеквадратичное значение 720 Гц, среднеквадратичное значение
Температура АРН 68 … 110 °С 64 … 96 °С
Температурный коэффициент +0,97 Гц/°С −139 Гц/°С
Остаток температурной посадки 2,4 Гц, среднеквадратичное значение 91,4 Гц, среднеквадратичное значение

Чувствительность к напряжению питания

Большинство генераторов чувствительны к изменениям напряжения питания. Напряжение питания цифровых плат, таких как Arduino, не всегда очень стабильно, особенно при использовании переменного тока.

Чтобы проверить чувствительность к напряжению, я запрограммировал обе платы Arduino на переключение цифрового вывода один раз в секунду в случайном порядке. При включении выходной контакт посылает ток ~ 30 мА на резистор 120 Ом. Дополнительный ток приводит к падению напряжения питания 5 В на Arduino примерно на 50 мВ. Если генератор чувствителен к изменению напряжения, его частота будет изменяться в зависимости от состояния включения/выключения цифрового выхода.

Коэффициент напряжения питания определяется путем сопоставления состояния включения/выключения выходного контакта с измерениями частоты. Частота кристалла Duemilanove падает в среднем на 1,6 Гц, когда выходной контакт включен. Опять же, керамический резонатор Pro Mini намного чувствительнее.

Модель Ардуино Дуэмиланове ATmega328 Про Мини 5В ATmega328
Источник синхронизации Кристалл 16 МГц Керамический резонатор 16 МГц
Длительность измерения 33 часа
Диапазон частот 16001672 . .. 16001709 Гц 15984765 … 15988044 Гц
Средняя частота 16001680 Гц 15987434 Гц
Переменный выходной ток 33 мА п.п. 34 мА стр.
Изменение напряжения питания 5 В 50 мВ стр. 30 мВ стр.
Изменение частоты
коррелирует с выходным током
−1,6 Гц −76,2 Гц
Коэффициент напряжения питания +0,03 Гц/мВ +2,5 Гц/мВ

Выводы

(Обратите внимание, что эти выводы основаны на очень ограниченном тесте только с одним кристаллом и одним керамическим резонатором.)

  • Кварцевый генератор на Duemilanove намного точнее, чем керамический резонатор на Pro Mini.
  • Оба генератора достаточно точны для большинства приложений, включая высокоскоростную последовательную связь.
  • Ни один из генераторов не подходит для использования в будильнике без калибровки. Кварцевый генератор может быть достаточно хорош, если программа Arduino откалибрована для компенсации несоответствия частоты конкретного кристалла, на котором он работает. Керамический осциллятор все равно будет недостаточно хорош даже после калибровки.
  • Arduino нагревается под прямыми солнечными лучами.

Каталожные номера

  • [1] Ladyada, Часто задаваемые вопросы по Arduino UNO
  • [2] Использование кристаллов (по сравнению с керамическими резонаторами)
  • [3] Рекомендации для следующей версии Arduino
  • [4] Ladyada, щит GPS
  • [5] У. Дж. Райли, Справочник по анализу стабильности частоты, NIST, 2008.
  • [6] Джон Акерманн, Стабильность частоты и точность в реальном мире
  • [7] Том Дуниган, Измерения смещения частоты различных источников синхронизации

Контактный телефон

Комментарии, предложения, исправления приветствуются на joris  (a)  vjorisvr. nl

Проект ClockClock — SparkFun Learn

  • Домашняя страница
  • Учебники
  • Проект «Часовые часы»

≡ Страниц

Авторы: Алчитри, Элл C

Избранное Любимый 12

Который час?! Пришло время для крутого проекта Alchitry, вот что! В этом уроке я расскажу вам, как я построил ClockClock, используя Alchitry Au для управления всеми моторами.

Что такое ClockClock? Это просто часы из часов! Идея состоит в том, чтобы использовать множество аналоговых часов вместе, чтобы сформировать цифры времени. Итак, мета.

Во-первых, позвольте мне начать с того, что это не было моей первоначальной идеей. Я столкнулся с этой концепцией несколько лет назад и всегда думал, что это будет отличный демонстрационный проект FPGA, поскольку он требует очень много управляющих сигналов. Оригинальные часы можно найти здесь.

Есть несколько причин, по которым этот проект является таким замечательным демонстрационным проектом FPGA. Во-первых, для часов требуется 48 шаговых двигателей. Есть 24 «часа», и у каждого из них две независимые стрелки. Использование стандартного шагового драйвера шага/направления означает, что вам нужно два управляющих сигнала на двигатель или 96 выходов. Я хотел иметь возможность отключать драйверы, когда часы стояли, для экономии энергии. Это добавило еще четыре выхода (по одному на каждую «цифру» часов). Я также хотел использовать Arduino для создания анимации, так как было бы намного проще сделать это в коде, чем на оборудовании. Чтобы поговорить с Arduino, я решил использовать I 2 C через разъем Qwiic от Alchitry Au. Для этого потребовалось еще два вывода ввода-вывода, всего их стало 102. Удобно, что у Alchitry Au ровно 102 вывода ввода-вывода.

Помимо демонстрации огромного количества операций ввода-вывода, на которые способны FPGA, в этом проекте используется разъем Qwiic на FPGA полунетрадиционным способом. FPGA в этом проекте действует как периферийное устройство, а не как контроллер. Arduino является контроллером и выдает все команды на FPGA. Я действительно думаю, что это будет полезная парадигма для многих проектов.

Некоторые задачи очень просты программно, но невероятно сложны аппаратно. Обратное тоже верно. Объединив микроконтроллер и ПЛИС вместе, вы получите лучшее из обоих миров. Разъем Qwiic на обеих платах упрощает эту задачу.

Необходимые материалы

Чтобы следовать этому руководству, вам понадобятся следующие материалы. Вам может не понадобиться все, хотя в зависимости от того, что у вас есть. Добавьте его в корзину, прочитайте руководство и при необходимости настройте корзину.

Инструменты

Хотя существует несколько способов обработки деталей для этого проекта, вот инструменты, которые мы использовали:

  • 3D-принтер
  • Шейпоко XXL

Вам также понадобится

  • 48-кратный шаговый двигатель с редуктором клапана
  • Модуль для погружения с шаговым двигателем StepStick 48x с радиатором
  • 1x UBEC Регулируемый BEC UBEC 2-6S для квадрокоптера RC Drone
  • 1x Закрытый импульсный источник питания переменного/постоянного тока

Рекомендуемая литература

Если вы не знакомы с системой Qwiic, рекомендуем ознакомиться с обзором здесь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *