جدول المحتويات:

مؤقتات اردوينو: 8 مشاريع: 10 خطوات (بالصور)
مؤقتات اردوينو: 8 مشاريع: 10 خطوات (بالصور)

فيديو: مؤقتات اردوينو: 8 مشاريع: 10 خطوات (بالصور)

فيديو: مؤقتات اردوينو: 8 مشاريع: 10 خطوات (بالصور)
فيديو: مشروع اشارات المرور باستخدام الاردوينو 2024, يونيو
Anonim
مؤقتات اردوينو: 8 مشاريع
مؤقتات اردوينو: 8 مشاريع

يمكن لـ Arduino Uno أو Nano إنشاء إشارات رقمية دقيقة على ستة دبابيس مخصصة باستخدام أجهزة ضبط الوقت الثلاثة المدمجة. لا يتطلب الأمر سوى عدد قليل من الأوامر لإعداد واستخدام دورات وحدة المعالجة المركزية (CPU) للتشغيل!

قد يكون استخدام أجهزة ضبط الوقت أمرًا مخيفًا إذا بدأت من ورقة البيانات الكاملة ATMEGA328 ، والتي تحتوي على 90 صفحة مخصصة لوصفها! العديد من أوامر Arduino المضمنة تستخدم بالفعل أجهزة ضبط الوقت ، على سبيل المثال millis () و delay () و tone () و AnalogWrite () ومكتبة المؤازرة. ولكن لاستخدام قوتهم الكاملة ، ستحتاج إلى إعدادهم من خلال السجلات. أشارك هنا بعض وحدات الماكرو والوظائف لجعل ذلك أسهل وأكثر شفافية.

بعد نظرة عامة موجزة جدًا على المؤقتات ، اتبع 8 مشاريع رائعة تعتمد على توليد الإشارات باستخدام المؤقتات.

الخطوة 1: المكونات المطلوبة

المكونات المطلوبة
المكونات المطلوبة

لإنشاء جميع المشاريع الثمانية التي ستحتاج إليها:

  • Arduino Uno أو متوافق
  • درع نموذج أولي مع لوح صغير
  • 6 كابلات توصيل للوح اللوح
  • 6 وصلات توصيل قصيرة للوح اللوح (اصنع نفسك من سلك توصيل صلب صلب بطول 10 سم)
  • 2 خيوط تمساح
  • 1 أبيض 5 مم LED
  • 220 أوم المقاوم
  • 10 كيلو أوم المقاوم
  • مقياس جهد 10 كيلو أوم
  • 2 مكثفات سيراميك 1muF
  • 1 مكثف كهربائيا 10muF
  • 2 الثنائيات ، 1n4148 أو ما شابه ذلك
  • 2 محرك سيرفو صغير SG90
  • 1 مكبر صوت 8 أوم
  • سلك مطلي بالمينا رقيق بطول 20 مترًا (0.13 ملم)

الخطوة 2: نظرة عامة على Arduino Timers لتوليد الإشارة

Timer0 و timer2 هما مؤقتان 8 بت ، مما يعني أنهما يمكنهما العد من 0 إلى 255 على الأكثر. Timer1 هو مؤقت 16 بت ، لذا يمكنه العد حتى 65535. يحتوي كل مؤقت على دبابيس إخراج مرتبطة: 6 و 5 للمؤقت 0 و 9 و 10 للمؤقت 1 و 11 و 3 للمؤقت 2. يتم زيادة المؤقت في كل دورة ساعة Arduino ، أو بمعدل يتم تقليله بواسطة عامل التدرج المسبق ، والذي يكون إما 8 أو 64 أو 256 أو 1024 (يُسمح أيضًا باستخدام 32 و 128 للمؤقت 2). عد العدادات من 0 إلى "TOP" ثم مرة أخرى (PWM سريع) أو تنازلي (المرحلة الصحيحة PWM). وبالتالي تحدد قيمة "TOP" التردد. يمكن أن تقوم دبابيس الإخراج بتعيين أو إعادة تعيين أو قلب قيمة سجل مقارنة الإخراج ، بحيث تحدد تلك الدبابيس دورة العمل. فقط المؤقت 1 لديه القدرة على ضبط التردد ودورات العمل بشكل مستقل لكل من دبابيس الإخراج.

