मैं जॉबी से सहमत हूं - अरुडिनो महान है लेकिन मैं हमेशा उस ढांचे से परेशान महसूस करता हूं जो वे मुझे घेरे हुए हैं। मैं आपके Arduino पर सीधे C का उपयोग करने के लिए आगे बढ़ूंगा और लाइब्रेरी की बहुत सी कार्यक्षमता का निर्माण करूँगा जो उन्होंने स्क्रैच से प्रदान की थी। मैं आम तौर पर चौड़ाई से पहले गहराई पसंद करता हूं - अधिक प्रदान किए गए ढांचे का उपयोग करके एक और माइक्रोकंट्रोलर परिवार पर शुरू न करें। इनमें से कुछ कार्यों को स्वयं कैसे कार्यान्वित करें, इसके बारे में थोड़ा और जानें।
एक काम कर रहे कार्यक्रम के साथ शुरू करें और एक समय में अपने स्वयं के संस्करणों के साथ Arduino लाइब्रेरी कॉल को बदलें। यदि आप पहले से ही हैं, तो आप नियंत्रण रजिस्टर, समय, बिट संचालन आदि के बारे में बहुत कुछ सीखेंगे। ATMega328 डेटाशीट को गहराई से पढ़ें - आपको जो कुछ भी चाहिए वह सब वहां है।
AVR स्टूडियो या कोड :: ब्लॉक की तरह एक अलग आईडीई का प्रयास करें। जीसीसी टूलकिन जानें। अधिक उन्नत कोडिंग तकनीक - इकाई परीक्षण, कवरेज, प्रोफाइलिंग, लिंट / स्प्लिंट जाँच की कोशिश करें। Arduino पर एक RTOS रखो।
एक संयुक्त प्रोग्रामर / नियंत्रक कमजोरी का संकेत नहीं है - यह सिर्फ एक डिज़ाइन विकल्प है। एकमात्र 'कमजोरी' जो इससे आ सकती थी, वह इन-सर्किट डिबगिंग की कमी है। एक AVR ड्रैगन खरीदें और आपको $ 50 का चूना लगेगा।