الحسّاسات والمشغّلات للمتحكّمات · الفصل 10 — تشغيل الأحمال: الترانزستور والمرحّلהפעלת עומסים: טרנזיסטור, ממסר וממסר מצב מוצק · 33.102⌂📚🏠
الفصل 10

تشغيل الأحمال: الترانزستور والمرحّل

הפעלת עומסים: טרנזיסטור, ממסר וממסר מצב מוצק
الصفّان الحادي عشر والثاني عشر · 6 ساعات تعليمية

المتحكّم يقرّر، لكن طرفه ضعيف: يعطي بضعة مليأمبيرات بجهد 5 V. المصباح، شريط الإضاءة، المضخّة والسخّان تحتاج إلى أمبيرات، وأحيانا إلى جهد 12 V أو إلى جهد الشبكة 230 V. في هذا الفصل نتعلّم كيف يشغّل الطرف الصغير حملا كبيرا بأمان: بالترانزستور كمفتاح، بترانزستور MOSFET، بالمرحّل وبمرحّل الحالة الصلبة. نتعلّم أيّ مفتاح نختار لكل حمل وكيف نوصله، ونكتب البرنامج الذي يقود كل دائرة.

في نهاية هذا الفصل سنعرف أن:
  • طرف المتحكّم له حدود تيار، ونحسب هل يستطيع أن يشغّل حملا مباشرة، مثل ليد مع مقاومة.
  • نشغّل حملا بترانزستور NPN كمفتاح، ونعرف دور مقاومة القاعدة وكيف نوصل الحمل.
  • نختار ترانزستور MOSFET بمستوى منطقي للأحمال الكبيرة، ونفهم لماذا لا يكاد يسخن.
  • نخفّت شريط LED بتعديل عرض النبضة ونحسب نسبة التشغيل.
  • نشغّل مرحّلا عبر ترانزستور مع ديود الحماية، ونفهم لماذا لا نستغني عنه.
  • نصف مبدأ مرحّل الحالة الصلبة ونقارن بين أنواع المفاتيح.

מדוע הדק אינו מפעיל עומס ישירות – لماذا لا يشغّل الطرف الحمل مباشرة؟ (Pin Current Limits)

الحمل (עומס): هو العنصر الذي يستهلك القدرة في الدائرة ويؤدّي العمل المطلوب: مصباح، ملف مرحّل، محرّك، سخّان. المشغّل الذي يتحكّم فيه المتحكّم هو حمل بالنسبة لطرف المخرج.

طرف المخرج في المتحكّم هو مفتاح إلكتروني صغير داخل الشريحة: يصل الطرف بجهد 5 V عند HIGH وبالأرضي عند LOW. هذا المفتاح مبني لتيارات صغيرة. ورقة بيانات المتحكّم ATmega328P في لوحة Uno تحدّد قيما قصوى مطلقة (ערכים מרביים מוחלטים)، وتجاوزها يتلف الشريحة:

المقدارالقيمةمعناها
تيار طرف واحد — موصى به20 mAنصمّم دائما تحت هذه القيمة
تيار طرف واحد — حدّ أقصى مطلق40 mAلا نقترب منه أبدا
مجموع تيارات كل الأطراف (عبر VCC و GND)200 mAلا يُوزَّع على طرف واحد
قيمة نموذجية حسب ورقة البيانات: القيم حسب ورقة بيانات ATmega328P ووثائق Arduino. كلما كبر تيار الطرف هبط جهده عن 5 V ، ولذلك الطرف ليس مصدر جهد مثاليا.

مصباح 12 V يحتاج إلى جهد لا يعطيه الطرف، وملف مرحّل صغير يسحب نحو 71 mA (نحسبه لاحقا)، أي أكثر من الحد الأقصى المطلق. الحل دائما واحد: الطرف يعطي إشارة تحكّم صغيرة فقط، ودائرة القيادة (מעגל הנעה, דרייבר) تفتح وتغلق تيار الحمل الكبير، والحمل يأخذ تياره من مصدر منفصل:

المتحكّمArduino Unoدائرة القيادةترانزستور · MOSFET · مرحّلالحملمصباح · شريط · مضخّة5 VAمصدر الحمل12 V · 24 V · 230 V~أرضي مشترك (GND)بضعة mAمفتاح إلكتروني
الطرف يعطي إشارة بضعة مليأمبيرات؛ دائرة القيادة تمرّر تيار الحمل من مصدره. الأرضي مشترك للجميع
تحذير: عندما يعمل الحمل من مصدر آخر (مثل 12 V) نصل أرضي المصدر بأرضي المتحكّم. بدون أرضي مشترك لا يوجد مسار لتيار التحكّم، والدائرة لا تعمل أو تعمل بشكل عشوائي. ولكن لا نصل أبدا 12 V بطرف 5V في اللوحة.

الليد مع مقاومة على التوالي – נורית LED עם נגד טורי:

الليد (נורית LED) حمل صغير يستطيع الطرف تشغيله مباشرة، بشرط أن نحدّ تياره بمقاومة على التوالي. على الليد المضاء يبقى جهد شبه ثابت يسمى جهد الأمام VF (מתח קדמי)، والباقي VCC − VF يقع على المقاومة. لتيار مطلوب IF تكون مقاومة التوالي:

R = VCC − VFIF
مثال 10.1
نشغّل ثلاثة ليدات، أحمر وأخضر وأزرق، من الأطراف D2 ، D3 و D4 بتيار IF = 10 mA لكل واحد. جهود الأمام: أحمر 2 V ، أخضر 2.2 V ، أزرق 3.3 V (قيمة نموذجية حسب ورقة البيانات عند 20 mA). نحسب المقاومات ونختار قيما قياسية.
الحل:

للأحمر:

R = VCC − VFIF = 5 − 20.01 = 300 Ω

نختار القيمة القياسية الأكبر التالية من سلسلة E12، فيكون التيار أصغر قليلا من المطلوب ولا يتجاوزه. هكذا نحسب الثلاثة:

الليدVFR المحسوبةR القياسيةIF الفعلي
أحمر2 V300 Ω330 Ω9.1 mA
أخضر2.2 V280 Ω330 Ω8.5 mA
أزرق3.3 V170 Ω180 Ω9.4 mA

مجموع التيارات إذا أضاءت الثلاثة معا 27 mA ، وهو بعيد عن حدّ 200 mA الكلّي.

R = 330 Ω ، 330 Ω ، 180 Ω
Arduino UnoD2D3D4GND330 Ωأحمر330 Ωأخضر180 Ωأزرقالكاثودات إلى GND
ثلاثة ليدات على الأطراف D2 ، D3 و D4 ، كل واحد مع مقاومته
سؤال 10.1: نريد أن يمرّ في الليد الأزرق (VF = 3.3 V) تيار 5 mA فقط. ما المقاومة المحسوبة، وما القيمة القياسية التي نختارها من E12؟
خطأ شائع: ليد بدون مقاومة على طرف المتحكّم: جهد الأمام أصغر من 5 V ، فيصعد التيار حتى حدود الطرف نفسه. قد يحترق الليد، وقد يتلف الطرف بصمت ويتوقف عن العمل لاحقا.

טרנזיסטור כמפסק – الترانزستور كمفتاح (BJT as a Switch)

الترانزستور كمفتاح (טרנזיסטור כמפסק): هو ترانزستور يعمل في حالتين فقط: القطع (קיטעון)، حين لا يمر تيار في القاعدة فلا يمر تيار في المجمع، فهو مفتاح مفتوح؛ والإشباع (רוויה)، حين يكفي تيار القاعدة ليمرّ كل تيار الحمل، فيهبط الجهد بين المجمع والباعث إلى VCE,sat صغير، وهو مفتاح مغلق.

في ترانزستور NPN نضع الحمل بين المصدر +12 V والمجمع (קולט)، ونصل الباعث (פולט) بالأرضي. هذا يسمى مفتاحا في الجهة المنخفضة (מיתוג בצד הנמוך): الترانزستور يقطع أو يصل طرف الحمل السفلي بالأرضي. الطرف يعطي تيارا صغيرا للقاعدة (בסיס) عبر مقاومة القاعدة RB (נגד בסיס). تيار قاعدة صغير يتحكّم في تيار مجمع أكبر منه بعشرات المرات، فيكفي الطرف أن يعطي بضعة مليأمبيرات.

كيف نختار ونوصل؟

سؤال 10.2: مصباح 12 V ، 1.8 W يعمل من الطرف D8 عبر الترانزستور 2N2222A. ما تيار المصباح؟ هل تكفي له مقاومة قاعدة 1 kΩ؟
▶تجربة حية — الترانزستور كمفتاحمختبر الترانزستور: نغيّر مقاومة القاعدة ونرى متى يدخل الترانزستور الإشباع وكم يهبط VCE.
⚠
المختبر غير متاح الآن. المادة في هذا الفصل كاملة من دونه — نواصل القراءة، ونعود إلى التجربة لاحقا أو نفتحها مباشرة من الرابط الذي تحت الإطار.
https://fahed-lab.com/transistor-lab/
نفتح المختبر في صفحة مستقلة ↗ fahed-lab.com/transistor-lab/
Arduino Uno5VA0D8GNDLDR10 kΩ1 kΩRB+−12 Vمصباح12 V · 1.8 WQ12N2222Aأرضي مشترك
مصباح ليلي: مُجزِّء جهد مع مقاومة ضوئية على A0 ، والطرف D8 يقود الترانزستور Q1 عبر RB = 1 kΩ. المصباح بين +12 V والمجمع، والأرضي مشترك

نجعل الدائرة نظام تحكّم كاملا: المقاومة الضوئية تقيس الضوء، والمتحكّم يشعل المصباح عند الظلام. في الظلام تكبر مقاومة المقاومة الضوئية فتنخفض القيمة الخام على A0. نستعمل عتبتين: نشعل تحت 300 ونطفئ فوق 400. الفرق بينهما تخلّف (היסטרזיס) يمنع المصباح من الرمش عندما يتذبذب الضوء حول عتبة واحدة.

مصباح ليلي بعتبتين Arduino Uno · npn_night_lamp.ino
const int LDR_PIN = A0;
const int LAMP = 8;            // to R_B -> base of Q1
const int ON_LEVEL = 300;      // darker than this -> lamp ON
const int OFF_LEVEL = 400;     // brighter than this -> lamp OFF
bool lampOn = false;

void setup() {
  Serial.begin(9600);
  pinMode(LAMP, OUTPUT);
}

void loop() {
  int raw = analogRead(LDR_PIN);
  if (!lampOn && raw < ON_LEVEL) lampOn = true;
  if (lampOn && raw > OFF_LEVEL) lampOn = false;
  digitalWrite(LAMP, lampOn ? HIGH : LOW);
  Serial.print("raw = "); Serial.print(raw);
  Serial.print("  lamp: "); Serial.println(lampOn ? "ON" : "OFF");
  delay(500);
}
Serial Monitor · قراءة نموذجية
raw = 450  lamp: OFF
raw = 350  lamp: OFF
raw = 290  lamp: ON
raw = 250  lamp: ON
raw = 330  lamp: ON
raw = 380  lamp: ON
raw = 420  lamp: OFF

في القراءتين 330 و 380 بقي المصباح مضاء، لأن القيمة لم تتجاوز 400 بعد: هذا هو التخلّف.

خطأ شائع: نصل القاعدة بالطرف مباشرة، بدون RB: وصلة القاعدة-الباعث تتصرّف مثل ديود، فيمرّ تيار كبير يتلف الطرف أو الترانزستور. ونضع الحمل دائما في جهة المجمع: إذا وضعناه في جهة الباعث لا يصل الترانزستور إلى الإشباع، فيضعف الحمل ويسخن الترانزستور.

MOSFET ברמה לוגית כמפסק – ترانزستور MOSFET بمستوى منطقي (Logic-Level MOSFET)

الترانزستور 2N2222A ممتاز حتى بضع مئات المليأمبيرات. لشريط LED يسحب أمبيرين أو لمضخّة نحتاج إلى مفتاح آخر: ترانزستور MOSFET من نوع N. أطرافه: البوابة G (שער)، المصرف D (מרזב) والمنبع S (מקור). البوابة معزولة، فلا يمر فيها تيار ثابت: الترانزستور يُقاد بالجهد VGS وليس بالتيار.

ترانزستور MOSFET بمستوى منطقي (MOSFET ברמה לוגית): هو MOSFET تضمن ورقة بياناته مقاومة توصيل صغيرة عند جهد بوابة بين 4.5 V و 5 V ، أي عند المستوى المنطقي لطرف المتحكّم. جهد العتبة VGS,th (מתח סף) هو الجهد الذي يبدأ عنده مرور تيار صغير فقط؛ ومقاومة التوصيل RDS,on (התנגדות בהולכה) هي مقاومة المسار D–S عندما يكون الترانزستور موصلا تماما.
VGS,thRDS,on (VGS = 10 V)RDS,on (5 V)RDS,on (4 V)لطرف 5 V؟
IRLZ44N1…2 V22 mΩ25 mΩ35 mΩنعم
IRF540N2…4 V44 mΩغير مضمونةغير مضمونةلا
قيمة نموذجية حسب ورقة البيانات: القيم القصوى لـ RDS,on عند 25 °C حسب ورقة البيانات. لا نختار الترانزستور حسب VGS,th: عنده بالكاد يبدأ التوصيل.

لماذا لا يكاد يسخن؟ لأن مقاومة توصيله صغيرة جدا. شريط LED مكتوب عليه 12 V ، 24 W يسحب 2 A. مع IRLZ44N عند VGS = 5 V (25 mΩ) يتحوّل في الترانزستور نحو 0.1 W فقط إلى حرارة، فلا يحتاج إلى مشتّت حراري. أما 2N2222A فلا يصلح هنا أصلا، لأن أكبر تيار مجمع مسموح له 600 mA.

خطأ شائع: ترانزستور MOSFET عادي مثل IRF540N من طرف 5 V: يبدأ بالتوصيل لكنه لا يصل إلى RDS,on الصغيرة، فيسخن جدا مع تيار كبير. ومع ESP32 ، الذي يعطي 3.3 V فقط، نفحص في ورقة البيانات أن RDS,on مضمونة عند هذا الجهد.

مقاومة البوابة ومقاومة الخفض – נגד שער ונגד משיכה למטה:

البوابة تتصرّف مثل مكثّف صغير، يشحنه الطرف عند كل تبديل بتيار لحظي. مقاومة البوابة RG (بين 150 Ω و 220 Ω) تحدّ هذا التيار. ومقاومة الخفض Rpd (نحو 10 kΩ) بين البوابة والأرضي تُبقي البوابة عند 0 V حين يكون الطرف طافيا، عند تشغيل اللوحة أو أثناء رفع البرنامج، فيبقى الحمل مطفأ. مقاومة الخفض أكبر بكثير من مقاومة البوابة، فعند HIGH تبقى البوابة قريبة جدا من 5 V.

تعديل عرض النبضة: تخفيت الشريط – אפנון רוחב פולס: עמעום:

تعديل عرض النبضة (אפנון רוחב פולס, PWM): هو تشغيل وإطفاء الحمل بسرعة وبتردّد ثابت، مع تغيير زمن التشغيل داخل كل دورة. نسبة التشغيل D (מחזור עבודה) هي الجزء من الدورة الذي يكون فيه المخرج HIGH. العين لا ترى الرمش السريع، وترى إضاءة متوسطة تتناسب مع D.
T2T3T5 VtVV25%
نسبة تشغيل 25%: الجهد المتوسط ربع 5 V
T2T3T5 VtVV75%
نسبة تشغيل 75%: الجهد المتوسط ثلاثة أرباع
نسبة التشغيل في Arduino · מחזור עבודה
D = tonT = N255
Pavg = D·P
الرمزالمعنىوحدة القياس
Dنسبة التشغيل (تُكتب أيضا بالنسبة المئوية)—
ton , Tزمن التشغيل وزمن الدورة[s]
Nالقيمة في analogWrite(pin, N) ، من 0 إلى 255—
Pavg , Pمتوسط قدرة الحمل، وقدرته عندما يعمل دائما[W]
سؤال 10.3: أي قيمة N نكتبها في analogWrite ليأخذ الشريط 6 W في المتوسط من 24 W؟

في Uno يعمل analogWrite() فقط على الأطراف المعلَّمة بالرمز ~ : 3، 5، 6، 9، 10، 11. التردّد نحو 490 Hz في الأطراف 3، 9، 10، 11 ونحو 980 Hz في 5 و 6 (حسب وثائق Arduino). نقود الشريط من D9، ونقرأ مقاومة متغيّرة على A0 لنختار الإضاءة:

Arduino Uno5VA0GNDD9GND10 kΩ220 Ω10 kΩDSGشريطLED 12 V · 24 W+−12 Vأرضي مشترك
الطرف D9 يقود بوابة IRLZ44N عبر RG = 220 Ω ، ومعها مقاومة خفض 10 kΩ. الشريط بين +12 V والمصرف، والمقاومة المتغيّرة على A0
تخفيت الشريط بتعديل عرض النبضة Arduino Uno · mosfet_pwm_strip.ino
const int POT = A0;
const int STRIP = 9;           // PWM pin (~490 Hz) -> gate resistor

void setup() {
  Serial.begin(9600);
  pinMode(STRIP, OUTPUT);
}

void loop() {
  int raw = analogRead(POT);             // 0..1023
  int pwm = raw / 4;                     // 0..255
  analogWrite(STRIP, pwm);
  float duty = pwm * 100.0 / 255.0;      // [%]
  Serial.print("raw = "); Serial.print(raw);
  Serial.print("  pwm = "); Serial.print(pwm);
  Serial.print("  duty = "); Serial.print(duty, 1); Serial.println(" %");
  delay(300);
}
Serial Monitor · قراءة نموذجية
raw = 0  pwm = 0  duty = 0.0 %
raw = 256  pwm = 64  duty = 25.1 %
raw = 512  pwm = 128  duty = 50.2 %
raw = 768  pwm = 192  duty = 75.3 %
raw = 1023  pwm = 255  duty = 100.0 %
مثال 10.2
القيمة الخام على A0 هي 512. نحسب القيمة N ، نسبة التشغيل، زمن التشغيل في الدورة ومتوسط قدرة الشريط 24 W.
الحل:
N = 5124 = 128
D = N255 = 128255 = 0.502 = 50.2 %
ton = D·T = D·1490 Hz = 0.502 · 2.04 ms = 1.02 ms
Pavg = D·P = 0.502 · 24 = 12 W
D = 50.2 % ، Pavg = 12 W

ממסר – المرحّل (Electromechanical Relay)