الخطوة 3: وميض LED

Image
Image
وميض LED
وميض LED
وميض LED
وميض LED

أقل تردد يمكن الوصول إليه باستخدام جهاز ضبط الوقت 8 بت هو 16 ميجا هرتز / (511 * 1024) = 30 ، 6 هرتز. لجعل وميض LED مع 1 هرتز ، نحتاج إلى مؤقت 1 ، والذي يمكنه الوصول إلى ترددات أصغر 256 مرة ، 0.12 هرتز.

قم بتوصيل مصباح LED بالقطب الموجب (ساق طويلة) إلى pin9 وتوصيل الكاثود بمقاوم 220 أوم بالأرض. قم بتحميل الكود. سيومض مؤشر LED عند 1 هرتز بالضبط مع دورة عمل بنسبة 50٪. وظيفة الحلقة () فارغة: تتم تهيئة المؤقت عند الإعداد () ولا يحتاج إلى مزيد من الاهتمام.

الخطوة 4: LED باهتة

Image
Image
LED باهتة
LED باهتة
LED باهتة
LED باهتة

يعد تعديل عرض النبض طريقة فعالة لتنظيم شدة LED. مع وجود سائق مناسب ، فهي أيضًا الطريقة المفضلة لتنظيم سرعة المحركات الكهربائية. نظرًا لأن الإشارة إما تشغيل بنسبة 100٪ أو إيقاف تشغيلها بنسبة 100٪ ، فلا يتم إهدار أي طاقة على مقاومة متسلسلة. في الأساس ، يشبه وميض مؤشر LED أسرع مما يمكن أن تتبعه العين. 50 هرتز كافية من حيث المبدأ ، ولكن قد يبدو أنها تومض قليلاً وعندما يتحرك مؤشر LED أو العينين ، قد ينتج عن ذلك "درب" مزعج غير مستمر. باستخدام مقياس مسبق لـ 64 مع مؤقت 8 بت ، نحصل على 16 ميجا هرتز / (64 * 256) = 977 هرتز ، والتي تناسب الغرض. نختار timer2 ، بحيث يظل timer1 متاحًا لوظائف أخرى ، ولا نتدخل في وظيفة Arduino time () ، التي تستخدم timer0.

في هذا المثال ، يتم تنظيم دورة العمل ، وبالتالي الكثافة ، بواسطة مقياس الجهد. يمكن تنظيم مؤشر LED الثاني بشكل مستقل بنفس الموقت عند الطرف 3.

الخطوة 5: المحول الرقمي إلى التناظري (DAC)

Image
Image
محول رقمي إلى تناظري (DAC)
محول رقمي إلى تناظري (DAC)
محول رقمي إلى تناظري (DAC)
محول رقمي إلى تناظري (DAC)

لا يحتوي Arduino على إخراج تناظري حقيقي. تأخذ بعض الوحدات جهدًا تناظريًا لتنظيم المعلمة (تباين العرض ، عتبة الكشف ، إلخ). باستخدام مكثف ومقاوم واحد فقط ، يمكن استخدام timer1 لإنشاء جهد تناظري بدقة 5mV أو أفضل.

يمكن لمرشح الترددات المنخفضة "متوسط" إشارة PWM إلى جهد تناظري. يتم توصيل مكثف من خلال المقاوم بدبوس PWM. يتم تحديد الخصائص من خلال تردد PWM وقيم المقاوم والمكثف. ستكون دقة أجهزة ضبط الوقت 8 بت 5V / 256 = 20mV ، لذلك اخترنا Timer1 للحصول على دقة 10 بت. دائرة RC عبارة عن مرشح تمرير منخفض من الدرجة الأولى وسيكون لها بعض التموج. يجب أن يكون النطاق الزمني لدائرة RC أكبر بكثير من فترة إشارة PWM لتقليل التموج. الفترة التي نحصل عليها لدقة 10 بت هي 1024/16 ميجاهرتز = 64 ميوس. إذا استخدمنا مكثف 1muF ومقاوم 10kOhm ، RC = 10ms. يكون التموج من الذروة إلى الذروة 5V * 0.5 * T / (RC) = 16mV على الأكثر ، والذي يعتبر كافيًا هنا.

