विषयसूची:
- चरण 1: हुकअप निर्देश
- चरण 2:
- चरण 3:
- चरण 4:
- चरण 5:
- चरण 6:
- चरण 7:
- चरण 8:
- चरण 9: प्रोग्रामिंग निर्देश
- चरण 10:
- चरण 11:
- चरण 12:
- चरण 13:
- चरण 14:
वीडियो: Arduino अलार्म क्लॉक प्रोजेक्ट: 14 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
इस परियोजना में, हम अलार्म के लिए सेट किए गए वर्तमान समय और समय को दिखाने के लिए एलसीडी स्क्रीन को नियंत्रित करने के लिए 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. बस!
संकलित करें और अपलोड करें और आपका काम हो गया!
सिफारिश की:
रिटायरमेंट क्लॉक / काउंट अप / डीएन क्लॉक: 4 कदम (चित्रों के साथ)
रिटायरमेंट क्लॉक / काउंट अप / डीएन क्लॉक: मेरे पास दराज में इन 8x8 एलईडी डॉट-मैट्रिक्स डिस्प्ले में से कुछ थे और मैं सोच रहा था कि उनके साथ क्या करना है। अन्य इंस्ट्रक्शंस से प्रेरित होकर, मुझे भविष्य की तारीख / समय की गिनती करने के लिए एक काउंट डाउन / अप डिस्प्ले बनाने का विचार आया और यदि लक्ष्य समय p
रैंडम अलार्म क्लॉक (Arduino लियोनार्डो): 3 कदम
रैंडम अलार्म क्लॉक (Arduino लियोनार्डो): आंशिक क्रेडिट: https://create.arduino.cc/projecthub/EvdS/led-dice…यह अलार्म घड़ी Arduino पासा का उपयोग यह तय करने के लिए करती है कि इसके अलार्म बजेंगे या नहीं। जब पासा 6 लुढ़कता है, तो अलार्म घड़ी लगभग 5 सेकंड के लिए बजती है। यदि यह 6 रोल नहीं करता है, तो यह w
ESP8266 का उपयोग करके इंटरनेट से समय निकालना - ESP8266 Nodemcu के साथ NTP क्लॉक प्रोजेक्ट: 5 कदम
ESP8266 का उपयोग करके इंटरनेट से समय निकालना | ESP8266 Nodemcu के साथ NTP क्लॉक प्रोजेक्ट: इस ट्यूटोरियल में हम देखेंगे कि Arduino IDE के साथ ESP8266/nodemcu का उपयोग करके समय कैसे निकाला जाए। अपने रीडिंग को टाइमस्टैम्प करने के लिए डेटा लॉगिंग में समय प्राप्त करना विशेष रूप से उपयोगी है। यदि आपके ESP8266 प्रोजेक्ट की इंटरनेट तक पहुँच है, तो आप नेटवर्क T… का उपयोग करके समय प्राप्त कर सकते हैं।
वॉल क्लॉक के साथ बहुत बढ़िया प्रोजेक्ट: 11 कदम
वॉल क्लॉक के साथ विस्मयकारी प्रोजेक्ट: हाय दोस्त, यह ब्लॉग बहुत बढ़िया होगा क्योंकि इस ब्लॉग में मैं पुरानी दीवार घड़ी का उपयोग करके एक अद्भुत एलईडी इफेक्ट सर्किट बनाऊंगा। चलो शुरू करते हैं
"वाइज़ क्लॉक 2" को असेंबल करना (अरुडिनो-आधारित अलार्म क्लॉक बहुत सारी अतिरिक्त सुविधाओं के साथ): 6 कदम
"वाइज़ क्लॉक 2" (अरुडिनो-आधारित अलार्म क्लॉक जिसमें बहुत सारी अतिरिक्त सुविधाएँ हैं) को असेंबल करना: यह ट्यूटोरियल दिखाता है कि एक ओपन सोर्स (हार्डवेयर और सॉफ्टवेयर) प्रोजेक्ट, वाइज क्लॉक 2 के लिए किट को कैसे इकट्ठा किया जाए। एक पूर्ण समझदार घड़ी 2 किट यहां खरीदी जा सकती है। संक्षेप में, यह वही है जो समझदार घड़ी 2 कर सकता है (वर्तमान ओपन सोर्स सॉफ्टवेयर के साथ