المرحّل (ממסר): هو مفتاح كهرومغناطيسي: تيار في الملف (סליל) يصنع مجالا مغناطيسيا يجذب ذراعا حديدية، فتنتقل الملامسات (מגעים) من وضع إلى آخر. دائرة الملف ودائرة الملامسات منفصلتان كهربائيا تماما، ولذلك يتحكّم جهد 5 V في حمل 12 V أو حتى 230 V. يسمى أيضا «الريليه».
NONCCOMA1A2الملفالملامسات
الملامسالملف بدون تيارالملف مع تيار
NOمفتوح عن COMموصول بـ COM
NCموصول بـ COMمفتوح عن COM

COM هو الملامس المشترك (משותף)، و NO هو الملامس المفتوح في الراحة (מגע פתוח במנוחה)، و NC هو الملامس المغلق في الراحة (מגע סגור במנוחה). نصل الحمل عادة بين COM و NO ، فيعمل الحمل فقط عندما يعمل الملف. ولحساب تيار الملف وقدرته نستعمل قانون أوم وقانون القدرة مع الجهد الاسمي للملف Vcoil ومقاومته Rcoil:

Icoil = VcoilRcoil
Pcoil = Vcoil2Rcoil
مثال 10.3
المرحّل SRD-05VDC-SL-C ، الموجود في وحدات مرحّل كثيرة، ملفه 5 V ومقاومته 70 Ω (قيمة نموذجية حسب ورقة البيانات).
(أ) نحسب تيار الملف وقدرته.
(ب) هل يستطيع الطرف تشغيله مباشرة؟
الحل:
Icoil = 570 = 71.4 mA
Pcoil = 5270 = 0.36 W

(ب) لا: 71.4 mA أكبر من الحد الأقصى المطلق للطرف 40 mA. لذلك نشغّله من الطرف D7 عبر الترانزستور 2N2222A مع مقاومة قاعدة 1 kΩ كما في البند 10.2 ، أو نستعمل وحدة مرحّل جاهزة.

Icoil = 71.4 mA

تصنيف الملامسات (דירוג מגעים): ملامسات المرحّل SRD-05VDC-SL-C مصنّفة 10 A عند 250 V متناوب و 10 A عند 30 V مستمر (قيمة نموذجية حسب ورقة البيانات). الجهد المستمر المسموح أصغر، لأن قوس التيار المستمر لا ينطفئ وحده. ووحدة المرحّل كلها قد تكون مصنّفة لقيم أصغر: نقرأ ورقة بيانات الوحدة.

ديود الحماية – דיודת חופש:

الملف حمل حثّي: يختزن طاقة في مجاله المغناطيسي، ويعارض كل تغيّر مفاجئ في تياره. عندما يفتح الترانزستور، يحاول الملف أن يُبقي التيار يمرّ، فيرفع جهد المجمع قفزة جهد (קוץ מתח השראתי) أكبر بكثير من جهد التغذية، وقد تخترق الترانزستور. ديود الحماية (דיודת חופש) الموصول على الملف بالعكس يفتح مسارا لهذا التيار، فيدور في الملف والديود حتى يتلاشى، ولا يرتفع جهد المجمع فوق VCC + 0.7 V = 5.7 V.

Arduino UnoD7GND1 kΩNONCCOM5VD11N4007K1Q1+−12 Vالحملدائرة الحمل منفصلة عن دائرة الملف
الطرف D7 يقود Q1 (2N2222A) عبر RB = 1 kΩ ، و Q1 يشغّل الملف K1. الديود D1 على الملف، والكاثود إلى +5 V. الملامسان COM و NO يشغّلان حملا 12 V في دائرة منفصلة
OFFVCCtVCEقفزة جهد كبيرة
بدون ديود: قفزة جهد كبيرة على المجمع لحظة الإطفاء
OFFVCCtVCEVCC + 0.7 V
مع ديود الحماية: الجهد لا يتجاوز VCC + 0.7 V
تحذير: ديود الحماية على كل ملف: مرحّل، صمّام كهرومغناطيسي، محرّك. نصله بالعكس: الكاثود (الخط) إلى جهة +. إذا وُصل بالاتجاه الخاطئ يصنع قصرا على المصدر عند تشغيل الترانزستور.

وحدة المرحّل الجاهزة – מודול ממסר מוכן:

في المختبر نستعمل غالبا وحدة مرحّل فيها المرحّل، الترانزستور، ديود الحماية ومصباح بيان، وأحيانا مقرن ضوئي، مع أطراف تحكّم VCC ، GND و IN وأطراف ملامسات NO ، COM و NC. في وحدات كثيرة المدخل IN فعّال عند LOW: المرحّل يعمل عندما نكتب LOW. هذا ليس قاعدة: نفحص الوحدة بدون حمل قبل أن نوصل شيئا بالملامسات.

Arduino UnoD25VGNDD7RELAYVCCGNDINNOCOMNC+−12 VالحملINPUT_PULLUPIN: LOW = ONفي وحدات كثيرة — نفحص الوحدة
زرّ على D2 مع مقاومة الرفع الداخلية، ووحدة مرحّل على 5V ، GND و D7. الحمل 12 V بين COM و NO

البرنامج يبدّل حالة المرحّل عند كل ضغطة. التبديل يجب أن يحدث مرة واحدة لكل ضغطة، ولذلك نزيل ارتداد التلامس بالانتظار حتى تبقى قراءة الزرّ ثابتة 50 ms ، بواسطة millis() وبدون delay(). ونكتب مستوى «مطفأ» على الطرف قبل أن نجعله مخرجا، فلا يعمل المرحّل لحظة عند التشغيل.

تبديل مرحّل بزرّ مع إزالة الارتداد Arduino Uno · relay_button_toggle.ino
const int BUTTON = 2, RELAY = 7;
const int RELAY_ON = LOW, RELAY_OFF = HIGH;   // active-LOW module: check yours!
const unsigned long DEBOUNCE_MS = 50;
bool relayOn = false;
int lastReading = HIGH, stableState = HIGH, presses = 0;
unsigned long lastChange = 0;

void setup() {
  Serial.begin(9600);
  pinMode(BUTTON, INPUT_PULLUP);
  digitalWrite(RELAY, RELAY_OFF);     // set the level before enabling output
  pinMode(RELAY, OUTPUT);
}

void loop() {
  int reading = digitalRead(BUTTON);
  if (reading != lastReading) lastChange = millis();
  lastReading = reading;
  if (millis() - lastChange < DEBOUNCE_MS || reading == stableState) return;
  stableState = reading;
  if (stableState == HIGH) return;    // act on press only
  relayOn = !relayOn;
  presses++;
  digitalWrite(RELAY, relayOn ? RELAY_ON : RELAY_OFF);
  Serial.print("press "); Serial.print(presses);
  Serial.print("  relay: "); Serial.println(relayOn ? "ON" : "OFF");
}
Serial Monitor · قراءة نموذجية
press 1  relay: ON
press 2  relay: OFF
press 3  relay: ON
press 4  relay: OFF
▶تجربة حية — مختبر كود Arduinoنكتب برنامج التبديل في المحاكاة ونرى حالة المخرج تتغيّر مع كل ضغطة، قبل أن نوصل مرحّلا حقيقيا.
⚠
المختبر غير متاح الآن. المادة في هذا الفصل كاملة من دونه — نواصل القراءة، ونعود إلى التجربة لاحقا أو نفتحها مباشرة من الرابط الذي تحت الإطار.
https://fahed-lab.com/micro/arduino_code_lab
نفتح المختبر في صفحة مستقلة ↗ fahed-lab.com/micro/arduino_code_lab
سؤال 10.4: مرحّل SRD-12VDC ملفه 12 V ومقاومته 400 Ω (قيمة نموذجية حسب ورقة البيانات).
(أ) نحسب تيار الملف وقدرته.
(ب) هل يجوز تشغيله مباشرة من طرف Uno؟
تحذير: جهد الشبكة 230 V قاتل. لا نوصله بمرحّل على لوحة تجارب أبدا، ولا بأسلاك مكشوفة. حمل 230 V يُشغَّل فقط عبر وحدة مصنّفة ومعتمدة داخل علبة مغلقة، وتحت إشراف المعلّم. في مختبر المدرسة نجرّب كل الدوائر بحمل 12 V.

ממסר מצב מוצק – مرحّل الحالة الصلبة (Solid-State Relay, SSR)

مرحّل الحالة الصلبة (ממסר מצב מוצק): هو مفتاح إلكتروني بدون أجزاء متحرّكة يعمل مثل المرحّل: مدخل تحكّم صغير معزول عن مخرج يشغّل الحمل. في المدخل ليد، وفي المخرج عنصر شبه موصل يقود التيار المتناوب (ترياك أو ترانزستوران). يسمى أيضا SSR.
Arduino UnoD7GNDمرحّل الحالة الصلبة+−ZCالمرور بالصفرعزل ضوئي230 V~الحملجهد الشبكة: خطر
مبدأ مرحّل الحالة الصلبة للتيار المتناوب: الليد في المدخل، كاشف المرور بالصفر (ZC)، والعنصر الذي يقود الحمل في المخرج
مثال 10.4
سخّان 1000 W على 230 V يُشغَّل بمرحّل حالة صلبة. نفرض أن هبوط الجهد على مخرجه وهو موصل 1.6 V (القيمة الحقيقية نقرأها في ورقة بيانات المرحّل). نحسب القدرة التي تتحوّل إلى حرارة في المرحّل.
الحل:
I = PV = 1000230 = 4.35 A
PSSR = Von·I = 1.6 · 4.35 = 7 W

حوالي 7 W من الحرارة في علبة صغيرة: نركّب المرحّل على مشتّت حراري حسب تعليمات الصانع. المرحّل الكهرومغناطيسي، بالمقابل، لا يكاد يسخن في ملامساته.

PSSR = 7 W
سؤال 10.5: لماذا لا يصلح مرحّل حالة صلبة للتيار المتناوب، مبني على ترياك، لقطع حمل تيار مستمر؟
تحذير: أرقام «25 A» المكتوبة على مرحّلات الحالة الصلبة الرخيصة تفترض مشتّتا حراريا كبيرا، وبعض القطع في الأسواق مقلّدة. مرحّل 230 V يركّبه صاحب الاختصاص في علبة مغلقة ومعتمدة، وتحت إشراف المعلّم.

השוואה ובחירת המפסק – مقارنة واختيار المفتاح (Choosing a Switch)

ترانزستور NPNMOSFETالمرحّلمرحّل الحالة الصلبة
الأحمالمستمر، مئات mAمستمر، أمبيراتمستمر ومتناوبمتناوب
العزللالانعمنعم: ضوئي
تعديل عرض النبضةنعمنعم، ممتازلالا (المرور بالصفر)
الضياع في المفتاحصغير في الإشباعصغير جداالملف يستهلكهبوط جهد: مشتّت
اهتراء وصوتلالانعم: نقرةلا
من الطرفمقاومة قاعدةمقاومة بوابة ومقاومة خفضترانزستور وديودغالبا مباشرة

القاعدة العملية: حمل تيار مستمر صغير: ترانزستور NPN. حمل تيار مستمر كبير أو تخفيت: MOSFET بمستوى منطقي، ومعه ديود حماية إذا كان الحمل حثّيا. حمل تيار متناوب يُبدَّل أحيانا أو يحتاج إلى عزل تامّ: المرحّل. حمل تيار متناوب يُبدَّل كثيرا: مرحّل الحالة الصلبة، لأنه لا يهترئ.

سؤال 10.6: نختار المفتاح المناسب لكل حمل:
(أ) شريط LED 12 V مع تخفيت.
(ب) سخّان ماء 230 V يعمل بتحكّم تشغيل-إيقاف ويُبدَّل كل بضع ثوانٍ.
(ج) طنّان 12 V يسحب 30 mA.

ملخّص قوانين الفصل:

القانونالصيغة
مقاومة التوالي لليدR = VCC − VFIF
نسبة التشغيلD = tonT = N255
متوسط القدرة مع تعديل عرض النبضةPavg = D·P
تيار الملف وقدرتهIcoil = VcoilRcoil , Pcoil = Vcoil2Rcoil

قاموس المصطلحات – מילון מונחים:

بالعربيةبالعبرية (كما تظهر في الامتحان)English
الحملעומסLoad
الحد الأقصى المطلقערך מרבי מוחלטAbsolute maximum rating
دائرة القيادةמעגל הנעה (דרייבר)Driver
الأرضي المشتركאדמה משותפתCommon ground
جهد الأمامמתח קדמיForward voltage
مقاومة على التواليנגד טוריSeries resistor
الترانزستور كمفتاحטרנזיסטור כמפסקTransistor switch
القطع · الإشباعקיטעון · רוויהCut-off · Saturation
القاعدة · المجمع · الباعثבסיס · קולט · פולטBase · Collector · Emitter
مقاومة القاعدةנגד בסיסBase resistor
مفتاح في الجهة المنخفضةמיתוג בצד הנמוךLow-side switch
ترانزستور MOSFET بمستوى منطقيMOSFET ברמה לוגיתLogic-level MOSFET
البوابة · المصرف · المنبعשער · מרזב · מקורGate · Drain · Source
جهد العتبةמתח סףThreshold voltage
مقاومة التوصيلהתנגדות בהולכהOn-resistance
المشتّت الحراريגוף קירורHeat sink
تعديل عرض النبضة · نسبة التشغيلאפנון רוחב פולס · מחזור עבודהPWM · Duty cycle
المرحّل (الريليه)ממסרRelay
الملف · الملامساتסליל · מגעיםCoil · Contacts
مفتوح في الراحة · مغلق في الراحةמגע פתוח במנוחה · מגע סגור במנוחהNormally open · Normally closed
تصنيف الملامساتדירוג מגעיםContact rating
ديود الحماية (ديود العجلة الحرّة)דיודת חופשFlyback diode
قفزة الجهدקוץ מתח השראתיInductive kick
مرحّل الحالة الصلبة (SSR)ממסר מצב מוצקSolid-state relay
العزل الضوئيבידוד אופטיOptical isolation
التشغيل عند المرور بالصفرמיתוג במעבר אפסZero-cross switching
تيار التسرّبזרם זליגהLeakage current

أسئلة للتمرين:

1.
ثمانية ليدات، كل واحد على طرف منفصل في Uno ، يسحب كل واحد 15 mA.
(أ) هل تيار كل طرف ضمن الموصى به؟
(ب) ما مجموع التيار، وهل هو ضمن الحد الكلّي؟
الإجابات: (أ) نعم، 15 mA < 20 mA (ب) 120 mA < 200 mA ، ضمن الحد
2.
ليد أصفر جهد أمامه 2.1 V (قيمة نموذجية). نحسب مقاومة التوالي لتيار 10 mA من طرف 5 V ، نختار قيمة قياسية من E12 (الأكبر التالية) ونحسب التيار الفعلي.
الإجابات: R = 290 Ω ، نختار 330 Ω ، IF = 8.8 mA
3.
ملف مرحّل جهده الاسمي 24 V ومقاومته 1440 Ω. نحسب تيار الملف وقدرته.
الإجابات: I = 16.7 mA ، P = 0.4 W
4.
طالب وصل قاعدة الترانزستور بالطرف D8 مباشرة، بدون مقاومة. ماذا يحدث، وكيف نصلح الدائرة؟
الإجابات: يمرّ من الطرف تيار كبير عبر وصلة القاعدة-الباعث، فيتلف الطرف أو الترانزستور. نضع بينهما مقاومة قاعدة، نحو 1 kΩ
5.
لماذا نختار IRLZ44N وليس IRF540N لتشغيل شريط LED من طرف 5 V؟ ولماذا نضع مقاومة 10 kΩ بين البوابة والأرضي؟
الإجابات: IRLZ44N بمستوى منطقي: مقاومة توصيله صغيرة ومضمونة عند 5 V ، أما IRF540N فيوصل جزئيا ويسخن. مقاومة الخفض تُبقي البوابة عند 0 V والحمل مطفأ عندما يكون الطرف طافيا
6.
نكتب analogWrite(9, 191) لشريط 24 W. نحسب نسبة التشغيل، متوسط القدرة وزمن التشغيل في الدورة عند 490 Hz.
الإجابات: D = 74.9 % ، Pavg = 18 W ، ton = 1.53 ms
7.
نريد نسبة تشغيل 40 %. أي قيمة نكتب في analogWrite؟ وأي قيمة خام على A0 تعطيها في البرنامج mosfet_pwm_strip؟
الإجابات: N = 102 ، القيمة الخام من 408 إلى 411
8.
ملامسات مرحّل مصنّفة 10 A عند 250 V متناوب. هل تصلح نظريا لسخّان 2000 W؟ ولسخّان 3000 W؟ (الجهد 230 V).
الإجابات: 8.7 A: نعم · 13 A: لا
9.
سخّان 1500 W ، 230 V يُشغَّل بمرحّل حالة صلبة هبوط الجهد عليه 1.6 V. نحسب التيار والقدرة الضائعة في المرحّل.
الإجابات: I = 6.52 A ، P = 10.4 W
10.
نشرح بالكلمات: ماذا يحدث للترانزستور الذي يشغّل ملف مرحّل بدون ديود حماية، لحظة الإطفاء؟ ونرسم كيف نصل الديود.
الإجابات: الملف يرفع جهد المجمع قفزة كبيرة قد تخترق الترانزستور. الديود على الملف بالعكس: الكاثود إلى +VCC والأنود إلى المجمع
11.
في البرنامج relay_button_toggle استبدلنا الوحدة بوحدة فعّالة عند HIGH. أي سطر نغيّر وكيف؟ ولماذا نكتب digitalWrite قبل pinMode في setup()؟
الإجابات: السطر الثاني: RELAY_ON = HIGH و RELAY_OFF = LOW. لكي يخرج الطرف من البداية بمستوى «مطفأ» ولا يعمل المرحّل لحظة
الإجابات النهائية لأسئلة الفصل
10.1 R = 340 Ω ، نختار 390 Ω
10.2 I = PV = 150 mA ؛ نعم، فالحمل لا يتجاوز نحو 150 mA
10.3 D = 25 % ، N = 63.75 ≈ 64
10.4 (أ) I = 30 mA ، P = 0.36 W (ب) لا: الطرف يعطي 5 V فقط، والتيار أيضا أكبر من الموصى به
10.5 الترياك ينطفئ فقط عندما يصل تياره إلى الصفر؛ في التيار المستمر لا يحدث ذلك، فيبقى الحمل يعمل
10.6 (أ) MOSFET بمستوى منطقي (ب) مرحّل حالة صلبة مع مشتّت حراري، في علبة معتمدة (ج) ترانزستور NPN
لوحة القوانين: كل قوانين هذا الفصل مجموعة مع رسومها وجداول رموزها في الفصل 15 — لوحة القوانين الشاملة. (נוסחאון הספר)