সুচিপত্র:

যথার্থ ঘড়ি: 3 ধাপ
যথার্থ ঘড়ি: 3 ধাপ

ভিডিও: যথার্থ ঘড়ি: 3 ধাপ

ভিডিও: যথার্থ ঘড়ি: 3 ধাপ
ভিডিও: ডিজিটাল ঘড়ির সার্কিট কানেকশন চেক 3, Digital clock circuit connection check 3. 2024, জুলাই
Anonim
যথার্থ ঘড়ি
যথার্থ ঘড়ি

আমাদের সকলের ঘড়ি দরকার তাই কেন এই নির্দেশে আপনার নিজের তৈরি করবেন না আমি আপনাকে দেখাতে যাচ্ছি কিভাবে আপনি একটি প্রিসিশন ঘড়ি তৈরি করবেন একবার সেট করলে স্বয়ংক্রিয়ভাবে সবকিছুর পটভূমিতে বর্তমান সময়ের ট্র্যাক রাখবে। যদিও শুধুমাত্র খুব কম সরবরাহ এবং শূন্য ঝালাই প্রয়োজন।

সরবরাহ

প্রথমে, আপনার একটি Arduino প্রয়োজন হবে কিন্তু যে কোন Arduino কাজ করবে

পরবর্তী, আপনার জেনেরিক জাম্পার তারের একটি ভাণ্ডার প্রয়োজন হবে।

2 12 মিমি স্পার্কফুন পুশবাটন সুইচ

একটি traditionalতিহ্যবাহী ব্রেডবোর্ড

এবং একটি LCD 1602 16 পিন ডিসপ্লে

ধাপ 1: তারের

তারের
তারের

এই ঘড়িটি কাজ করার জন্য আপনাকে এটি একটি খুব নির্দিষ্ট উপায়ে তারের করতে হবে অন্যথায় আপনি সময়ের পরিবর্তে স্ক্রিনে এলোমেলো সংখ্যার একটি গুচ্ছ পাবেন।

ধাপ 2: কোড

যেহেতু আমরা একটি RTC ব্যবহার করছি না তাই আমরা কোডটি একটু দীর্ঘ হতে চলেছি কিন্তু সৌভাগ্যক্রমে আমি আপনার জন্য সমস্ত কঠোর পরিশ্রম করেছি এবং এটি এখানে প্রদান করেছি।

শুধু Arduino IDE বা ওয়েব এডিটর এ কপি এবং পেস্ট করুন।

#অন্তর্ভুক্ত "LiquidCrystal.h"

// এটি ডিজিটালপিন্স কনস্ট int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7 এ LCD তারের সংজ্ঞা দেয়; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);

// ডিজিটাল এলসিডি কনস্ট্রাস্ট সেটিং int cs = 9; // কনট্রাস্টের জন্য পিন 9 PWM const int contrast = 100; // ডিফল্ট কনট্রাস্ট

// প্রাথমিক সময় প্রদর্শন 12:59:45 PM int h = 12; int m = 59; int s = 45; int পতাকা = 1; // PM

// টাইম সেট বোতাম int button1; int button2;

// টাইম সেট বাটনের জন্য পিনের সংজ্ঞা int hs = 0; // ঘন্টা 0 সেট করার জন্য int ms = 1; // মিনিট সেট করার জন্য পিন 1

// ব্যাকলাইট টাইম আউট const int টাইমলাইট = 150; int bl_TO = Time_light; // ব্যাকলাইট টাইম-আউট int bl = 10; // ব্যাকলাইট পিন const int ব্যাকলাইট = 120; // 7mA এর পরে আর নয় !!!

// সঠিক সময় পড়ার জন্য, আরডুইনো রিয়েল টাইম ক্লক ব্যবহার করুন এবং শুধু বিলম্ব না () স্থির uint32_t last_time, এখন = 0; // আরটিসি

অকার্যকর সেটআপ () {lcd.begin (16, 2); pinMode (hs, INPUT_PULLUP); // বোতাম 1 pinMode (ms, INPUT_PULLUP) এর জন্য বহিরাগত পুলআপ প্রতিরোধক এড়িয়ে চলুন; এখন ব্যাকলাইটে = মিলিস (); // আরটিসি প্রাথমিক মান পড়ুন}

void loop () {lcd.begin (16, 2); // প্রতি সেকেন্ড // LCD ডিসপ্লে আপডেট করুন // প্রিন্ট টাইম আওয়ার, মিনিট, সেকেন্ড + এএম/পিএম lcd.setCursor (0, 0); lcd.print ("সময়"); যদি (h <10) lcd.print ("0"); // সবসময় 2 ডিজিট lcd.print (h); lcd.print (":"); যদি (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); যদি (s <10) lcd.print ("0"); lcd.print (গুলি);

যদি (পতাকা == 0) lcd.print ("AM"); যদি (পতাকা == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // লাইন 2 lcd.print ("প্রিসিশন ক্লক") এর জন্য;

// বিলম্বের উন্নত প্রতিস্থাপন (1000) // অনেক ভাল নির্ভুলতা, লুপ এক্সিকিউশন সময়ের উপর নির্ভর করে না

জন্য (int i = 0; i <5; i ++) // 5 বার 200ms লুপ তৈরি করুন, দ্রুত বাটন রেসপন্সের জন্য {

যখন ((এখন-শেষ_ সময়) <200) // বিলম্ব 200ms {এখন = মিলিস (); } // ভিতরের 200ms লুপ last_time = এখন; // পরবর্তী লুপের জন্য প্রস্তুত

// পড়ুন সেটিং বোতাম বাটন 1 = ডিজিটাল রিড (এইচএস); // বাটন বোতাম 2 = ডিজিটাল রিড (এমএস) পড়ুন;

// ব্যাকলাইট টাইম আউট bl_TO--; যদি (bl_TO == 0) {analogWrite (bl, 0); // ব্যাকলাইট বন্ধ bl_TO ++; } // ব্যাকলাইট সক্রিয় করতে যেকোনো হিট করুন যদি (((button1 == 0) | (button2 == 0)) এবং (bl_TO == 1)) {bl_TO = Time_light; analogWrite (bl, backlight); // অপেক্ষা করুন যতক্ষণ না বাটন রিলিজ হয় ((button1 == 0) | (button2 == 0)) {button1 = digitalRead (hs); // Read Buttons button2 = digitalRead (ms); }} অন্য // প্রসেস বাটন 1 বা বোতাম 2 টি আঘাত করার সময় {if (button1 == 0) {h = h+1; bl_TO = সময়_ আলো; analogWrite (bl, backlight); }

যদি (button2 == 0) {s = 0; m = m+1; bl_TO = সময়_ আলো; analogWrite (bl, backlight); }

/* ---- সেকেন্ড, মিনিট, ঘন্টা am/pm ওভারফ্লো পরিচালনা করুন ----*/যদি (s == 60) {s = 0; m = m+1; } যদি (m == 60) {m = 0; h = h+1; } যদি (h == 13) {h = 1; পতাকা = পতাকা+1; যদি (পতাকা == 2) পতাকা = 0; }

যদি ((button1 == 0) | (button2 == 0)) // টাইম সেট বাটন চাপলে আপডেট ডিসপ্লে {// আপডেট এলসিডি ডিসপ্লে // প্রিন্ট টাইম আওয়ার, মিনিট, সেকেন্ড + এএম/পিএম lcd.setCursor (0, 0); lcd.print ("সময়"); যদি (h <10) lcd.print ("0"); // সবসময় 2 ডিজিট lcd.print (h); lcd.print (":"); যদি (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); যদি (s <10) lcd.print ("0"); lcd.print (গুলি);

যদি (পতাকা == 0) lcd.print ("AM"); যদি (পতাকা == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // লাইন 2 lcd.print ("যথার্থ ঘড়ি") জন্য; }

} // end if else} // এর জন্য শেষ

// বাইরের 1000ms লুপ

s = s+1; // বৃদ্ধি সেকেন্ড গণনা // ---- সেকেন্ড, মিনিট, ঘন্টা am/pm ওভারফ্লো পরিচালনা করুন ---- যদি (s == 60) {s = 0; m = m+1; } যদি (m == 60) {m = 0; h = h+1; } যদি (h == 13) {h = 1; পতাকা = পতাকা+1; যদি (পতাকা == 2) পতাকা = 0; }

// লুপ এন্ড}

ধাপ 3: পরিকল্পিত (এটি সত্যিই একটি পদক্ষেপ নয়)

পরিকল্পিত (এটি সত্যিই একটি পদক্ষেপ নয়)
পরিকল্পিত (এটি সত্যিই একটি পদক্ষেপ নয়)

যদি কেউ এটি পড়েন তবে এটি একটি প্রযুক্তিগত নির্বোধ এখানে একটি পরিকল্পিত আপনি এটি দেখতে পাগল হয়ে যেতে পারেন।

উপভোগ করুন এবং মজা করুন এবং সর্বাধিক সতেজ থাকুন।

প্রস্তাবিত: