جدول المحتويات:
- الخطوة 1: تحديد عناوين التسجيل
- الخطوة الثانية: المصفوفات والمتغيرات العمومية
- الخطوة 3: وظيفة "serial.begin"
- الخطوة 4: وظيفة "serial.available"
- الخطوة 5: وظيفة "serial.read"
- الخطوة 6: وظيفة "serial.write"
- الخطوة 7: وظيفة الإعداد
- الخطوة 8: وظائف الحلقة و ISR
- الخطوة 9: الأسلاك
- الخطوة 10: وضع كل شيء معًا
فيديو: مولد نغمات اردوينو بدون مكتبة أو وظائف تسلسلية (مع المقاطعات): 10 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
هذا ليس شيئًا أقوم بتوجيه تعليمات بشأنه ، فأنا أفضل الأعمال المعدنية الخاصة بي ، ولكن نظرًا لأنني طالب في الهندسة الكهربائية ويجب أن أحضر فصلًا دراسيًا حول المتحكمات الدقيقة (تصميم الأنظمة المضمنة) ، فقد اعتقدت أنني سأقدم تعليمات حول أحد مشاريعي. عندما أنشأت المشروع في الأصل وغيره من هذه الفئة ، وجدت أن هناك عددًا قليلاً جدًا من البرامج التعليمية أو لا تستخدم وظائف مكتبة اردوينو أو الوظائف التسلسلية ، وهذا سبب آخر اعتقدت أن هذا سيكون تعليميًا جيدًا.
تم تصميم هذا الرمز للميكروكونترولر Atmega 2560 ، لذلك إذا كنت ترغب في تنفيذه على لوحة أخرى ، فستحتاج إلى تغيير سجلات العناوين في الكود بناءً على دليل مستخدم وحدات التحكم الخاصة بك. الفكرة الأساسية وراء الكود هي أنه كلما أدخلت مفتاحًا على لوحة المفاتيح في الشاشة التسلسلية ، فإن arduino mega ستخرج ترددًا معينًا بناءً على المفتاح الذي تضغط عليه ، مع إعادة تعيين "q". لقد صنعته بحيث ينتج "a" التردد A المسطح و "A" سينتج التردد A الحاد ، و "b" ينتج B المسطح ، و "c" لـ C المسطح ، و "C" لـ C حاد ، وهكذا. يتم تحميل الكود الكامل في النهاية ، ولكن كل خطوة ستقسم الكود إلى أجزاء حتى يسهل شرحه.
الخطوة 1: تحديد عناوين التسجيل
هذه الخطوة سهلة ، إذا كنت تستخدم atmega 2560 ، فأنت تحتاج فقط إلى استخدام العناوين التي استخدمتها ، على الرغم من أنك إذا كنت تستخدم لوحة بشريحة مختلفة ، فستحتاج إلى العثور على عناوين كل من هذه السجلات في حسابك دليل المستخدم للرقائق. التعريفات في الأعلى هي مجرد ثوابت سنستخدمها لوظائفنا لاحقًا. نحدد العناوين على أنها متقلبة غير موقعة لأننا لا نريد أن يعبث المترجم بها.
الخطوة الثانية: المصفوفات والمتغيرات العمومية
نريد هنا تحديد مصفوفة التردد التي ستحتوي على جميع الترددات التي يجب أن يخرجها كل مفتاح. يتم حساب هذه القيم من ترددات النوتة الفعلية ، وبصراحة نسيت كيف حصلت عليها ، لكنها القيم الصحيحة عندما اختبرتها على مرسمة الذبذبات للتأكد. نقوم أيضًا بتعريف مصفوفة الملاحظات التي تحتوي على جميع المفاتيح للضغط عليها لكل نغمة ، بالإضافة إلى المتغيرات التي سنحتاجها لوظائفنا اللاحقة.
الخطوة 3: وظيفة "serial.begin"
سنقوم باستدعاء وظيفتنا المخصصة التي تكرر وظيفة "serial.begin" U0init (). يأخذ معدل البث بالباود المطلوب كمدخل ويبدأ المنفذ التسلسلي عند هذا المعدل بالباود.
الخطوة 4: وظيفة "serial.available"
سنقوم باستدعاء الوظيفة التي تقلد "serial.available" U0kbhit (). لا يتطلب الأمر إدخالًا ولكنه يكتشف بدلاً من ذلك ما إذا كان هناك تغيير تم إجراؤه على لوحة المفاتيح باستخدام بت حالة RDA ويعود صحيحًا عند اكتشاف تغيير.
الخطوة 5: وظيفة "serial.read"
سنقوم باستدعاء الوظيفة التي تحاكي وظيفة "serial.read" U0getchar () ، والتي لا تأخذ أي إدخال أو إخراج أي تغيير يتم إجراؤه على لوحة المفاتيح ، والذي يتم تخزينه في سجل UDR0.
الخطوة 6: وظيفة "serial.write"
سنقوم باستدعاء الوظيفة التي تحاكي "serial.write" U0putchar () ، والتي تأخذ البيانات من سجل UDR0 أثناء اكتشاف التغيير وتخزينه ، والمخرجات التي تتغير مرة أخرى إلى الشاشة التسلسلية.
الخطوة 7: وظيفة الإعداد
هذه هي وظيفة الإعداد الأساسية التي ستستخدم تقليدنا "serial.begin" لتهيئة المنفذ التسلسلي ، وستقوم بتهيئة إعدادات البت الخاصة بنا لسجلات المؤقت وتعيين PB6 لإخراج نغماتنا.
الخطوة 8: وظائف الحلقة و ISR
تعمل الحلقة على النحو التالي: إذا تم الكشف عن تغيير من خلال وظيفة "serial.available" الخاصة بنا ، فإن وظيفة "serial.read" الخاصة بنا تخزن هذا التغيير ، وتقوم وظيفة "serial.write" الخاصة بنا بوضع هذا التغيير في الشاشة التسلسلية. طالما أن المتغير i أقل من حجم صفيف التردد ، فإنه سيحدد الإخراج ليكون موضع i في تلك المجموعة ، ويخرج التردد في هذا الموضع. يعمل ISR كإعادة تعيين ، حيث إذا كان موضع صفيف التردد لا يساوي 0 (بمعنى آخر إذا لم يتم الضغط على "q") ، فسيخرج التردد ، ولكن عند الضغط على "q" سيتم إعادة تعيينه. يرجى ملاحظة: يستخدم هذا الرمز المقاطعات ، ولكن يمكن القيام به مع تعطيل المقاطعات. سأقوم بنشر الكود بدون مقاطعات إذا تلقيت أي طلبات لذلك ، أعتقد فقط أن إصدار المقاطعة أكثر متعة.
الخطوة 9: الأسلاك
الأسلاك الخاصة بهذا الرمز سهلة للغاية ، ما عليك سوى وضع سلك إخراج من PB6 إلى لوح التجارب ، وتوصيل الجرس أو مكبر الصوت في سلسلة مع ذلك ، وإعادة توصيله بالأرض. ملاحظة: إذا كنت تستخدم مكبر صوت ، ضع مقاومًا صغيرًا قبل السماعة. إذا كنت تريد فقط رؤية الإخراج ولكن لا تسمعه ، فما عليك سوى توصيل PB6 بالسلك الأحمر لمؤشر الذبذبات والرصاص الأسود بالأرض.
الخطوة 10: وضع كل شيء معًا
لقد أضفت الكود الكامل إلى هذه الخطوة ، لأنني شرحت جميع أجزائه في الخطوات السابقة. لا يتطلب الأمر سوى إدخال لوحة المفاتيح للترددات المختلفة والمخرجات التي تصل إلى PB6. آمل أن تكون قد استمتعت بقراءة طريقة مختلفة للتشفير باستخدام IDE!
يرجى أيضًا التصويت لهذا في مسابقة Microcontroller: D
موصى به:
برمجة Arduino باستخدام Arduino آخر لعرض نص متحرك بدون مكتبة: 5 خطوات
برمجة Arduino باستخدام Arduino آخر لعرض نص متحرك بدون مكتبة: Sony Spresense أو Arduino Uno ليست باهظة الثمن ولا تتطلب الكثير من الطاقة. ومع ذلك ، إذا كان لمشروعك قيود على الطاقة أو المساحة أو حتى الميزانية ، فقد ترغب في التفكير في استخدام Arduino Pro Mini. على عكس Arduino Pro Micro ، فإن Arduino Pro Mi
أرخص اردوينو -- أصغر اردوينو -- اردوينو برو ميني -- البرمجة -- اردوينو نينو: 6 خطوات (مع صور)
أرخص اردوينو || أصغر اردوينو || اردوينو برو ميني || البرمجة || اردوينو نينو: …………………………. الرجاء الاشتراك في قناتي على يوتيوب لمزيد من مقاطع الفيديو ……. يدور هذا المشروع حول كيفية التعامل مع أصغر وأرخص اردوينو على الإطلاق. أصغر وأرخص اردوينو هو اردوينو برو ميني. إنه مشابه لاردوينو
نغمات بدون استخدام اليدين: 5 خطوات
نغمات بدون استخدام اليدين: قم بتجميع مربع تبديل للتبديل من الاستماع إلى الموسيقى على سماعات الرأس إلى الاستماع إلى الرد على هاتفك بأذنك اليسرى ، بينما تستمر الموسيقى في اليمين. (يتطلب بعض المكونات الإلكترونية ومهارات الجندي الأساسية)
تثبيت نغمات بدون خطة بيانات: 9 خطوات
تثبيت نغمات رنين بدون خطة بيانات: لقد سئمت من رسوم 180 دولارًا سنويًا لخطة بيانات لكل من هاتفي الخلوي ، لذلك قمت بإلغائها. ثم اكتشفت أنه يمكنني إنشاء نغمات رنين mp3 مجانية ، وتحميلها على الإنترنت ، وتنزيلها على هاتفي. ثم علمت عن الرسوم بالدولار
مبرد / حامل كمبيوتر محمول بدون تكلفة (بدون غراء ، بدون حفر ، بدون صواميل ومسامير ، بدون براغي): 3 خطوات
مبرد / حامل للكمبيوتر المحمول بدون تكلفة (بدون غراء ، بدون حفر ، بدون صواميل ومسامير ، بدون براغي): التحديث: يرجى & nbsp ؛ يرجى التصويت على & nbsp ؛ من أجل الدخول في www.instructables.com/id/Zero-Cost-Aluminum-Furnace-No-Propane-No-Glue-/ أو ربما التصويت لأفضل أصدقائي