Платката Tiny RTC I2C Modules се оказа много полезно устройство. Щом представям снимка със свързването на два микрочипа с каишка на дъската, става малко неудобно с броя на ненадеждните връзки. Платката Tiny RTC I2C Modules е много удобна за използване за работа с часовника чип в реално време ds1307Z със сериен I2C интерфейс, 24C32 чип памет с сериен I2C интерфейс, възможност за инсталиране на сензор за температура ds18b20. Можете също да получите точни правоъгълни импулси от 7-ия изход на чипа ds1307Z, на конектора е маркиран с буквите SQ. На платката на модулите Tiny RTC I2C е трудно да се види, че седмият щифт на чипа ds1307Z е свързан със седмия щифт на P1 конектора.
Схематична платка за малки модули RTC I2C:
Преди да купя, потърсих информация в Интернет. Научих, че платката е направена да работи с литиева батерия, която е трудно да се купи. Купувачите на платката Tiny RTC I2C Modules са инсталирали литиева батерия вместо батерията и платката не работи правилно. Микросхемата консумира много малко енергия, така че платката може да се използва с литиева батерия. За да направите това, отстранете следните радио компоненти от платката на Tiny RTC I2C модулите: диод D1, резистор R4 и спойка джъмпера на мястото на R6. Извадих и резистора R7, като се запознах с типичната схема за включване на чипа ds1307.
Типична схема ds1307:
Можете да научите повече за финализирането на платката Tiny RTC I2C Modules от видео, записано и публикувано в мрежата от другаря Алексей Букреев.
Информационен лист за чипа ds1307:
Вижте онлайн файла:
Вижте онлайн файла:
Свързах платката Arduino Pro Mini с малки RTC I2C модули и Arduino Pro Mini с USB сериен адаптер CH340G.
Пуснете кода, за да определите адресите на микросхемите ds1307 и 24C32.
Самият код:
#include
String stringOne;
настройка за невалидност ()
{
Wire.begin ();
Serial.begin (9600);
докато (! сериен);
}
void loop ()
{
байтова грешка, адрес;
int nУстройства;
Serial.println ("Сканиране ...");
nУстройства = 0;
за (адрес = 1; адрес & 127; адрес ++)
{
Wire.beginTransmission (адрес);
грешка = Wire.endTransmission ();
ако (грешка == 0)
{
String stringOne = String (адрес, HEX);
Serial.print ("0x"); Serial.print (stringOne); Serial.print ("-");
if (stringOne == "0A") Serial.println ("" Драйвер на двигателя "");
if (stringOne == "0F") Serial.println ("'Драйвер на двигателя" ");
if (stringOne == "1D") Serial.println ("'ADXL345 Вход 3-осен цифров акселерометър'");
if (stringOne == "1E") Serial.println ("'Цифров компас HMC5883 с 3 оси'");
if (stringOne == "5A") Serial.println ("'сензор за докосване" ");
if (stringOne == "5B") Serial.println ("'сензор за докосване" ");
if (stringOne == "5C") Serial.println ("'цифров сензор за светлина BH1750FVI' ИЛИ 'сензор за докосване');
if (stringOne == "5D") Serial.println ("'сензор за докосване" ");
if (stringOne == "20") Serial.println ("'PCF8574 8-битов I / O Expander' ИЛИ LCM1602 LCD адаптер '");
if (stringOne == "21") Serial.println ("'PCF8574 8-битов I / O Expander'");
if (stringOne == "22") Serial.println ("'PCF8574 8-битов I / O Expander'");
if (stringOne == "23") Serial.println ("'PCF8574 8-битов I / O Expander' ИЛИ BH1750FVI цифров сензор за светлина" ");
if (stringOne == "24") Serial.println ("'PCF8574 8-битов I / O Expander'");
if (stringOne == "25") Serial.println ("'PCF8574 8-битов I / O Expander'");
if (stringOne == "26") Serial.println ("'PCF8574 8-битов I / O Expander'");
if (stringOne == "27") Serial.println ("'PCF8574 8-битов I / O Expander' ИЛИ LCM1602 LCD адаптер '");
if (stringOne == "39") Serial.println ("'Датчик за околната светлина" ");
if (stringOne == "40") Serial.println ("'сензор за барометрично налягане BMP180'");
if (stringOne == "48") Serial.println ("'ADS1115 Модул 16-битов'");
if (stringOne == "49") Serial.println ("'ADS1115 Модул 16-битов' ИЛИ 'SPI-to-UART'");
if (stringOne == "4A") Serial.println ("'ADS1115 Модул 16-битов'");
if (stringOne == "4B") Serial.println ("'ADS1115 Модул 16-битов'");
if (stringOne == "50") Serial.println ("'AT24C32 EEPROM'");
if (stringOne == "53") Serial.println ("'ADXL345 Вход 3-осен цифров акселерометър'");
if (stringOne == "68") Serial.println ("'часовник в реално време DS3231");
if (stringOne == "7A") Serial.println ("'LCD OLED 128x64'");
if (stringOne == "76") Serial.println ("'BMP280 сензор за барометрично налягане" ");
if (stringOne == "77") Serial.println ("'сензор за барометрично налягане BMP180' ИЛИ 'BMP280 сензор за барометрично налягане'");
if (stringOne == "78") Serial.println ("'LCD OLED 128x64'");
nУстройства ++;
}
иначе ако (грешка == 4)
{
Serial.print ("Неизвестна грешка на адрес 0x");
ако (адрес <16)
Serial.print ("0");
Serial.println (адрес, HEX);
}
}
ако (nУстройства == 0)
Serial.println ("Няма намерени устройства I2C \ n");
още
Serial.println ("свършено \ n");
забавяне (5000);
}
След стартиране на Arduino IDE, изберете модела на дъската arduino, инсталирате серийния порт (имам com31) и копирах горния локализиран код в прозорец с подмяна на текст. Започнах компилацията, докато Arduino IDE моли да запази папката на скицата. Кликнете върху запазване и Arduino IDE ще се компилира. Ще напишем програмата на arduino платката и в монитора на серийния порт ще видим следното:
Така че ние се уверихме, че дъските са свързани правилно.
Сега, за да работите с микросхемата в реално време (ds1307), трябва да инсталирате библиотеката „Universal library iarduino_RTC.zip“
Файл: iarduino_RTC.zip универсална библиотека:
След като инсталирате библиотеката и рестартирате Arduino IDE, стартирайте примера на gettime:
След приключване на компилацията, записване на програмата на arduino дъската, в монитора на серийния порт ще видим резултата от чипа в реално време.
На снимката по-долу, моят Arduino Pro Mini:
Приятно пазаруване!
Цена: ~ 29