Arduino/analog io/analogwrite
تكتب الدالة analogWrite()
قيمةً تشابهيةً (إشارة معدل عرض النبضة [PWM]) على رجل محدَّدة. يمكن استعمالها لإضاء ضوء ليد بمستويات سطوع مختلفة أو قيادة محرك بسرعات مختلفة.
بعد استدعاء الدالة analogWrite()
ستولد الرجل موجة مربعة ثابتة ذات دورة عمل (duty cycle) محدَّدة حتى الاستدعاء التالي للدالة analogWrite()
(أو استدعاء الدالة digitalRead()
أو digitalWrite()
) على نفس الرجل. تردد إشارة معدل عرض النبضة (PWM) هي 490 هرتز تقريبًا. في لوحات أردوينو Uno وما يشابهها، تردد الرجل 5 والرجل 6 يقارب 980 هرتز.
في أغلب لوحات أردوينو (تلك ذات المتحكمات ATmega168 أو ATmega328P)، تعمل هذه الدالة على الأرجل 3 و 5 و 6 و 9 و 10 و 11. في لوحات أردوينو Mega، تعمل هذه الدالة على الأرجل من 2 إلى 13 و من 44 إلى 46. أمَّا في لوحات أردوينو الأقدم ذات المتحكمات ATmega8، تعمل الدالة analogWrite()
على الأرجل 9 و 10 و 11 فقط.
تدعم لوحات أردوينو DUE استعمال الدالة analogWrite()
مع الأرجل من 2 إلى 13 بالإضافة إلى الرجل DAC0 و DAC1. تستعمل الرجل DAC0 والرجل DAC1 في تحويل الإشارة الرقمية إلى تشابهية (عبر محول رقمي تشابهي) وتسلك سلوك خرج تشابهي حقيقي. لا تحتاج إلى استدعاء الدالة pinMode()
لضبط الرجل إلى رجل خرج قبل استدعاء الدالة analogWrite()
.
ليس للدالة analogWrite()
أية صلة بالأرجل التشابهية أو الدالة analogRead()
.
البنية العامة
analogWrite(pin, value)
المعاملات
pin
عددٌ يشير إلى الرجل الرقمية المراد قراءة قيمتها.
القيم المعادة
أمثلة
ضبط قيمة الرجل 13 إلى نفس قيمة الرجل 7 المعرَّفة على أنَّها رجل دخل:
int ledPin = 13; // هنالك ضوء ليد متصل بالرجل 13 الرقمية
int inPin = 7; // زر ضغط متصل بالرجل 7 الرقمية
int val = 0; // مغير لتخزين القيمة المقروءة
void setup()
{
pinMode(ledPin, OUTPUT); // ضبط الرجل 13 الرقمية على أنها رجل خرج
pinMode(inPin, INPUT); // ضبط الرجل 7 الرقمية على أنها رجل دخل
}
void loop()
{
val = digitalRead(inPin); // قراءة رجل الدخل
digitalWrite(ledPin, val); // ضبط حالة الضوء إلى قيمة الزر
}