Het Tiny RTC I2C Modules-bord bleek een erg handig apparaat te zijn. Zodra ik een foto presenteer met de verbinding van twee microchips met een riempje op het breadboard, wordt het een beetje ongemakkelijk met het aantal onbetrouwbare verbindingen. Het Tiny RTC I2C Modules-bord is erg handig om te gebruiken voor het werken met de ds1307Z real-time klokchip met een seriële I2C-interface, een 24C32-geheugenchip met een seriële I2C-interface, de mogelijkheid om een ds18b20-temperatuursensor te installeren. U kunt ook nauwkeurige rechthoekige pulsen krijgen van de 7e uitgang van de ds1307Z-chip, op de connector is deze gemarkeerd met de letters SQ. Op de printplaat van de Tiny RTC I2C-modules is het moeilijk te zien dat de zevende pin van de ds1307Z-chip is aangesloten op de zevende pin van de P1-connector.
Klein RTC I2C-modulesbordschema:
Voordat ik iets kocht, zocht ik informatie op internet. Ik heb geleerd dat het bord is gemaakt om met een lithiumbatterij te werken, wat moeilijk te kopen is. Kopers van het Tiny RTC I2C Modules-bord installeerden een lithiumbatterij in plaats van de batterij en het bord werkte niet correct. De microschakeling verbruikt heel weinig stroom, dus het bord is te gebruiken met een lithiumbatterij. Om dit te doen, verwijdert u de volgende radiocomponenten van de Tiny RTC I2C Modules-kaart: diode D1, weerstand R4 en soldeer de jumper in plaats van R6. Ik heb ook de weerstand R7 verwijderd, omdat ik vertrouwd was geraakt met het typische circuit voor het inschakelen van de ds1307-chip.
Typische DS1307-schakelingen:
Je kunt meer leren over het voltooien van het Tiny RTC I2C Modules-bord van een video die is opgenomen en gepubliceerd op het netwerk door kameraad Alexei Bukreev.
Gegevensblad op de DS1307-chip:
Bekijk online bestand:
Bekijk online bestand:
Ik heb het bord aangesloten Arduino Pro Mini met Tiny RTC I2C-modules en Arduino Pro Mini met USB seriële adapter CH340G.
Voer de code uit om de adressen van de ds1307- en 24C32-microschakelingen te bepalen.
Code zelf:
#include
String stringOne;
ongeldige setup ()
{
Wire.begin ();
Serial.begin (9600);
terwijl (! Serial);
}
leegte lus ()
{
bytefout, adres;
int nApparaten;
Serial.println ("Scannen ...");
nDevices = 0;
voor (adres = 1; adres & lt; 127; adres ++)
{
Wire.beginTransmission (adres);
error = Wire.endTransmission ();
if (fout == 0)
{
String stringOne = String (adres, HEX);
Serial.print ("0x"); Serial.print (stringOne); Serial.print ("-");
if (stringOne == "0A") Serial.println ("'Motor Driver'");
if (stringOne == "0F") Serial.println ("'Motor Driver'");
if (stringOne == "1D") Serial.println ("'ADXL345 Input 3-assige digitale versnellingsmeter'");
if (stringOne == "1E") Serial.println ("'HMC5883 3-assig digitaal kompas'");
if (stringOne == "5A") Serial.println ("'Touch Sensor'");
if (stringOne == "5B") Serial.println ("'Touch Sensor'");
if (stringOne == "5C") Serial.println ("'BH1750FVI digitale lichtsensor' OF 'aanraaksensor");
if (stringOne == "5D") Serial.println ("'Touch Sensor'");
if (stringOne == "20") Serial.println ("'PCF8574 8-bits I / O-uitbreiding' OF 'LCM1602 LCD-adapter'");
if (stringOne == "21") Serial.println ("'PCF8574 8-bits I / O-uitbreiding'");
if (stringOne == "22") Serial.println ("'PCF8574 8-bits I / O-uitbreiding'");
if (stringOne == "23") Serial.println ("'PCF8574 8-bits I / O-uitbreiding' OF 'BH1750FVI digitale lichtsensor'");
if (stringOne == "24") Serial.println ("'PCF8574 8-bits I / O-uitbreiding'");
if (stringOne == "25") Serial.println ("'PCF8574 8-bits I / O-uitbreiding'");
if (stringOne == "26") Serial.println ("'PCF8574 8-bits I / O-uitbreiding'");
if (stringOne == "27") Serial.println ("'PCF8574 8-bits I / O-uitbreiding' OF 'LCM1602 LCD-adapter'");
if (stringOne == "39") Serial.println ("'TSL2561 Omgevingslichtsensor'");
if (stringOne == "40") Serial.println ("'BMP180 barometrische druksensor'");
if (stringOne == "48") Serial.println ("'ADS1115 Module 16-Bit'");
if (stringOne == "49") Serial.println ("'ADS1115 Module 16-bits' OF 'SPI-naar-UART'");
if (stringOne == "4A") Serial.println ("'ADS1115 Module 16-Bit'");
if (stringOne == "4B") Serial.println ("'ADS1115 Module 16-Bit'");
if (stringOne == "50") Serial.println ("'AT24C32 EEPROM'");
if (stringOne == "53") Serial.println ("'ADXL345 Input 3-assige digitale versnellingsmeter'");
if (stringOne == "68") Serial.println ("'DS3231 real-time klok'");
if (stringOne == "7A") Serial.println ("'LCD OLED 128x64'");
if (stringOne == "76") Serial.println ("'BMP280 barometrische druksensor'");
if (stringOne == "77") Serial.println ("'BMP180 barometrische druksensor' OF 'BMP280 barometrische druksensor'");
if (stringOne == "78") Serial.println ("'LCD OLED 128x64'");
nDevices ++;
}
anders als (fout == 4)
{
Serial.print ("Onbekende fout op adres 0x");
if (adres & lt; 16)
Serial.print ("0");
Serial.println (adres, HEX);
}
}
if (nDevices == 0)
Serial.println ("Geen I2C-apparaten gevonden \ n");
anders
Serial.println ("gedaan \ n");
vertraging (5000);
}
Na het starten van de Arduino IDE, het kiezen van het model van het arduino-bord, het installeren van de seriële poort (ik heb com31), en het kopiëren van de hierboven gelokaliseerde code in een venster met tekstvervanging. Ik begon de compilatie, terwijl de Arduino IDE vraagt om de schetsmap op te slaan. Klik op opslaan en de Arduino IDE zal compileren. We schrijven het programma naar het Arduino-bord en in de seriële poortmonitor zien we het volgende:
Daarom hebben we ervoor gezorgd dat de kaarten correct zijn aangesloten.
Om nu met de real-time microcircuit (ds1307) te kunnen werken, moet je de bibliotheek "Universal library iarduino_RTC.zip" installeren
Bestand: iarduino_RTC.zip universele bibliotheek:
Nadat je de bibliotheek hebt geïnstalleerd en de Arduino IDE opnieuw hebt opgestart, voer je het gettime-voorbeeld uit:
Na het voltooien van de compilatie, het schrijven van het programma naar het Arduino-bord, zullen we in de seriële poortmonitor het resultaat van de realtime chip zien.
Op de onderstaande foto, mijn Arduino Pro Mini:
Lekker winkelen!
Kosten: ~ 29