কিছু প্রকল্পে সময়, ঘন্টা বা তারিখের প্রমাণ থাকা প্রয়োজন। হয় সময়ের ভিত্তিতে কিছু নির্দিষ্ট কার্য সম্পাদন করা, ইভেন্ট বা রেজিস্ট্রেশনের একটি ক্যালেন্ডার বজায় রাখা, একটি সিস্টেমে সময় রাখা বা কেবল একটি ডিজিটাল ঘড়ি তৈরির কারণে আরডুইনোর সাথে। সঙ্গে DS3231 আপনি এটি পেতে পারেন, অন্য এক উপাদান যে আমরা তালিকায় যুক্ত।
DS3231 হল এমন মডিউল যা আপনি অনুসন্ধান করেছিলেন এবং এটির নিয়ন্ত্রণের জন্য আপনার প্রয়োজনীয় সমস্ত কিছুই আপনি এখানে পাবেন এবং আমি আপনাকে একটি উদাহরণও দেখাব এটি আরডুইনোর সাথে একীকরণ করুন ব্যবহারিক উদাহরণ সহ ...
DS3231 কী?
প্রথমত, আপনার কী জানা উচিত আরটিসি (রিয়েল টাইম ক্লক), বা রিয়েল টাইম ক্লক। এই চিপগুলি প্রচুর অ্যাপ্লিকেশনগুলিতে খুব ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন অ্যাপ্লিকেশনগুলির মধ্যে রয়েছে, আসলে আপনার পিসিগুলির একটি আপনার মাদারবোর্ডে রয়েছে এবং এটি একটি দ্বারা চালিত CR2032 ব্যাটারি এছাড়াও। এটিই যা BIOS / UEFI এ সময় এবং কনফিগারেশন বজায় রাখে এবং অপারেটিং সিস্টেমটি সময়মত বুট করার সময় এটি গ্রহণ করে (যদিও এখন ইন্টারনেটের সাথে সার্ভারের সাথে সিঙ্ক্রোনাইজেশন বৃহত্তর নির্ভুলতার জন্য ব্যবহার করা যেতে পারে, তবে এটি অন্য গল্প…)।
আরটিসি যা করে তা হ'ল সময় পরিমাপ করা সহজ। অন্যান্য ধরণের বৈদ্যুতিন ঘড়ির মধ্যে পার্থক্য হ'ল এগুলি কেবল সহজ সময় পরিমাপ, এবং এটি ঘড়ির সংকেত ডাল গণনা করে, এর ফ্রিকোয়েন্সি এবং পিরিয়ডগুলি জেনে তা করে। সময়ের পাশাপাশি, একটি আরটিসি আপনাকে দিন, সপ্তাহ, মাস এবং বছরের হিসাব রাখতেও দেয়। অর্থাৎ পুরো তারিখ ...
এটি সম্ভব হওয়ার জন্য, আরটিসি অবশ্যই একটি সহ হতে হবে এক্স্টাল বা কোয়ার্টজ স্ফটিক যা একটি অনুরণক হিসাবে কাজ করবে, যা ফ্রিকোয়েন্সি সরবরাহ করে। অতিরিক্ত হিসাবে, আপনার একটি স্মৃতিতে তারিখ গণনা করতে এবং সঞ্চয় করতে সক্ষম বৈদ্যুতিন সার্কিটির প্রয়োজন। বর্তনী অবশ্যই সেকেন্ড, মিনিট, ঘন্টা, দিন, সপ্তাহ, মাস এবং বছর গণনা করতে সক্ষম হতে হবে।
এষা স্মৃতি চঞ্চল হয়এ কারণেই ধ্রুব শক্তি থাকতে এর ব্যাটারি দরকার needs আপনার যদি ব্যাটারি না থাকে বা এটি সঞ্চালিত হয়, এটি মুছে ফেলা হবে ... পিসিগুলির মধ্যে এটিই ঘটে যখন ব্যাটারি ফুরিয়ে যায়, তারা একটি ভুল সময় দেয়। আপনি যদি পিসি চালু থাকাকালীন এটি কনফিগার করেন তবে সময় রাখা হবে, যেহেতু আরটিসি চালিত হচ্ছে, তবে এটি যখন প্রক্রিয়া চলাকালীন বন্ধ থাকে তখন সেই ব্যাটারির প্রয়োজন হয় ...
ডিআইওয়াই প্রকল্পগুলির জন্য, নির্মাতারা সাধারণত দুটি সাধারণ আরটিসি চিপ ব্যবহার করেন যা সেগুলি DS1307 এবং DS3231। উভয়ই ম্যাক্সিম দ্বারা তৈরি করা হয়েছিল (পূর্বে ডালাস সেমিকন্ডাক্টর), এবং ডিএস 3231 দুটির চেয়ে বেশি সঠিক, কারণ এটি পূর্বের মতো তাপমাত্রার পরিবর্তনের দ্বারা প্রভাবিত হয় না। সুতরাং, তাপমাত্রার উপর নির্ভর করে এটি এতটা ওঠানামা করে না এবং সময়কে আরও সুনির্দিষ্টভাবে রাখে।
ডিএস3231২৩১ এটি নয় যে এটি বিভিন্নতা দ্বারা প্রভাবিত নয়, তবে এটি তাপমাত্রা পরিমাপ এবং ক্ষতিপূরণ সিস্টেমগুলিতে 2 পিপিএমের যথার্থতা নিশ্চিত করার জন্য তৈরি করেছে যা একটি সমতুল্য হবে সময়ের ব্যবধান দিনে প্রায় 172ms, অর্থাত্ সপ্তাহে 1 সেকেন্ডের চেয়ে কিছুটা বেশি এবং অনুশীলনে, এগুলি সাধারণত মাসে 1 বা 2 সেকেন্ডের মধ্যে পরিবর্তিত হয়।
উপায় হিসাবে আরটিসির সাথে যোগাযোগ করুন DS3131 তারিখ মান পেতে এটি পেতে, এটি দ্বারা সম্পন্ন আই 2 সি বাস। এবং পাওয়ারের জন্য, আপনি DS2.3 এর জন্য 5.5 থেকে 3231v ব্যবহার করতে পারেন, যা DS4.5 এর জন্য 5.5 থেকে 1307v এর চেয়ে কিছুটা কম, সুতরাং এটি আরও শক্তিশালী হতে পারে এবং ব্যাটারিকে দীর্ঘকাল ধরে রাখতে পারে।
এছাড়াও, আপনার জানা উচিত যে এই মডিউলগুলির সাধারণত একটি থাকে EEPROM চিপের অতিরিক্ত AT24C32 কিছু রেকর্ড এবং পূর্ববর্তী পরিমাপ সংরক্ষণ করতে, যা বেশ ব্যবহারিক।
Aplicaciones
অ্যাপ্লিকেশন হিসাবে, আমি ইতিমধ্যে কিছু উল্লেখ করেছি, যেমন আরডুইনোর সাথে একটি ঘড়ি বাস্তবায়নের জন্য, এমন একটি সিস্টেম তৈরি করতে যা এর উপর ভিত্তি করে কাজ করে সময় যাই হোক না কেন, পিসি এবং অন্যান্য অনেক ইলেকট্রনিক ডিভাইস এবং সময় রয়েছে এমন সরঞ্জাম ইত্যাদির মতো সরঞ্জামগুলিতে সময় রাখা etc.
এছাড়াও ব্যবহার করা যেতে পারে প্রকল্প আলো, সেচ ব্যবস্থা, ডেটল্যাগার ইত্যাদি জন্য টাইমার তৈরি অ্যাপ্লিকেশনগুলি সর্বাধিক অসংখ্য হতে পারে ...
একটি আরটিসি ডিএস3231 কিনুন
মডিউল DS3131 সস্তা, এবং আপনি এটি কয়েকটি বিশেষায়িত ইলেকট্রনিক্স স্টোর বা ইবে, আলিএক্সপ্রেস, অ্যামাজন ইত্যাদির মতো বড় স্টোরগুলিতে খুঁজে পেতে পারেন আপনি যদি এটির সাথে আগ্রহী হন তবে এখানে কিছু প্রস্তাব দেওয়া হল:
- DS3231 কিনুন
- কোন পণ্য পাওয়া যায় নি।
DS3231 আরডুইনো ইন্টিগ্রেশন
যদি আপনি চান আপনার আরডিনো বোর্ডের সাথে আপনার DS3231 একীকরণ করুন এবং "সময়োপযোগী" প্রকল্পগুলি তৈরি করা শুরু করুন, আপনাকে প্রথমে উপযুক্ত সংযোগগুলি করতে হবে। এটি সংযোগ করতে সক্ষম হতে, এটি এত সহজ:
- DS3231 বোর্ডের এসএলসি পিনটি অবশ্যই আপনার এর 5 এর সাথে সংযুক্ত থাকতে হবে Arduino UNO.
- DS3231 এর এসডিএ আরডুইনোর A4 এর সাথে সংযুক্ত।
- মডিউল থেকে ভিসি আরডুইনো থেকে 5 ভি যাবে।
- জিএনডি থেকে জিএনডি।
এখন আপনি সিস্টেমটি সংযুক্ত করেছেন, পরবর্তী জিনিসটি লিখতে হবে স্কেচ উত্স কোড এটি প্রোগ্রাম। আপনি কোডগুলি সংশোধন করতে পারেন এবং সেগুলি আপনার প্রয়োজনের সাথে খাপ খাইয়ে নিতে পারেন, তবে আপনি কেবল আরডিনোতে সংযুক্ত কোনও আরটিসি ডিএস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); }