विषयसूची:

Arduino हॉट व्हील्स स्पीड ट्रैक पार्ट # 2 - कोड: 5 चरण
Arduino हॉट व्हील्स स्पीड ट्रैक पार्ट # 2 - कोड: 5 चरण

वीडियो: Arduino हॉट व्हील्स स्पीड ट्रैक पार्ट # 2 - कोड: 5 चरण

वीडियो: Arduino हॉट व्हील्स स्पीड ट्रैक पार्ट # 2 - कोड: 5 चरण
वीडियो: Amazing arduino project 2024, नवंबर
Anonim
Image
Image

इस परियोजना के पहले भाग में हमने 2 ब्रेडबोर्ड पर प्रोटोटाइप के लिए हार्डवेयर बनाया।

और इस भाग में हम कोड को देखेंगे कि यह कैसे काम करता है और फिर इसका परीक्षण करेंगे।

संपूर्ण कोड समीक्षा और कार्य कोड के प्रदर्शन के लिए उपरोक्त वीडियो देखना सुनिश्चित करें।

चरण 1: मास्टर और गुलाम दोनों एक ही कोड में

कोड 2 भागों में है, लेकिन एक ही फाइल के अंदर है। मैं यह निर्धारित करने के लिए #define और #ifdef का उपयोग करता हूं कि कौन सा कोड संकलित या अनदेखा किया जाएगा ताकि मैं किसी भी कोड को अलग कर सकूं जो केवल मास्टर ब्रेडबोर्ड और कोड जो केवल स्लेव ब्रेडबोर्ड के लिए है।

मूल रूप से, यदि परिभाषित मास्टर मिल जाता है, तो मास्टर कोड ब्लॉक के अंदर बैठे किसी भी कोड को संकलित किया जाएगा और उस ब्लॉक के बाहर किसी भी कोड को संकलन समय पर हटा दिया जाएगा।

#ifdef मास्टर

// मास्टर विशिष्ट कोड यहाँ है

#अन्यथा

#दास को परिभाषित करें

// गुलाम विशिष्ट कोड यहाँ है

#अगर अंत

जब मास्टर को संकलित किया जाता है तो मैं उसी तकनीक का उपयोग #दास को परिभाषित करने के लिए भी कर रहा हूं, इसलिए आपको केवल मास्टर को परिभाषित करने के बारे में चिंता करने की आवश्यकता है या सक्षम दास को परिभाषित करने के लिए नहीं।

चरण 2: ब्लूटूथ मॉड्यूल सीरियल के माध्यम से बात करते हैं पढ़ें और लिखें

इस प्रोजेक्ट में केवल SLAVE ब्रेडबोर्ड मास्टर ब्रेडबोर्ड से बात करता है। मास्टर कभी वापस बात नहीं करता है, यह केवल सुनता है और फिर आने वाले डेटा पर कार्य करता है।

मॉड्यूल Arduino कोडिंग इकोसिस्टम में बिल्ट इन सीरियल क्लास का उपयोग करके बात करते हैं और सुनते हैं।

ब्लूटूथ मॉड्यूल 38400 बॉड पर संचार करते हैं, इसलिए दोनों कोड पथ अपने सीरियल संचार का उपयोग करके आरंभ करते हैं:

सीरियल.बेगिन (38400);

और दास उपयोग करता है:

Serial.write (यहां डेटा);

मास्टर से बात करने के लिए, और मास्टर उपयोग करता है:

डेटा = सीरियल.रीड ();

सीरियल स्ट्रीम को सुनने और इसकी सामग्री को पढ़ने के लिए और इसे एक वेरिएबल के अंदर स्टोर करने के लिए।

चरण 3: दौड़ को नियंत्रित करना

स्लेव मास्टर को बताता है कि क्या यह माइक्रो-कंट्रोलर से जुड़े हरे बटन के माध्यम से अधिक या तैयार मोड में दौड़ में है। रेडी मोड में, IR सेंसर कुछ भी नहीं करते हैं और मास्टर डिस्प्ले पर 8 डैश दिखाएगा यह इंगित करने के लिए कि यह रेडी मोड में है।

जब दास मास्टर को बताता है कि एक दौड़ शुरू होने जा रही है, तो दास नीचे से गुजरने के लिए कारों के लिए इसके किनारे (रेस ट्रैक की शुरुआत) पर आईआर सेंसर को मतदान करना शुरू कर देता है।

चूंकि प्रत्येक कार प्रत्येक आईआर सेंसर के नीचे से गुजरती है, यह मास्टर को ए (कार 1) या बी (कार 2) भेजती है।

जब मास्टर को ए या बी प्राप्त होता है, तो यह उस विशिष्ट कार के लिए टाइमर को सक्षम करता है और फिर फिनिश लाइन पर संबंधित आईआर सेंसर के नीचे कार के गुजरने की प्रतीक्षा करता है।

2 दशमलव स्थानों के साथ सेकंड में प्रत्येक कार के लिए वर्तमान समय प्रदर्शित करने के लिए डिस्प्ले को हर 50ms में अपडेट किया जाता है।

एक बार जब दोनों कारें फिनिश लाइन से टकराती हैं, तो मास्टर तय करता है कि कौन सी कार सबसे तेज थी और विजेता को इंगित करने के लिए उस समय डिस्प्ले पर चमकती है।

चरण 4: शेष कोड

बाकी कोड सिर्फ यूटिलिटी कोड है जो या तो 8 अंकों के डिस्प्ले पर डेटा प्रदर्शित करने को नियंत्रित करता है, या बटन प्रेस लॉजिक आदि को हैंडल करता है।

इस परियोजना के परिचय खंड में वीडियो के अंत में, मैं 2 ब्रेडबोर्ड पर चल रहे कोड का एक उदाहरण दिखाता हूं, इसलिए सुनिश्चित करें कि आप इसे देखें!

आप इस प्रोजेक्ट के लिए मेरे जीथब रेपो से कोड ले सकते हैं।

चरण 5: आगे क्या है?

अभी के लिए बस इतना ही… भाग ३ में हम ब्रेडबोर्ड से घटकों को ले जाने और कुछ और स्थायी पर देखेंगे… देखते रहें!

मुझे आशा है कि आप इस परियोजना का आनंद ले रहे हैं!

मुझे इस पर फ़ॉलो करें:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

सिफारिश की: