DS3231: તમારા આર્ડિનો માટે રીઅલ ટાઇમ ઘડિયાળ અને ક calendarલેન્ડર

DS3231

કેટલાક પ્રોજેક્ટ્સમાં સમય, સમય અથવા તારીખનો પુરાવો હોવો જરૂરી છે. કાં તો સમયના આધારે ચોક્કસ કાર્યો કરવાની જરૂરિયાતને કારણે, ઇવેન્ટ્સ અથવા નોંધણીનું ક calendarલેન્ડર જાળવવા, સિસ્ટમમાં સમય રાખવા અથવા ડિજિટલ ઘડિયાળ બનાવવા માટે Ardino સાથે. સાથે DS3231 તમે તે મેળવી શકો છો ઘટકો કે અમે સૂચિમાં ઉમેરો.

DS3231 એ મોડ્યુલ છે જેને તમે શોધી રહ્યા હતા, અને અહીં તમને તેના નિયંત્રણ માટે જરૂરી બધું મળશે અને હું તમને એક ઉદાહરણ પણ બતાવીશ કે કેવી રીતે તેને આર્દુનો સાથે સંકલિત કરો વ્યવહારુ ઉદાહરણ સાથે ...

DS3231 શું છે?

DS3231

સૌ પ્રથમ, તમારે જાણવું જોઈએ કે a આરટીસી (રીઅલ ટાઇમ ક્લોક), અથવા રીઅલ ટાઇમ ઘડિયાળ. આ ચિપ્સ ઘણી બધી એપ્લિકેશનોમાં વારંવાર આવે છે, હકીકતમાં, તમારા પીસીમાં તેમાંથી એક તમારા મધરબોર્ડ પર છે, અને તે એક દ્વારા સંચાલિત પણ છે CR2032 બેટરી પણ. તે તે છે જે BIOS / UEFI માં સમય અને રૂપરેખાંકન જાળવે છે અને જેમાંથી theપરેટિંગ સિસ્ટમ સમયસર બૂટ કરતી વખતે લે છે (જો કે હવે, ઇન્ટરનેટ સાથે, સર્વર્સ સાથે સુમેળ વધુ સુસંગતતા માટે વાપરી શકાય છે, પરંતુ આ બીજી વાર્તા છે…).

આરટીસી જે કરે છે તે સમય માપન, તે સરળ છે. અન્ય પ્રકારની ઇલેક્ટ્રોનિક ઘડિયાળોનો તફાવત એ છે કે તે ફક્ત સરળ છે સમય માપવા, અને તે તેની આવર્તન અને અવધિ જાણીને, ઘડિયાળના સિગ્નલ કઠોળની ગણતરી કરીને આમ કરે છે. સમય ઉપરાંત, એક આરટીસી તમને દિવસો, અઠવાડિયા, મહિનાઓ અને વર્ષોનો હિસાબ રાખવા માટે પણ પરવાનગી આપે છે. તે છે, સંપૂર્ણ તારીખ ...

આ શક્ય બનવા માટે, આરટીસી એક સાથે હોવું આવશ્યક છે એક્સ્ટલ અથવા ક્વાર્ટઝ સ્ફટિક જે રેઝનેટર તરીકે કાર્ય કરશે, જે આવર્તન પ્રદાન કરે છે. વધુમાં, તમારે મેમરીમાં તારીખની ગણતરી અને સ્ટોર કરવામાં સક્ષમ ઇલેક્ટ્રોનિક સર્કિટરીની જરૂર છે. સર્કિટરી સેકંડ, મિનિટ, કલાકો, દિવસો, અઠવાડિયા, મહિનાઓ અને વર્ષો ગણવામાં સક્ષમ હોવી જોઈએ.

ઈએસએ મેમરી અસ્થિર છેતેથી જ તેને સતત શક્તિ રાખવા માટે, બેટરીની જરૂર હોય છે. જો તમારી પાસે બ batteryટરી નથી અથવા તે ચાલે છે, તો તે ભૂંસી નાખવામાં આવશે ... આ તે છે જે પીસીને થાય છે જ્યારે બ batteryટરી સમાપ્ત થાય છે, ત્યારે તેઓ ખોટો સમય આપે છે. જો તમે પીસી ચાલુ હોય ત્યારે તેને ગોઠવો છો, તો સમય રાખવામાં આવશે, કારણ કે આરટીસી સંચાલિત થઈ રહ્યું છે, પરંતુ તે તે પ્રક્રિયા દરમિયાન છે જ્યારે તે બ batteryટરીની જરૂર હોય ત્યારે તે બંધ હોય ત્યારે ...

ડીવાયવાય પ્રોજેક્ટ્સ માટે, ઉત્પાદકો સામાન્ય રીતે બે સામાન્ય આરટીસી ચિપ્સનો ઉપયોગ કરે છે, જે છે DS1307 અને DS3231. બંને મેક્સિમ (અગાઉ ડલ્લાસ સેમિકન્ડક્ટર) દ્વારા બનાવવામાં આવ્યા છે, અને ડીએસ 3231 એ બંનેમાં વધુ સચોટ છે, કારણ કે તે તાપમાનની ભિન્નતાથી પહેલાની જેમ પ્રભાવિત નથી. તેથી, તાપમાનના આધારે તે ખૂબ વધઘટ કરતી નથી, અને તે સમયને વધુ સ્પષ્ટ રીતે રાખે છે.

કેટલીકવાર, તાપમાનના નોંધપાત્ર તફાવતો સાથે, DS1307 દરરોજ 1 અથવા 2 મિનિટ જેટલું લેગ થઈ શકે છે. કેટલીક એપ્લિકેશનો માટે કંઈક અસહ્ય.

DS3231 એવું નથી કે તે ભિન્નતા દ્વારા અસરગ્રસ્ત નથી, પરંતુ તે 2ppm ની ચોકસાઈ સુનિશ્ચિત કરવા માટે બિલ્ટ-ઇન તાપમાન માપન અને વળતર પ્રણાલી ધરાવે છે, જે એક સમાન હશે સમયાન્તર દિવસના લગભગ 172ms નો, એટલે કે, અઠવાડિયામાં 1 સેકંડથી થોડું વધારે. અને વ્યવહારમાં, તેઓ સામાન્ય રીતે મહિનામાં 1 અથવા 2 સેકંડમાં બદલાય છે.

માર્ગ માટે આરટીસી સાથે વાતચીત કરો DS3131 તે મેળવેલી તારીખ કિંમતો મેળવવા માટે, તે દ્વારા કરવામાં આવે છે આઇ 2 સી બસ. અને શક્તિ માટે, તમે DS2.3 માટે 5.5 થી 3231v નો ઉપયોગ કરી શકો છો, જે DS4.5 માટે 5.5 થી 1307v કરતા થોડો ઓછો છે, તેથી તે વધુ energyર્જા કાર્યક્ષમ બની શકે અને બેટરી લાંબા સમય સુધી ટકી શકે.

ઉપરાંત, તમારે જાણવું જોઈએ કે આ મોડ્યુલોમાં સામાન્ય રીતે એ EEPROM વધારાના એટી 24 સી 32 કેટલાક રેકોર્ડ્સ અને અગાઉના માપનો સંગ્રહ કરવા માટે, જે એકદમ વ્યવહારિક છે.

ઍપ્લિકેશન

એપ્લિકેશન વિશે, મેં પહેલેથી જ કેટલાકનો ઉલ્લેખ કર્યો છે, જેમ કે અરડિનો સાથે ઘડિયાળનો અમલ કરવો, સિસ્ટમ બનાવવા માટે કે જેના આધારે કાર્ય કરે છે સમય ગમે તે હોય, જેમ કે પીસી અને અન્ય ઘણા ઇલેક્ટ્રોનિક ઉપકરણો અને સમય હોય તેવા ઉપકરણો જેવા ઉપકરણો પર સમય રાખવા.

માં પણ વાપરી શકાય છે પ્રોજેક્ટ લાઇટિંગ, સિંચાઈ સિસ્ટમો, ડેટાલોઝર, વગેરે માટે ટાઈમર બનાવવા માટે. એપ્લિકેશનો સૌથી વધુ સંખ્યાબંધ હોઈ શકે છે ...

એક આરટીસી ડીએસ 3231 ખરીદો

