विषयसूची:

Arduino अलार्म क्लॉक प्रोजेक्ट: 14 कदम
Arduino अलार्म क्लॉक प्रोजेक्ट: 14 कदम

वीडियो: Arduino अलार्म क्लॉक प्रोजेक्ट: 14 कदम

वीडियो: Arduino अलार्म क्लॉक प्रोजेक्ट: 14 कदम
वीडियो: как сделать Propeller LED Pendulum Clock, используя Arduino NANO, JLCPCB 2024, नवंबर
Anonim
Arduino अलार्म क्लॉक प्रोजेक्ट
Arduino अलार्म क्लॉक प्रोजेक्ट

इस परियोजना में, हम अलार्म के लिए सेट किए गए वर्तमान समय और समय को दिखाने के लिए एलसीडी स्क्रीन को नियंत्रित करने के लिए Arduino Uno का उपयोग करेंगे। हम हर बार सेट करने के लिए बटन का उपयोग करेंगे।

सामग्री:

  • Arduino Uno -
  • ब्रेडबोर्ड -
  • जम्पर वायर्स (x13+) -
  • 10 कोहम रेसिस्टर्स (x4) -
  • एलसीडी स्क्रीन -
  • 7 बटन -
  • पीजो स्पीकर -

चरण 1: हुकअप निर्देश

जोड़ने का निर्देश
जोड़ने का निर्देश

1. Arduino पर 5V पिन से एक जम्पर वायर को ब्रेडबोर्ड पर + रेल में से एक से कनेक्ट करें।

चरण 2:

छवि
छवि

2. ब्रेडबोर्ड पर आपके द्वारा चुनी गई + रेल के बगल में - Arduino पर GND पिन से एक जम्पर तार कनेक्ट करें।

चरण 3:

छवि
छवि

3. LCD स्क्रीन को पावर, ग्राउंड और TX पिन (पिन 1) से कनेक्ट करें।

चरण 4:

छवि
छवि

4. ब्रेडबोर्ड पर 7 बटन रखें, जिससे ब्रेडबोर्ड में गैप के आर-पार टांगें हों।

चरण 5:

छवि
छवि

5. बटन के निचले बाएँ पिन से जुड़े GND पिन के साथ - रेल से 10 kohm रेसिस्टर्स रखें।

चरण 6:

छवि
छवि

6. अपने ब्रेडबोर्ड पर बटनों के निचले दाएं पिन और 5V रेल के बीच जम्पर तारों को रखें।

चरण 7:

छवि
छवि

7. जम्पर वायर को पिन 6, फिर 8-13 और पिन को उस बटन पर रखें जिससे रेसिस्टर जुड़ा है।

चरण 8:

छवि
छवि

8. इसके बाद, अपने पीजो स्पीकर को ब्रेडबोर्ड पर रखें और पिन 7 को पावर पिन से कनेक्ट करें, फिर एक 100 ओम रेसिस्टर को ग्राउंड से कनेक्ट करें।

चरण 9: प्रोग्रामिंग निर्देश

1. अवलोकन: यह प्रोजेक्ट उपयोगकर्ता को वर्तमान समय और अलार्म के सेट होने के समय के प्रदर्शन पर प्रारंभिक शक्ति पर वर्तमान समय निर्धारित करने के लिए कहेगा। ऊपर जुड़े बटनों का उपयोग हर बार सेट करने के लिए किया जाएगा। बाएं से दाएं, वे वर्तमान घंटे सेट करते हैं, वर्तमान मिनट सेट करते हैं, वर्तमान एएम या पीएम सेट करते हैं, अलार्म घंटे सेट करते हैं, अलार्म मिनट सेट करते हैं, अलार्म एएम या पीएम सेट करते हैं। अंतिम बटन का उपयोग अलार्म बजने पर उसे चुप कराने के लिए किया जाता है।

चरण 10:

2. पहली चीज़ जो हमें करने की ज़रूरत है वह है हमारे वेरिएबल को इनिशियलाइज़ करना जिसका हम उपयोग करने जा रहे हैं।

// इनिशियलाइज़ वेरिएबल्स का उपयोग किया जाना हैint घंटा = 0; // वर्तमान समय के लिए घंटा int मिनट = 0; //

वर्तमान समय के लिए मिनट इंट सेकंड = 0; // वर्तमान समय के लिए दूसरा

इंट घंटा_ए = 0; int // अलार्म समय के लिए घंटा

मिनट_ए = 0; // अलार्म समय के लिए मिनट

बूल am_pm = झूठा; // AM/PM टॉगल फ्लैग। झूठा AM है, सच्चा PM है

बूल am_pm_a = झूठा; // AM/PM अलार्म के लिए फ्लैग टॉगल करें। झूठा AM है, सच्चा PM है

इंट सेट_हर = 13; // घंटा सेट करने के लिए पिन 13 का उपयोग करें

इंट सेट_मिन = 12; // मिनट int. सेट करने के लिए पिन 12 का उपयोग करें

set_am_pm = 11; // सुबह/शाम सेट करने के लिए पिन 11 का उपयोग करें

int set_hr_a = 10; // अलार्म के लिए घंटे सेट करने के लिए पिन 10 का उपयोग करें int set_min_a = 9; // अलार्म int set_am_pm_a = 8 के लिए मिनट सेट करने के लिए पिन 9 का उपयोग करें; // अलार्म के लिए सुबह/शाम सेट करने के लिए पिन 8 का उपयोग करें

इंट स्पीकर = 7; // स्पीकरिंट के लिए उपयोग करने के लिए पिन शांत = 6; // स्पीकर को रोकने के लिए पिन करें

बूल अलार्म = झूठा; // अलार्म को चालू रखने के लिए फ्लैग करें

बूल शांत = झूठा; // चुप दिखाने वाला झंडा दबाया नहीं गया है

int cur_time = 0; // वर्तमान समय के लिए चर

इंट ईटाइम = 0; // बीता हुआ समय के लिए चर

चरण 11:

3. इसके बाद, हमें एलसीडी स्क्रीन को सेट करना होगा और उपयोगकर्ता को वर्तमान समय निर्धारित करने के लिए कहना होगा। चूंकि इसे केवल एक बार करने की आवश्यकता है, हम इसे सेटअप रूटीन में करेंगे।

व्यर्थ व्यवस्था() {

// एलसीडी स्क्रीन सेट करें

सीरियल.बेगिन (९६००); // 9600 बॉड पर सीरियल को इनिशियलाइज़ करें

सीरियल.राइट(17); // बैक लाइट चालू करें

सीरियल.राइट (24); // कर्सर और बिना पलक झपकाए डिस्प्ले को चालू करें

सीरियल.राइट(12); // स्क्रीन साफ़ करें

सीरियल.राइट(१२८); // कर्सर को ऊपरी बाएँ कोने पर ले जाएँ // पिनमोड पिनमोड सेट करें (set_hr, इनपुट); पिनमोड (set_min, INPUT);

पिनमोड (set_am_pm, INPUT);

पिनमोड (set_hr_a, INPUT);

पिनमोड (set_min_a, INPUT);

पिनमोड (set_am_pm_a, INPUT);

पिनमोड (स्पीकर, आउटपुट);

पिनमोड (शांत, इनपुट);

// प्रारंभिक शक्ति पर, उपयोगकर्ता ने वर्तमान समय निर्धारित किया है। Serial.print ("वर्तमान समय निर्धारित करें"); देरी (2000);

सीरियल.राइट(12);

प्रिंटटाइम्स ();

cur_time = मिली (); // वर्तमान समय को स्टोर करें}

चरण 12:

4. फिर, लूप रूटीन में, हम समय का ट्रैक रखते हैं और यह देखने के लिए बटन की स्थिति पढ़ते हैं कि उपयोगकर्ता किसी भी समय को सेट कर रहा है या नहीं।

शून्य लूप () {

// समय रखें

समय रखें();

// यह देखने के लिए जांचें कि क्या यह अलार्म का समय है!

अगर ((घंटा == घंटा_ए और& मिनट == मिनट_ए &&! शांत) || अलार्म) {टोन (स्पीकर, 2000, 500); // 500 ms. के लिए स्पीकर को 2000 Hz ध्वनि आउटपुट करें

देरी (500); // देरी 500 एमएस अगर (! अलार्म) {// अगर अलार्म बंद है, तो इसे चालू करें

}

}

// यदि उपयोगकर्ता शांत बटन दबाकर अलार्म को शांत करता है, तो अलार्म बंद करें यदि (अलार्म &&! शांत && डिजिटल पढ़ें (शांत)) {

अलार्म = झूठा;

शांत = सच; }

// अलार्म रीसेट करें अगर (! अलार्म && शांत && मिनट! = मिनट_ए) {शांत = झूठा;

}

// यह देखने के लिए जांचें कि क्या सेट पिन उच्च जाते हैं, और यदि ऐसा है, तो संबंधित मान बढ़ाएंif(digitalRead(set_hr) && घंटा <12){

घंटा++;

प्रिंटटाइम्स ();

बहस ();

}

और अगर (डिजिटल रीड (set_hr) && घंटा == 12) {घंटा = 1;

प्रिंटटाइम्स ();

बहस ();

}

अन्यथा{}

अगर (डिजिटल रीड (सेट_मिन) && मिनट <59) {

मिनट ++; प्रिंटटाइम्स ();

बहस ();

}

और अगर (डिजिटल रीड (सेट_मिन) && मिनट == 59) {मिनट = 0;

प्रिंटटाइम्स ();

बहस ();

}

और {}अगर (डिजिटल रीड (set_am_pm) && am_pm){

am_pm = झूठा;

प्रिंटटाइम्स ();

बहस ();

}

और अगर (डिजिटल रीड (set_am_pm) &&! am_pm) {am_pm = सच; प्रिंटटाइम्स ();

बहस ();

}

और {}अगर (डिजिटल रीड (set_hr_a) && घंटा_ए <12){

घंटा_ए++;

प्रिंटटाइम्स ();

बहस ();

}

और अगर (डिजिटल रीड (set_hr_a) && घंटा_ए == 12) {hour_a = 1;

प्रिंटटाइम्स ();

बहस ();

}

और {}अगर (डिजिटल रीड (सेट_मिन_ए) && मिनट_ए <59){

मिनट_ए++;

प्रिंटटाइम्स ();

बहस ();

}

और अगर (डिजिटल रीड (सेट_मिन) && मिनट_ए == 59) {मिनट_ए = 0;

प्रिंटटाइम्स ();

बहस ();

}

और {}अगर (डिजिटल रीड (set_am_pm_a) && am_pm_a){

am_pm_a = झूठा;

प्रिंटटाइम्स ();

बहस ();

}

और अगर (डिजिटल रीड (set_am_pm_a) &&! am_pm_a) {am_pm_a = सच;

प्रिंटटाइम्स ();

बहस ();

}

अन्यथा{}

}

चरण 13:

5. यहां, आप मेरे द्वारा बनाए गए कुछ सबरूटीन्स देखेंगे - डेब्यू () और प्रिंटटाइम्स ()। डेब्यू () का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि हम केवल एक बार बटन पढ़ें। चूंकि Arduino प्रति सेकंड हजारों बार स्कैन करता है, यह सोच सकता है कि बटन को कई बार दबाया गया था जब आप इसे केवल एक बार पढ़ने का इरादा रखते थे। डेब्यू () बटन जारी होने तक प्रोग्राम को फ्रीज कर देगा। प्रिंटटाइम्स() एलसीडी स्क्रीन को अपडेट करता है, लेकिन चूंकि वह कई कमांड थे, इसलिए मैंने उन्हें एक बार टाइप किया और फिर किसी भी समय सबरूटीन को कॉल कर सकते हैं।

// जबकि कोई भी बटन दबाया जा रहा है, इस फ़ंक्शन में रहें और फिर 250 एमएस की देरी करें।

शून्य बहस () {

जबकि(डिजिटलरीड(set_hr) || digitalRead(set_min) ||

digitalRead(set_am_pm) || digitalRead(set_hr_a) ||

digitalRead(set_min_a) || digitalRead(set_am_pm_a)){} देरी (250);

}

// अगर कोई बदलाव होता है तो अपडेट किए गए समय को प्रिंट करता है

शून्य प्रिंटटाइम्स () {

सीरियल.राइट(12);

सीरियल.प्रिंट ("वर्तमान समय:");

सीरियल.राइट (148);

अगर (घंटा <10) {

सीरियल.प्रिंट ("0");

}

सीरियल.प्रिंट (घंटा);

सीरियल.प्रिंट (":");

अगर (मिनट <10) {

सीरियल.प्रिंट ("0");

}

सीरियल.प्रिंट (मिनट); सीरियल.प्रिंट (":");

अगर (दूसरा <10) {

सीरियल.प्रिंट ("0");

}

सीरियल.प्रिंट (सेकंड);

अगर (am_pm){

सीरियल.प्रिंट ("पीएम");

}

अन्यथा{

सीरियल.प्रिंट ("एएम");

}

सीरियल.राइट (168);

Serial.print ("अलार्म सेट के लिए:");

सीरियल.राइट(१८८);

अगर (घंटा_ए <10){

सीरियल.प्रिंट ("0");

}

सीरियल.प्रिंट (घंटा_ए);

सीरियल.प्रिंट (":");

अगर (मिनट_ए <10) {

सीरियल.प्रिंट ("0");

}

सीरियल.प्रिंट (मिनट_ए);

अगर (am_pm_a){

सीरियल.प्रिंट ("पीएम");

}

अन्यथा{

सीरियल.प्रिंट ("एएम");

}

}

// समय मापदंडों को बढ़ाएँ शून्य

समय रखें(){

ईटाइम = मिली () - cur_time;

अगर (ईटाइम>= 1000 && सेकेंड <59){

दूसरा++;

cur_time = मिली ();

प्रिंटटाइम्स ();

}

और अगर (ईटाइम> = 1000 && सेकंड == 59 && मिनट <59) {सेकंड = 0;

मिनट++;

cur_time = मिली ();

प्रिंटटाइम्स ();

}

और अगर (ईटाइम>= 1000 && सेकेंड == 59 && मिनट == 59 && घंटा <12){

दूसरा = 0; मिनट =

0; घंटा++; cur_time =

मिली (); प्रिंटटाइम्स ();

}

और अगर (ईटाइम>= 1000 && सेकेंड == 59 && मिनट == 59 && घंटा == 12) {

दूसरा = 0; मिनट =

0; घंटा = 1; am_pm =

!दोपहर से पूर्व दोपहर के बाद;

cur_time = मिली ();

प्रिंटटाइम्स ();

}

अन्यथा{}

}

चरण 14:

6. बस!

संकलित करें और अपलोड करें और आपका काम हो गया!

सिफारिश की: