La placa Tiny RTC I2C Modules va resultar ser un dispositiu molt útil. Tan aviat com presento una imatge amb la connexió de dos microxips amb un cinturó al panell, es torna una mica incòmode amb el nombre de connexions poc fiables. Els mòduls Tiny RTC I2C són molt còmodes d’utilitzar per treballar amb xip de rellotge en temps real ds1307Z amb una interfície I2C en sèrie, un xip de memòria 24C32 amb una interfície I2C en sèrie, la capacitat d’instal·lar un sensor de temperatura ds18b20. També podeu obtenir polsos rectangulars precisos a partir de la setena sortida del xip ds1307Z, al connector que es marca amb les lletres SQ. A la placa de circuit dels mòduls Tiny RTC I2C, és difícil veure que el setè passador del xip ds1307Z està connectat al setè pin del connector P1.
Esquema de la Mòdul RTC I2C Tiny:
Abans de comprar, vaig buscar informació a Internet. Vaig saber que la pissarra estava feta per funcionar amb una bateria de liti, difícil de comprar. Els compradors de la placa Tiny RTC I2C Modules van instal·lar una bateria de liti en lloc de la bateria i la placa no funcionava correctament. El microcircuit consumeix molt poca potència, de manera que la placa es pot utilitzar amb una bateria de liti. Per fer-ho, traieu els components de ràdio següents de la placa de mòduls Tiny RTC I2C: díode D1, resistència R4 i soldeu el pont a lloc de R6. També he tret la resistència R7, ja que m'he familiaritzat amb el circuit típic per engegar el xip ds1307.
Circuits típics ds1307:
Podeu obtenir més informació sobre com finalitzar el tauler Tiny RTC I2C Modules a partir d’un vídeo enregistrat i publicat a la xarxa pel camarada Alexei Bukreev.
Full de dades del xip ds1307:
Veure fitxer en línia:
Veure fitxer en línia:
Vaig connectar la pissarra Arduino Pro Mini amb mòduls Tiny RTC I2C i Arduino Pro Mini amb adaptador de sèrie USB CH340G.
Executem el codi per determinar les adreces dels microcircuits ds1307 i 24C32.
Codi en si:
#incloure
Cadena de cordaOne;
nul configuració ()
{
Wire.begin ();
Serial.begin (9600);
while (! serial);
}
bucle void ()
{
error de byte, adreça;
int nDevices;
Serial.println ("Escaneig ...");
nDevices = 0;
per a (adreça = 1; adreça & lt; 127; adreça ++)
{
Wire.beginTransmission (adreça);
error = Wire.endTransmission ();
if (error == 0)
{
String stringOne = Cadena (adreça, HEX);
Serial.print ("0x"); Serial.print (stringOne); Serial.print ("-");
if (stringOne == "0A") Serial.println ("" Controlador de motor "");
if (stringOne == "0F") Serial.println ("'Motor Driver'");
if (stringOne == "1D") Serial.println ("" Acceleròmetre digital de 3 eixos ADXL345 d'entrada "");
if (stringOne == "1E") Serial.println ("'HMC5883 Compàs digital de 3 eixos'");
if (stringOne == "5A") Serial.println ("" Sensor tàctil "");
if (stringOne == "5B") Serial.println ("'Sensor tàctil'");
if (stringOne == "5C") Serial.println ("'Sensor de llum digital BH1750FVI' O 'Sensor tàctil");
if (stringOne == "5D") Serial.println ("" Sensor tàctil "");
if (stringOne == "20") Serial.println ("" Amplificador d'E / S de 8 bits PCF8574 'O' Adaptador LCD LCM1602 '");
if (stringOne == "21") Serial.println ("'Expandidor d'E / S de 8 bits PCF8574'");
if (stringOne == "22") Serial.println ("'Expandidor d'E / S de 8 bits PCF8574'");
if (stringOne == "23") Serial.println ("'PCF8574 Expandidor d'E / S de 8 bits' O 'Sensor de llum digital BH1750FVI'");
if (stringOne == "24") Serial.println ("'Expandidor d'E / S de 8 bits PCF8574'");
if (stringOne == "25") Serial.println ("'Expandidor d'E / S de 8 bits PCF8574'");
if (stringOne == "26") Serial.println ("'Expandidor d'E / S de 8 bits PCF8574'");
if (stringOne == "27") Serial.println ("'PCF8574 Expandidor d'E / S de 8 bits' O 'Adaptador LCD LCM1602'");
if (stringOne == "39") Serial.println ("'Sensor de llum ambiental TSL2561'");
if (stringOne == "40") Serial.println ("'Sensor de pressió baromètrica BMP180'");
if (stringOne == "48") Serial.println ("'Mòdul ADS1115 16-Bit'");
if (stringOne == "49") Serial.println ("" Mòdul ADS1115 16-Bit 'O' SPI-a-UART '");
if (stringOne == "4A") Serial.println ("'Mòdul ADS1115 16-Bit'");
if (stringOne == "4B") Serial.println ("'Mòdul ADS1115 16-Bit'");
if (stringOne == "50") Serial.println ("'AT24C32 EEPROM'");
if (stringOne == "53") Serial.println ("" ADXL345 Acceleròmetre digital de 3 eixos d'entrada "");
if (stringOne == "68") Serial.println ("" Rellotge en temps real DS3231 "");
if (stringOne == "7A") Serial.println ("'LCD OLED 128x64'");
if (stringOne == "76") Serial.println ("'Sensor de pressió baromètrica BMP280'");
if (stringOne == "77") Serial.println ("'Sensor de pressió baromètrica BMP180' O 'Sensor de pressió baromètric BMP280'");
if (stringOne == "78") Serial.println ("'LCD OLED 128x64'");
nDevices ++;
}
else if (error == 4)
{
Serial.print ("Error desconegut a l'adreça 0x");
if (adreça & lt; 16)
Serial.print ("0");
Serial.println (adreça, HEX);
}
}
if (nDevices == 0)
Serial.println ("No s'han trobat dispositius I2C \ n");
més
Serial.println ("fet \ n");
retard (5000);
}
Després d 'iniciar l' Arduino IDE, escollí el model de la placa arduino, instal·là el port sèrie (tinc com31) i copià el codi situat anteriorment a una finestra amb substitució de text. Vaig començar la compilació, mentre que l’ID Arduino demana guardar la carpeta d’esbossos. Feu clic a desa i es compilarà la IDE Arduino. Escrivim el programa a la placa arduino i en el monitor de port sèrie veiem el següent:
Així doncs, ens hem assegurat que les plaques estan connectades correctament.
Ara, per treballar amb el microcircuit en temps real (ds1307), cal instal·lar la biblioteca "Biblioteca universal iarduino_RTC.zip"
Fitxer: iarduino_RTC.zip Biblioteca Universal:
Després d’instal·lar la biblioteca i reiniciar l’Arduino IDE, executeu l’exemple de gettime:
Després de compilar, escrivint el programa a la placa arduino, al monitor de port sèrie veurem el resultat del xip en temps real.
A la foto de sota, el meu Arduino Pro Mini:
Gaudeix d'unes bones compres!
Cost: ~ 29