DS3231: آپ آرڈینو کے لئے حقیقی وقت کی گھڑی اور کیلنڈر

DS3231

کچھ منصوبوں میں وقت ، گھنٹہ یا تاریخ کا ثبوت ہونا ضروری ہے۔ یا تو وقت کی بنیاد پر کچھ کام انجام دینے کی ضرورت کی وجہ سے ، واقعات یا رجسٹریشن کا کیلنڈر برقرار رکھنے کے لئے ، نظام کو وقت میں رکھنے کے لئے ، یا محض ڈیجیٹل گھڑی بنانے کے لئے اردوینو کے ساتھ. کے ساتھ DS3231 آپ اسے حاصل کرسکتے ہیں ، دوسرا اجزاء کہ ہم فہرست میں شامل کریں۔

DS3231 وہ ماڈیول ہے جس کی آپ ڈھونڈ رہے تھے ، اور یہاں آپ کو اس کے کنٹرول کے ل everything آپ کی ضرورت کی ہر چیز مل جائے گی اور میں آپ کو اس کی ایک مثال بھی دکھائوں گا۔ اسے اردوینو کے ساتھ ضم کریں عملی مثال کے ساتھ ...

DS3231 کیا ہے؟

DS3231

سب سے پہلے ، آپ کو معلوم ہونا چاہئے کہ کیا آر ٹی سی (ریئل ٹائم گھڑی)، یا اصلی وقت کی گھڑی یہ چپس بہت سی ایپلی کیشنز میں کثرت سے ہوتی ہیں ، در حقیقت ، آپ کے پی سی میں ان میں سے ایک آپ کے مادر بورڈ پر ہوتا ہے ، اور یہ بھی ایک کے ذریعہ تقویت یافتہ ہے CR2032 بیٹری بھی. یہ وہی ہے جو BIOS / UEFI میں وقت اور ترتیب کو برقرار رکھتا ہے اور جس سے آپریٹنگ سسٹم وقت پر بوٹنگ کرتے وقت لیتا ہے (حالانکہ اب ، انٹرنیٹ کے ساتھ ، سرورز کے ساتھ ہم آہنگی کو زیادہ درستگی کے ل be استعمال کیا جاسکتا ہے ، لیکن یہ ایک اور کہانی ہے…).

آر ٹی سی جو کرتا ہے وہ وقت کی پیمائش حاصل کرنا آسان ہے۔ دوسری قسم کی الیکٹرانک گھڑیاں سے فرق یہ ہے کہ وہ محض سیدھے ہیں وقت کی پیمائش کریں، اور یہ اس کی فریکوئنسی اور ادوار کو جانتے ہوئے ، گھڑی کے سگنل دالوں کی گنتی کرکے ایسا کرتا ہے۔ وقت کے علاوہ ، ایک آر ٹی سی بھی آپ کو دنوں ، ہفتوں ، مہینوں اور سالوں کا حساب کتاب رکھنے کی اجازت دیتا ہے۔ یعنی پوری تاریخ ...

اس کے ممکنہ ہونے کے ل the ، آر ٹی سی کے ساتھ لازمی طور پر ایک ہونا چاہئے Xtal یا کوارٹج کرسٹل جو ایک گونجنے والا کی حیثیت سے کام کرے گا ، جو تعدد فراہم کرتا ہے۔ مزید برآں ، آپ کو میموری میں تاریخ گننے اور اسٹور کرنے کے قابل الیکٹرانک سرکٹری کی ضرورت ہے۔ سرکٹری سیکنڈ ، منٹ ، گھنٹے ، دن ، ہفتوں ، مہینوں اور سالوں کی گنتی کے قابل ہونا چاہئے۔

ESA میموری اتار چڑھاؤ ہےیہی وجہ ہے کہ اسے مستقل طاقت حاصل کرنے کے ل the ، بیٹری کی ضرورت ہے۔ اگر آپ کے پاس بیٹری نہیں ہے یا یہ ختم ہوجاتا ہے تو ، اسے مٹا دیا جائے گا ... پی سی کے ساتھ ایسا ہی ہوتا ہے جب بیٹری ختم ہوجاتی ہے ، تو وہ ایک غلط وقت دیتے ہیں۔ اگر آپ پی سی چلتے وقت اسے تشکیل دیتے ہیں تو ، وقت کا وقت برقرار رہے گا ، کیوں کہ آر ٹی سی چل رہا ہے ، لیکن یہ اس عمل کے دوران ہے جب اس کی بیٹری کی ضرورت پڑنے پر یہ آف ہوتی ہے ...

DIY منصوبوں کے لئے ، ساز عام طور پر دو عام آر ٹی سی چپس استعمال کرتے ہیں ، جو یہ ہیں DS1307 اور DS3231. دونوں میکسم (پہلے ڈلاس سیمیکمڈکٹر) کے ذریعہ بنائے گئے ہیں ، اور DS3231 دونوں میں سے زیادہ درست ہے ، کیونکہ یہ درجہ حرارت کی مختلف حالتوں سے اتنا متاثر نہیں ہوتا جتنا سابقہ ​​کرتا ہے۔ لہذا ، یہ درجہ حرارت کے لحاظ سے اتنا اتارچڑھاؤ نہیں کرتا ہے ، اور اس سے وقت زیادہ واضح طور پر برقرار رہتا ہے۔

اوقات میں ، درجہ حرارت میں نمایاں فرق کے ساتھ ، DS1307 فی دن 1 یا 2 منٹ تک مرحلے سے باہر ہوسکتا ہے۔ کچھ ایپلی کیشنز کے لئے کچھ ناقابل برداشت۔

DS3231 یہ نہیں ہے کہ یہ مختلف حالتوں سے متاثر نہیں ہوتا ہے ، بلکہ یہ ہے کہ اس نے درجہ حرارت کی پیمائش اور معاوضہ سسٹم بنایا ہے تاکہ 2 پی پی ایم کی درستگی کو یقینی بنایا جاسکے ، جو اس کے برابر ہوگا وقت وقفہ ایک دن کے بارے میں 172ms ، یعنی ، زیادہ سے زیادہ ایک ہفتہ میں 1 سیکنڈ سے زیادہ اور عملی طور پر ، وہ ایک مہینے میں عام طور پر صرف 1 یا 2 سیکنڈ میں مختلف ہوتے ہیں۔

راستہ کی بات ہے آر ٹی سی سے بات چیت کریں ڈی ایس 3131 تاریخ کی قیمتوں کو حاصل کرنے کے ل it ، اسے حاصل کیا جاتا ہے I2C بس. اور طاقت کے ل you ، آپ DS2.3 کے لئے 5.5 سے 3231v استعمال کرسکتے ہیں ، جو DS4.5 کے لئے 5.5 سے 1307v کے مقابلے میں کچھ کم ہے ، لہذا یہ زیادہ توانائی سے موثر ہوسکتا ہے اور بیٹری کو زیادہ دیر تک بنا سکتا ہے۔

اس کے علاوہ ، آپ کو معلوم ہونا چاہئے کہ ان ماڈیول میں عام طور پر ایک ہوتا ہے EEPROM اضافی AT24C32 کچھ ریکارڈ اور پچھلی پیمائش کو اسٹور کرنے کے ل which ، جو کافی عملی ہے۔

ایپلی کیشنز

جب تک کہ درخواستوں کا تعلق ہے تو ، میں نے پہلے ہی کچھ کا ذکر کیا ہے ، جیسے کہ ارڈینو کے ساتھ گھڑی لاگو کرنا ، ایسا نظام تشکیل دینا جو اس کی بنیاد پر کام کرتا ہو وقت جو بھی ہو ، آلات پر وقت رکھنے کے ل such جیسے پی سی اور بہت سے دوسرے الیکٹرانک آلات اور آلات جن میں وقت ہوتا ہے وغیرہ۔

میں بھی استعمال کیا جا سکتا ہے منصوبوں لائٹنگ ، آبپاشی کے نظام ، ڈیٹالاگر ، وغیرہ کے لئے ٹائمر بنانے کے ل درخواستیں سب سے زیادہ ہوسکتی ہیں ...

ایک آر ٹی سی DS3231 خریدیں

ماڈیول DS3131 سستا ہے، اور آپ اسے کچھ مخصوص الیکٹرانکس اسٹورز یا بڑے اسٹورز جیسے ای بے ، علی ایکسپریس ، ایمیزون وغیرہ میں پا سکتے ہیں۔ اگر آپ ایک رکھنے میں دلچسپی رکھتے ہیں تو ، کچھ سفارشات یہ ہیں:

DS3231 اردوینو انٹیگریشن

آرڈینوو IDE کا اسکرین شاٹ

اگر آپ چاہتے ہیں اپنے DS3231 کو اپنے ارڈینو بورڈ کے ساتھ ضم کریں اور "ٹائمڈ" پروجیکٹس بنانا شروع کریں ، آپ کو پہلے مناسب رابطے کرنا ہوں گے۔ اس سے متصل ہونے کے ل be ، یہ اتنا آسان ہے جتنا:

  • DS3231 بورڈ کا ایس ایل سی پن آپ کے A5 سے منسلک ہونا ضروری ہے Arduino UNO.
  • DS3231 کا ایس ڈی اے اردوینو کے A4 سے منسلک ہے۔
  • ماڈیول سے وی سی سی اردوینو سے 5 وی جائیں گے۔
  • GND سے GND۔
اپنے آردوینو IDE میں RTC DS3231 کو استعمال کرنے کے لئے لائبریری کو انسٹال کرنا یاد رکھیں یا کوڈ کام نہیں کرے گا ...

اب آپ کا نظام منسلک ہے ، اگلی بات لکھنا ہے خاکہ کا منبع کوڈ اس کے پروگرام کرنے کے لئے. آپ کوڈ میں ترمیم کرسکتے ہیں اور انہیں اپنی ضروریات کے مطابق ڈھال سکتے ہیں ، لیکن آپ آرڈوینو سے جڑے ہوئے کسی آر ٹی سی ڈی ایس 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
}

اور آر ٹی سی تاریخ استعمال کرنے کے ل. کچھ کام شیڈول کریں، جیسے لائٹ آن یا آف کرنے ، خود بخود پانی دینے کے لئے ، یا آواز کے الارم وغیرہ کے ل etc.۔ یاد رکھیں کہ ہائی ولٹیج ڈیوائسز کو سنبھالنے کے ل you آپ ٹرانجسٹر یا استعمال کرسکتے ہیں ریلے:

#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. اعداد و شمار کے لئے ذمہ دار: میگل اینگل گاتین
  2. ڈیٹا کا مقصد: اسپیم کنٹرول ، تبصرے کا انتظام۔
  3. قانون سازی: آپ کی رضامندی
  4. ڈیٹا کا مواصلت: اعداد و شمار کو تیسری پارٹی کو نہیں بتایا جائے گا سوائے قانونی ذمہ داری کے۔
  5. ڈیٹا اسٹوریج: اوکیسٹس نیٹ ورکس (EU) کے میزبان ڈیٹا بیس
  6. حقوق: کسی بھی وقت آپ اپنی معلومات کو محدود ، بازیافت اور حذف کرسکتے ہیں۔