મોડ્યુલ DS3131 સસ્તી છે, અને તમે તેને કેટલાક વિશિષ્ટ ઇલેક્ટ્રોનિક્સ સ્ટોર્સ અથવા ઇબે, અલીએક્સપ્રેસ, એમેઝોન વગેરે જેવા મોટા સ્ટોર્સમાં શોધી શકો છો. જો તમને એક હોવામાં રસ છે, તો અહીં કેટલીક ભલામણો છે:

DS3231 અરડિનો ઇન્ટિગ્રેશન

આર્ડિનો આઈડીઇ સ્ક્રીનશોટ

જો તમે ઇચ્છો તો તમારા DS3231 ને તમારા આર્ડિનો બોર્ડ સાથે એકીકૃત કરો અને "સમયસર" પ્રોજેક્ટ્સ બનાવવાનું પ્રારંભ કરો, તમારે પ્રથમ યોગ્ય કનેક્શન્સ બનાવવું આવશ્યક છે. તેને કનેક્ટ કરવામાં સક્ષમ થવા માટે, તે એટલું સરળ છે:

  • DS3231 બોર્ડનો એસએલસી પિન તમારા ની એ 5 સાથે જોડાયેલ હોવો આવશ્યક છે Arduino UNO.
  • DS3231 નો એસડીએ એરડિનોના એ 4 સાથે જોડાયેલ છે.
  • મોડ્યુલમાંથી વીસીસી અરડિનોથી 5 વી પર જશે.
  • જી.એન.ડી. થી જી.એન.ડી.
તમારા આર્ડિનો આઇડીઇમાં આરટીસી ડીએસ 3231 નો ઉપયોગ કરવા માટે લાઇબ્રેરી સ્થાપિત કરવાનું યાદ રાખો અથવા કોડ કાર્ય કરશે નહીં ...

હવે તમારી પાસે સિસ્ટમ જોડાયેલ છે, આગળની વસ્તુ એ લખવાની છે સ્કેચ સ્રોત કોડ તે કાર્યક્રમ માટે. તમે કોડ્સમાં ફેરફાર કરી શકો છો અને તેમને તમારી જરૂરિયાતો સાથે અનુકૂલિત કરી શકો છો, પરંતુ તમે આરડુનો સાથે જોડાયેલા આરટીસી ડીએસ 3231 પરથી તારીખ મેળવીને પ્રારંભ કરી શકો છો:

#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
}

અને આરટીસી તારીખનો ઉપયોગ કરવા માટે કેટલાક કાર્ય સુનિશ્ચિત કરો, જેમ કે લાઇટ ચાલુ અથવા બંધ કરવા માટે, સ્વચાલિત પાણી માટે, અથવા અવાજ માટે એલાર્મ માટે, વગેરે. યાદ રાખો કે ઉચ્ચ વોલ્ટેજ ડિવાઇસેસને હેન્ડલ કરવા માટે તમે ટ્રાંઝિસ્ટરનો ઉપયોગ કરી શકો છો અથવા રિલે:

#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);
}


લેખની સામગ્રી અમારા સિદ્ધાંતોનું પાલન કરે છે સંપાદકીય નૈતિકતા. ભૂલની જાણ કરવા માટે ક્લિક કરો અહીં.

ટિપ્પણી કરવા માટે સૌ પ્રથમ બનો

તમારી ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. આવશ્યક ક્ષેત્રો સાથે ચિહ્નિત થયેલ છે *

*

*

  1. ડેટા માટે જવાબદાર: મિગ્યુએલ gelંજેલ ગેટóન
  2. ડેટાનો હેતુ: નિયંત્રણ સ્પામ, ટિપ્પણી સંચાલન.
  3. કાયદો: તમારી સંમતિ
  4. ડેટાની વાતચીત: કાયદાકીય જવાબદારી સિવાય ડેટા તૃતીય પક્ષને આપવામાં આવશે નહીં.
  5. ડેટા સ્ટોરેજ: cસેન્ટસ નેટવર્ક્સ (ઇયુ) દ્વારા હોસ્ટ કરેલો ડેટાબેઝ
  6. અધિકાર: કોઈપણ સમયે તમે તમારી માહિતીને મર્યાદિત, પુન recoverપ્રાપ્ત અને કા deleteી શકો છો.