لاحظ أن DAC هذا يحتوي على مقاومة خرج عالية جدًا (10 كيلو أوم) ، لذلك سينخفض الجهد بشكل كبير إذا قام بسحب التيار. لتجنب ذلك ، يمكن تخزينه مؤقتًا باستخدام opamp ، أو يمكن اختيار مجموعة أخرى من R و C ، على سبيل المثال 1kOhm مع 10muF.

في المثال ، يتم توجيه ناتج DAC باستخدام مقياس جهد. يمكن تشغيل قناة DAC مستقلة ثانية مع timer1 على الطرف 10.

الخطوة 6: المسرع

Image
Image
المسرع
المسرع
المسرع
المسرع

المسرع يساعد على تتبع الإيقاع عند تشغيل الموسيقى. بالنسبة للنبضات القصيرة جدًا ، يمكن تغذية خرج مؤقت اردوينو مباشرة إلى مكبر الصوت ، مما ينتج عنه نقرات مسموعة بوضوح. باستخدام مقياس الجهد ، يمكن تنظيم وتيرة النبض من 40 إلى 208 نبضة في الدقيقة ، في 39 خطوة. Timer1 مطلوب للدقة المطلوبة. قيمة "TOP" التي تحدد التردد ، يتم تعديلها داخل دالة الحلقة () ، وهذا يتطلب الانتباه! ترى هنا أن وضع WGM يختلف عن الأمثلة الأخرى التي لها تردد ثابت: هذا الوضع ، مع تعيين TOP بواسطة سجل OCR1A ، يحتوي على تخزين مؤقت مزدوج ويحمي من TOP المفقود والحصول على خلل طويل. ومع ذلك ، هذا يعني أنه يمكننا استخدام دبوس إخراج واحد فقط.

الخطوة 7: طيف الصوت

Image
Image
طيف الصوت
طيف الصوت
طيف الصوت
طيف الصوت

يمكن للبشر سماع أكثر من 3 أوامر من حجم ترددات الصوت ، من 20 هرتز إلى 20 كيلو هرتز. هذا المثال يولد الطيف الكامل بمقياس الجهد. يتم وضع مكثف 10muF بين السماعة و Arduino لمنع التيار المستمر. ينتج Timer1 موجة مربعة. وضع توليد الموجي هنا هو PWM تصحيح الطور. في هذا الوضع ، يبدأ العداد في العد التنازلي عندما يصل إلى القمة ، مما ينتج عنه نبضات ذات متوسط ثابت ، حتى عندما تختلف دورة العمل. ومع ذلك ، فإنه ينتج أيضًا فترة مزدوجة (تقريبًا) ، ويحدث فقط أنه مع مقياس مسبق 8 ، يغطي المؤقت 1 الطيف المسموع بالكامل ، دون الحاجة إلى تغيير المقياس المسبق. هنا أيضًا ، نظرًا لأن قيمة TOP يتم تغييرها أثناء التنقل ، فإن استخدام OCR1A كأعلى يقلل من مواطن الخلل.

الخطوة 8: المحركات المؤازرة

Image
Image
محركات مؤازرة
محركات مؤازرة
محركات مؤازرة
محركات مؤازرة

توجد مكتبات مؤازرة قوية ، ولكن إذا كان لديك مؤازرتان فقط للقيادة ، فيمكنك القيام بذلك مباشرة باستخدام timer1 ، وبالتالي تقليل استخدام وحدة المعالجة المركزية والذاكرة وتجنب المقاطعات. يأخذ مؤازر SG90 الشهير إشارة 50 هرتز ، ويرمز طول النبضة إلى الموضع. مثالي لجهاز ضبط الوقت 1. تم إصلاح التردد ، لذلك يمكن استخدام كلا المخرجات على pin9 و pin 10 لتوجيه الماكينات بشكل مستقل.

الخطوة 9: مضاعف الجهد والعاكس

مضاعف الجهد والعاكس
مضاعف الجهد والعاكس
مضاعف الجهد والعاكس
مضاعف الجهد والعاكس
مضاعف الجهد والعاكس
مضاعف الجهد والعاكس

في بعض الأحيان يتطلب مشروعك جهدًا أعلى من 5 فولت أو جهدًا سلبيًا. قد يكون لتشغيل MOSFET ، لتشغيل عنصر بيزو ، لتشغيل opamp ، أو إعادة تعيين EEPROM. إذا كان السحب الحالي صغيرًا بدرجة كافية ، حتى 5 مللي أمبير تقريبًا ، فقد تكون مضخة الشحن هي الحل الأبسط: فقط 2 ديود ومكثفتان متصلتان بإشارة نبضية من جهاز توقيت يسمحان بمضاعفة اردوينو 5 فولت إلى 10 فولت. في الممارسة العملية ، هناك قطرتان من الصمام الثنائي ، لذلك سيكون مثل 8.6 فولت في الممارسة العملية للمضاعف ، أو -3.6 فولت للعاكس.

يجب أن يكون تردد الموجة المربعة كافياً لضخ شحنة كافية عبر الثنائيات. يقوم مكثف 1muF بتحريك 5muC من التغيير عندما يتغير الجهد بين 0 و 5V ، لذلك بالنسبة لتيار 10mA ، يجب أن يكون التردد 2 كيلو هرتز على الأقل. في الممارسة العملية ، التردد العالي هو الأفضل ، لأنه يقلل من التموج. مع عداد الوقت 2 من 0 إلى 255 بدون مقياس مسبق ، يكون التردد 62.5 كيلو هرتز ، والذي يعمل بشكل جيد.

الخطوة 10: نقل الطاقة لاسلكيًا

Image
Image
نقل الطاقة اللاسلكي
نقل الطاقة اللاسلكي
نقل الطاقة اللاسلكي
نقل الطاقة اللاسلكي

ليس من غير المألوف شحن ساعة ذكية بدون كابلات ، ولكن يمكن أن يكون الأمر نفسه جزءًا من مشروع Arduino بسهولة. يمكن للملف الذي يحتوي على إشارة عالية التردد نقل الطاقة إلى ملف آخر قريب من خلال الحث ، دون اتصال كهربائي.

قم أولاً بإعداد الملفات. لقد استخدمت لفافة ورق بقطر 8.5 سم وسلك مطلي بالمينا بقطر 0.13 مم لعمل ملفين: الملف الأساسي بـ 20 لفة ، والثانوي بـ 50 لفة. الحث الذاتي لهذا النوع من الملفات مع لفات N ونصف قطر R هو ~ 5muH * N ^ 2 * R. لذا بالنسبة لـ N = 20 و R = 0.0425 يعطي L = 85muH ، والذي تم تأكيده باستخدام اختبار المكون. نحن ننتج إشارة بتردد 516 كيلو هرتز ، مما ينتج عنه مقاومة 2pi * f * L = 275Ohm. هذا مرتفع بما يكفي بحيث لا يدخل Arduino في التيار الزائد.

لتشغيل الملف بشكل أكثر فاعلية ، نود استخدام مصدر تيار متردد حقيقي. هناك خدعة يمكن القيام بها: يمكن تشغيل مخرجي جهاز ضبط الوقت في مرحلة معاكسة ، عن طريق عكس أحد المخرجات. لجعلها أكثر تشابهًا مع الموجة الجيبية ، نستخدم PWM تصحيح الطور. بهذه الطريقة ، بين 9 و 10 ، يتناوب الجهد بين كل من 0V ، دبوس 9 + 5V ، كلاهما 0V ، دبوس 10 + 5V. يظهر التأثير في الصورة من تتبع النطاق (مع مقياس مسبق 1024 ، لا يحتوي نطاق اللعبة هذا على نطاق ترددي كبير).

قم بتوصيل الملف الأساسي بالدبوس 9 و 10. قم بتوصيل مؤشر LED بالملف الثانوي. عندما يتم تقريب الملف الثانوي من الملف الأساسي ، يضيء مصباح LED بشكل ساطع.

موصى به: