Подключил модуль реального времени к ардуине. Основной вывод - можно пользоваться I2C протоколом, абсолютно его не понимая. По описанию протокола он позволяет подключать множество устройств к одной двухпроводной шине, каждому назначается свой ID, путем опроса можно общаться с любым.
Купил модуль I2C RTC DS1307 AT24C32 Real Time Clock Module for Arduino 51 AVR ARM PIC (http://www.aliexpress.com/item/Free-Shipping-I2C-RTC-DS1307-AT24C32-Real-Time-Clock-Module-for-Arduino-51-AVR-ARM-PIC/1786267095.html, были дешевле, но без отзывов на тот момент). Батарейка CR2032 была в запасах.
Запаял семипиновую гребенку SQ, DS, SCL, SDA, VCC, GND, BAT (на втором ряду контактов выводов меньше, решил, вдруг пригодятся).
Как потом выяснилось, реально нужны только 4 - SCL, SDA, VCC, GND.
А дальше просто нагуглил статью http://www.instructables.com/id/Sleep-Cycle-Alarm-Clock-with-Motion-Sensor/?ALLSTEPS. Там по ссылкам взял две либы, DS1307RTC и Time. Что удивило, в либе ни слова про то, куда подключать модуль, похоже I2C в ардуино стандартизирован. Описание подключения взял в самой статье: Attach the RTC to 5V, Ground, A4, and A5.
Дальше просто взял пример из DS1307RTC - ReadTest. Он первым делом написал, что нужно сначала запустить соседний пример SetTime. Запустил, время выставилось, и теперь ReadTest выдает это:
Купил модуль I2C RTC DS1307 AT24C32 Real Time Clock Module for Arduino 51 AVR ARM PIC (http://www.aliexpress.com/item/Free-Shipping-I2C-RTC-DS1307-AT24C32-Real-Time-Clock-Module-for-Arduino-51-AVR-ARM-PIC/1786267095.html, были дешевле, но без отзывов на тот момент). Батарейка CR2032 была в запасах.
Запаял семипиновую гребенку SQ, DS, SCL, SDA, VCC, GND, BAT (на втором ряду контактов выводов меньше, решил, вдруг пригодятся).
Как потом выяснилось, реально нужны только 4 - SCL, SDA, VCC, GND.
А дальше просто нагуглил статью http://www.instructables.com/id/Sleep-Cycle-Alarm-Clock-with-Motion-Sensor/?ALLSTEPS. Там по ссылкам взял две либы, DS1307RTC и Time. Что удивило, в либе ни слова про то, куда подключать модуль, похоже I2C в ардуино стандартизирован. Описание подключения взял в самой статье: Attach the RTC to 5V, Ground, A4, and A5.
Дальше просто взял пример из DS1307RTC - ReadTest. Он первым делом написал, что нужно сначала запустить соседний пример SetTime. Запустил, время выставилось, и теперь ReadTest выдает это:
DS1307RTC Read Test
-------------------
Ok, Time = 08:24:25, Date (D/M/Y) = 12/4/2015
Ok, Time = 08:24:26, Date (D/M/Y) = 12/4/2015
Итак, понимания работы I2C не появилось. Как задается ID модуля? Почему используются аналоговые пины?
Комментариев нет:
Отправить комментарий