1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/blackwalnutlabs-waffle-nano-v1-sensor-lib

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 2.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 11:41 32949f0

DS1307

Датчик

DS1307 использует I2C протокол.

Адреса регистров:

Изображение: Timekeeper_Registers

Физическое подключение

Tiny RTC DS1307 и Waffle nano подключаются с использованием меньшего количества контактов на левой стороне. Требуется только четыре провода для подключения к основной плате.

  • SCL --> G01
  • SDA --> G00
  • VCC --> 3V3
  • GND --> GND

Библиотека датчиков

Библиотека датчиков называется ds1307, она предоставляет следующие функции:

  • get_time() — запрос времени;
  • set_time() — установка времени;
  • query_halt() — запрос состояния;
  • set_halt() — установка состояния.

Использование:

from machine import I2C, Pin
import ds1307

i2c = I2C(1, sda = Pin(0), scl = Pin(1), freq = 100000)
ds = ds1307.DS1307(i2c) # передача интерфейса
ds.set_halt(False) # запуск отсчёта времени
now = (year, month, day, date, hour, minute, second, subsecond) # запись текущего времени
ds.set_time(now) # установка времени
print(ds.get_time()) # запрос времени

Пример кода:

>>> from machine import I2C, Pin
>>> import ds1307
>>> i2c = I2C(1, sda = Pin(0), scl = Pin(1), freq = 100000)
>>> ds = ds1307.DS1307(i2c)
>>> i2c.scan()				# запрос адресов интерфейса
[80, 104]
>>> ds.query_halt() 			# проверка, остановлены ли часы
False							# часы не остановлены
>>> ds.get_time() 				# запрос времени
(2021, 7, 16, 5, 20, 54, 7, 0)  # текущее время
>>> ds.get_time() 				# ожидание 8 секунд
(2021, 7, 16, 5, 20, 54, 16, 0) 
>>> ds.get_time()				# ожидание 10 секунд
(2021, 7, 16, 5, 20, 54, 26, 0)
>>> ds.set_halt(True)			# остановка часов
>>> ds.get_time()				# получение времени
(2021, 7, 16, 5, 20, 54, 43, 0) 
>>> ds.get_time()				# ожидание 5 секунд
(2021, 7, 16, 5, 20, 54, 43, 0) # время не изменилось
>>> ds.set_halt(False)			# запуск часов
>>> ds.get_time()				# получение времени
(2021, 7, 16, 5, 20, 54, 49, 0)
>>> ds.get_time()				# ожидание 5 секунд
(2021, 7, 16, 5, 20, 54, 54, 0)

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/blackwalnutlabs-waffle-nano-v1-sensor-lib.git
git@api.gitlife.ru:oschina-mirror/blackwalnutlabs-waffle-nano-v1-sensor-lib.git
oschina-mirror
blackwalnutlabs-waffle-nano-v1-sensor-lib
blackwalnutlabs-waffle-nano-v1-sensor-lib
master