RisalDash RisalDash

دليل · العتاد · المستويات

3.3V ↔ 5V: كيف لا تحرق ESP32

نصف الحسّاسات والوحدات في عالم Arduino يعمل على 5 فولت. أما ESP32 وESP8266 ومعظم الرقائق الحديثة فتعمل على 3.3 فولت. أوصِل خرج 5 فولت مباشرة إلى طرف 3.3 فولت، وقد تتلفه في الحال. نشرح لماذا لا يتوافقان، ومتى يمكنك الاستغناء عن المواءم، وثلاث طرق نظيفة للربط بينهما.

مواءمة المستويات3.3V / 5VBSS138ESP32Arduinoالعتاد

هذا هو سؤال «كيف يُقرأ المستوى؟» من أساسيات النواقل وقد صار عمليًا إلى أقصى حد — وهو الطريقة الأكثر شيوعًا التي يقتل بها المبتدئون طرف ESP32.

لماذا لا يعمل 3.3 فولت و5 فولت معًا ببساطة

مشكلتان منفصلتان، واحدة في كل اتجاه:

أولًا — هل تحتاج أصلًا إلى مواءم؟

تحقّق قبل إضافة القطع:

الطريقة 1 — مقسّم مقاومات (اتجاه واحد)

لخرج 5 فولت واحد يدخل إلى دخل 3.3 فولت — أي TX الحسّاس إلى RX الخاص بـ ESP32 — تكفيك مقاومتان:

5V TX ──[ R1 = 1kΩ ]──┬──> 3V3 RX (آمن)
                      │
                   [ R2 = 2kΩ ]
                      │
                     GND

Vout = 5V × R2 / (R1 + R2) = 5 × 2 / 33.3 V
// اتجاه واحد فقط (5V -> 3V3). لا تستخدمه على خط I²C SDA.
HC-SR04 موصّل بـ ESP32 مع مقسّم 1 كΩ / 2 كΩ على خط Echo بجهد 5 فولت لحماية دخل 3.3 فولت
المقسّم عمليًا: خفض إشارة Echo بجهد 5 فولت من HC-SR04 إلى 3.3 فولت آمنة — 1 كΩ على التوالي و2 كΩ إلى الأرض. مبنيّ في BoardLab.

رخيص وموثوق، لكنه باتجاه واحد فقط وبطيء بعض الشيء (المقاومة إضافةً إلى سعة السلك تُدوّر الحواف السريعة). لا تضعه أبدًا على خط ثنائي الاتجاه مثل I²C SDA.

الطريقة 2 — ترانزستور BSS138 من نوع MOSFET (ثنائي الاتجاه، الخيار المعتاد)

لوحة «logic level converter» الكلاسيكية ذات القنوات الأربع هي حفنة من ترانزستورات BSS138 من نوع MOSFET. تُبدّل كل قناة الاتجاهين معًا تلقائيًا، وهو ما يحتاجه I²C بالضبط (فكلا خطي SDA وSCL ثنائيا الاتجاه). صِل الجانب المرتفع بـ 5 فولت، والجانب المنخفض بـ 3.3 فولت، وشارك الأرضي، ومرّر إشاراتك عبرها. تكلّف بضعة دولارات وتحلّ 90% من الحالات.

الطريقة 3 — دوائر مواءمة مخصّصة (خطوط كثيرة/سريعة)

لناقل متوازٍ بعرض 8 بت أو لـ SPI سريع، استخدم دائرة متكاملة مصمّمة لهذا الغرض: TXS0108E (اتجاه تلقائي، ودودة مع open-drain) أو TXB0104 (push-pull، أسرع، ليست لـ I²C). تتعامل مع سرعات أعلى وقنوات أكثر بنظافة أكبر من مقسّم أو ترانزستور MOSFET مفرد.

مطبّات

قاعدة عامة: إشارة 5 فولت واحدة إلى الداخل ← مقسّم. ناقل ثنائي الاتجاه (I²C) ← لوحة BSS138. خطوط كثيرة أو سريعة ← دائرة مواءمة صحيحة. اضبطها مرة واحدة صحيحةً وتعش أطراف ESP32 لديك عمرًا طويلًا.

تصارع ناقل I²C صامتًا؟ عدم توافق المستويات أحد المشتبه بهم المعتادين.