الفرق بين المراجعتين لصفحة: «Arduino/advanced io/tone»
جميل-بيلوني (نقاش | مساهمات) إضافة محتويات الصفحة. |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
سطر 41: | سطر 41: | ||
==مصادر== | ==مصادر== | ||
[https://www.arduino.cc/reference/en/language/functions/advanced-io/tone/ صفحة الدالة tone() في توثيق أردوينو الرسمي.] | * [https://www.arduino.cc/reference/en/language/functions/advanced-io/tone/ صفحة الدالة tone() في توثيق أردوينو الرسمي.] | ||
[[تصنيف: Arduino]] | [[تصنيف: Arduino]] | ||
[[تصنيف: Arduino Function]] | [[تصنيف: Arduino Function]] | ||
[[تصنيف: Arduino I/O]] | [[تصنيف: Arduino I/O]] | ||
[[تصنيف: Arduino Advanced I/O]] | [[تصنيف: Arduino Advanced I/O]] |
مراجعة 15:00، 17 أكتوبر 2018
تولِّد الدالة tone()
موجةً مربَّعةً بتردد محدَّد (وبنسبة 50% لدورة العمل [duty cycle]) على رجل معيَّنة. يمكن تحديد فترة زمنية معيَّنة تُولَّد خلالها الموجة فقط أو ستستمر عملية توليد الموجة إلى أن تستدعى الدالة noTone()
. يمكن ربط الرجل التي ستُولَّد عليها الموجة بطنَّان إجهادي (piezo buzzer) أو أي مكبر صوت لتشغيل النغمات الناتجة عن الموجة المولَّدة.
يمكن توليد نغمة واحدة فقط على إحدى الأرجل، لذا إن كان هنالك نغمة تعمل على رجل معيَّنة واستدعيت الدالة tone()
على رجل أخرى، فلن يكون لهذا الاستدعاء أي تأثير. أمَّا إن استدعيت الدالة على نفس الرجل التي تعمل عليها النغمة آنذاك، فسيعاد ضبط تردد النغمة التي يجري توليدها.
سيتداخل استعمال الدالة tone()
مع الخرج PWM على الرجل 3 والرجل 11 (على جميع اللوحات باستثناء لوحات Mega).
ليس بالإمكان توليد نغمات بتردد أقل من 21 هرتز. لتفاصيل تقنية أوسع، اطلع على هذه الصفحة.
البنية العامة
tone(pin, frequency)
tone(pin, frequency, duration)
المعاملات
pin
عددٌ صحيحٌ يشير إلى الرجل المراد توليد الموجة (النغمة) عليها.
frequency
عددٌ صحيحٌ عديم الإشارة (unsigned int) يحدِّد تردُّد النغمة بالهرتز.
duration
عددٌ طويلٌ عديم الإشارة (unsigned long) يحدِّد مدة عمل النغمة بالميلي ثاينة، وهو معامل اختياري.
القيم المعادة
لا يعاد أي شيء.
ملاحظات وتحذيرات
إن أردت تشغيل نغمات مختلفة على أرجل مختلفة، فأنت بحاجة إلى استدعاء الدالة noTone()
على الرجل التي تعمل عليها النغمة آنذاك قبل استدعاء الدالة tone()
على الرجل التالية.
انظر أيضًا
- الدالة
noTone()
: توقف توليد موجةٍ مربَّعةٍ على رجل معيَّنة أُنشئَت باستعمال الدالةtone()
. - الدالة
pulseIn()
: تحسب طول نبضةٍ (إمَّاHIGH
أوLOW
) على رجل محدَّدة. - الدالة
pulseInLong()
هي دالةٌ بديلةٌ محسَّنةٌ للدالةpulseIn()
، إذ يمكنها التعامل مع نبضات ومقاطعات طويلة متأثرة بحالات مختلفة. - الدالة
shiftIn()
: تزيح بايتًا من البيانات من رجل محدَّدة إلى متغيِّر مقدار بتٍّ واحدٍ في كل مرة تتغير فيها حالة النبضة على رجل أخرى إلىHIGH
. - الدالة
shiftOut()
: تزيح بايتًا من البيانات إلى رجل محدَّدة مقدار بتٍّ واحدٍ في كل مرة تتغير فيها حالة النبضة على رجل أخرى إلىHIGH
. - مثال عملي: تشغيل لحن باستعمال الدالة
tone()
. - مثال عملي: إنشاء نغمة تتبع باستعمال الدالة
tone()
. - مثال عملي: إنشاء لوحة مفاتيح بسيطة مع استعمال الدالة
tone()
. - مثال عملي: تشغيل نغمات متعددة على عدة مخرجات باستعمال الدالة
tone()
. - درس: تعديل عرض النبضة (PWM).