DS3231: chaiyo nguva wachi uye karenda yeako Arduino

DS3231

Mune mamwe mapurojekiti zvakafanira kuve nehumbowo hwenguva, awa, kana zuva. Zvichida nekuda kwekudiwa kwekuita mamwe mabasa zvichienderana nenguva, kuchengetedza karenda yezviitiko kana kunyoreswa, kuchengetedza iyo nguva muchirongwa, kana kungo gadzira wachi yedhijitari. naArduino. With iyo DS3231 unogona kuiwana, imwe yeiyo zvikamu izvo isu tinowedzera kune izvo zvinyorwa.

Iyo DS3231 ndiyo module yawanga uchitsvaga, uye pano iwe unowana zvese zvaunoda kuti utonge uye ini zvakare ndinokuratidza muenzaniso wekuti zvibatanidze pamwe neArduino nemuenzaniso unoshanda ...

Chii chinonzi DS3231?

DS3231

Chekutanga pane zvese, iwe unofanirwa kuziva kuti a RTC (Yechokwadi Nguva Clock), kana chaiyo nguva wachi. Aya machipisi anowanzoitika muhuwandu hwekushandisa, muchokwadi, PC yako ine imwe yadzo pane yako mamaboard, uye zvakare inofambiswa ne CR2032 bhatiri zvakare. Iyo ndiyo inochengeta iyo nguva uye kumisikidzwa muBIOS / UEFI uye kubva kune iyo iyo sisitimu yekutora inotora painotora nguva kuti ive nenguva (kunyangwe izvozvi, neInternet, kuwiriranisa nemaseva kunogona kushandiswa zvakanyanya kunyatsoita, asi izvi imwe nyaya…).

Zvinoitwa neRTC kuwana zviyero zvenguva, zviri nyore. Musiyano kubva kune mamwe marudzi emawatch emagetsi ndeokuti ivo vanongori pima nguva, uye inoita saizvozvo nekuverenga nguva dzemasaini echiratidzo, ichiziva kuwanda kwayo uye nguva. Mukuwedzera kune iyo nguva, iyo RTC zvakare inobvumidza iwe kuti uchengete kuverenga kwemazuva, vhiki, mwedzi nemakore. Ndokunge, iro izere zuva ...

Kuti izvi zvigoneke, iyo RTC inofanira kuperekedzwa ne Xtal kana quartz kristaro iyo inoshanda senge resonator, iyo inopa iyo frequency. Pamusoro pezvo, iwe unoda magetsi emagetsi anokwanisa kuverenga uye kuchengetedza zuva racho mundangariro. Iwo matunhu anofanirwa kunge achikwanisa kuverenga masekondi, maminetsi, maawa, mazuva, vhiki, mwedzi nemakore.

Esa ndangariro dzinochinjaNdicho chikonzero nei ichida bhatiri, kuti ive nesimba rinogara riripo. Kana iwe usina bhatiri kana iyo ikapera, ichadzimwa ... Ndozvinoitika kumaPC kana bhatiri rapera, ivo vanopa isiri nguva. Kana iwe ukaimisa iyo PC iripo, iyo nguva ichachengetwa, sezvo iyo RTC iri kupihwa simba, asi iri panguva yezvinoitika panguva iyo iyo yadzimwa kana bhatiri iro richidikanwa ...

Kune mapurojekiti e DIY, vagadziri vanowanzo shandisa maviri akafanana RTC machipisi, ayo ari iwo DS1307 uye DS3231. Ose ari maviri akagadzirwa naMaxim (aimbove Dallas Semiconductor), uye iyo DS3231 ndiyo yakanyatsojeka yeaya maviri, sezvo isina kukanganiswa nekusiyana kwetembiricha sezvinoita zvekare. Naizvozvo, haichinji zvakanyanya zvichienderana netembiricha, uye inochengeta nguva zvakanyatsonaka.

Dzimwe nguva, nekusiyana kunoonekwa kwekushisa, iyo DS1307 inogona kunge yakasarudzika se1 kana 2 min pazuva. Chinhu chisingatsungiririki kumamwe mafomu.

Iyo DS3231 haisi yekuti haina kukanganiswa nemisiyano, asi kuti yakavakira-mukati tembiricha kuyera uye muripo masisitimu kuve nechokwadi chechokwadi che2ppm, iyo ingave yakaenzana ne nguva yakasara angangoita 172ms pazuva, ndiko kuti, zvishoma kupfuura 1 sekondi pavhiki zvakanyanya. Uye mukuita, ivo vanowanzo musiyanisa 1 chete kana maviri masekondi pamwedzi.

Kana iri nzira taurirana neRTC DS3131 kuti uwane iwo madeti ezuva ainowana, zvinoitwa na I2C bhazi. Uye yesimba, unogona kushandisa 2.3 kusvika 5.5v yeDS3231, inova yakadzikira pane iyo 4.5 kusvika 5.5v yeDS1307, saka inogona kuwedzera simba uye kuita kuti bhatiri igare kwenguva refu.

Zvakare, iwe unofanirwa kuziva kuti aya ma module anowanzove ne EEPROM yakawedzera AT24C32 kuchengetedza mamwe marekodhi uye zviyero zvakapfuura, izvo zvinonyanya kushanda.

Applications

Kana zviri zvekushandisa, ini ndanga ndambotaura zvimwe, sekushandisa wachi neArduino, kugadzira system inoitisa zvichienderana Nguva Chero chii zvacho, kuchengetedza nguva pazvigadzirwa zvakaita sePC uye zvimwe zvakawanda zvemagetsi nemidziyo ine nguva, nezvimwe.

Inogona zvakare kushandiswa mu mapurojekiti kugadzira nguva dzekuvhenekesa, masisitimu ekudiridzira, datalogger, nezvimwe. Iko kunyorera kunogona kuve kwakanyanya kuwanda ...

Tenga RTC DS3231

The module DS3131 yakachipa, uye iwe unogona kuiwana mune mamwe mashopu emagetsi ezvitoro kana muzvitoro zvikuru senge eBay, AliExpress, Amazon, nezvimwe. Kana iwe uchida kuve neyako, heano mamwe mazano:

DS3231 Arduino Kubatanidzwa

Screenshot yaArduino IDE

Kana iwe uchida sanganisa yako DS3231 neako Arduino bhodhi uye tanga kugadzira mapurojekiti "akatemwa", unofanira kutanga waita kubatana kwakakodzera. Kugona kuisanganisa, zviri nyore se:

  • Iyo pini yeSLC yeDS3231 bhodhi inofanirwa kuve yakabatana neA5 yako Arduino UNO.
  • SDA yeDS3231 yakabatana neA4 yeArduino.
  • Vcc kubva module ichaenda ku5V kubva Arduino.
  • Exchange KWD to GND.
Rangarira kuisa raibhurari kuti ushandise iyo RTC DS3231 mune yako Arduino IDE kana iyo kodhi isingashande ...

Iye zvino wave nehurongwa hwakabatana, chinotevera chinhu kunyora iyo sketch sosi kodhi kuronga iyo. Iwe unogona kugadzirisa macode uye woachinjisa kune izvo zvaunoda, asi iwe unogona kutanga nekungotora zuva kubva kuRTC DS3231 yakabatana neArduino:

#include <Wire.h>
#include "RTClib.h"
 
// RTC_DS1307 rtc;
RTC_DS3231 rtc;
 
String daysOfTheWeek[7] = { "Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado" };
String monthsNames[12] = { "Enero", "Febrero", "Marzo", "Abril", "Mayo",  "Junio", "Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre" };
 
void setup() {
   Serial.begin(9600);
   delay(1000); 
 
   if (!rtc.begin()) {
      Serial.println(F("No se encuentra el RTC"));
      while (1);
   }
 
   // Si se ha perdido el suministro eléctrico, fijar fecha y hora
   if (rtc.lostPower()) {
      // Fijar a fecha y hora (poner la de compilación del sketch)
      rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
      
      // Fijar a fecha y hora específica. En este ejemplo el 2021-01-01 a las 00:00:00
      // rtc.adjust(DateTime(2020, 1, 1, 0, 0, 0));
   }
}
//Imprimir completa obtenida la fecha en decimal
void printDate(DateTime date)
{
   Serial.print(date.year(), DEC);
   Serial.print('/');
   Serial.print(date.month(), DEC);
   Serial.print('/');
   Serial.print(date.day(), DEC);
   Serial.print(" (");
   Serial.print(daysOfTheWeek[date.dayOfTheWeek()]);
   Serial.print(") ");
   Serial.print(date.hour(), DEC);
   Serial.print(':');
   Serial.print(date.minute(), DEC);
   Serial.print(':');
   Serial.print(date.second(), DEC);
   Serial.println();
}
 
void loop() {
   // Obtener fecha actual y mostrar por Serial
   DateTime now = rtc.now();
   printDate(now);
 
   delay(3000);    //Espera 3 segundos
}

Uye kuitira kuti ushandise iyo RTC zuva kusvika ronga rimwe basa, senge yekuvhenekera kana kudzima mwenje, yekudiridzira otomatiki, kana alarm yekurira, Rangarira kuti kubata akakwira magetsi zvishandiso iwe unogona kushandisa transistors kana ataure:

#include <Wire.h>
#include "RTClib.h"
 
const int outputPin = LED_BUILTIN;
bool state = false;
 
// RTC_DS1307 rtc;
RTC_DS3231 rtc;
 
void setup() {
   Serial.begin(9600);
   delay(1000);
 
   if (!rtc.begin()) {
      Serial.println(F("Couldn't find RTC"));
      while (1);
   }
 
   if (rtc.lostPower()) {
      rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
   }
}
 
// Se comprueba si está programado el encendido
bool isScheduledON(DateTime date)
{
   int weekDay = date.dayOfTheWeek();
   float hours = date.hour() + date.minute() / 60.0;
 
   // Configuración de horas de 08:30 a 9:30 y de 22:00 a 23:00 (usando decimal)
   bool hourCondition = (hours > 8.50 && hours < 9.50) || (hours > 22.00 && hours < 23.00);
 
   // Configuración del día Lunes, Sábado y Domingo con números (recuerda que en inglés comienza la semana en Domingo=0, Lunes=1,...
   bool dayCondition = (weekDay == 1 || weekDay == 6 || weekDay == 0); 
   if (hourCondition && dayCondition)
   {
      return true;
   }
   return false;
}
 
void loop() {
   DateTime now = rtc.now();
 
   if (state == false && isScheduledON(now))      // Apagado
   {
      digitalWrite(outputPin, HIGH);
      state = true;
      Serial.print("Activado");
   }
   else if (state == true && !isScheduledON(now))  // Encendido
   {
      digitalWrite(outputPin, LOW);
      state = false;
      Serial.print("Desactivado");
   }
 
   delay(3000);
}


Iva wekutanga kutaura

Siya yako yekutaura

Your kero e havazobvumirwi ichibudiswa. Raida minda anozivikanwa ne *

*

*

  1. Inotarisira iyo data: Miguel Ángel Gatón
  2. Chinangwa cheiyo data: Kudzora SPAM, manejimendi manejimendi.
  3. Legitimation: Kubvuma kwako
  4. Kutaurirana kwedata
  5. Dhata yekuchengetedza: Dhatabhesi inobatwa neOccentus Networks (EU)
  6. Kodzero: Panguva ipi neipi iwe unogona kudzora, kupora uye kudzima ruzivo rwako