المضاعف: كل ما تحتاج إلى معرفته

رقاقة المضاعف

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

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

ما هو معدد الإرسال؟

متعدد الإرسال

تسمى هذه الخدمات التوافقية معددات الإرسال فهي ليست معقدة في العادة. وهي تتكون من عدد قليل من البوابات المنطقية اعتمادًا على عدد مدخلات البيانات الخاصة بها ويمكن أن يزيد التحكم من التعقيد. عادة ما تشمل 2n المدخلات والمخرج الفردي ، وكذلك خطوط التحكم. ويمكن استخدام العديد منها معًا لزيادة هذا العدد من التذاكر المتاحة.

يمكن فهمه على أنه محدد. على سبيل المثال ، تخيل أن لديك مدخلاً بسيطًا للغاية به مدخلين ، أبسط ما يمكن بناؤه. ستحتوي هذه الدائرة على مدخلات ومخرجات تحكم واحدة. إذا كانت المدخلات A و B ، فمن الممكن مع إدخال التحكم التحكم في ما إذا كان A هو الذي يمرر قيمته إلى المخرج S أو إذا كان B هو من يفعل ذلك. للقيام بذلك ، عليك فقط تغيير قيمة خط التحكم C. على سبيل المثال ، إذا كانت C = 0 ستكون A ، وإذا كانت C = 1 ستكون B.

كما ستفهم ، إذا كان هناك المزيد من المدخلات ، فستكون هناك حاجة إلى المزيد مدخلات التحكم للاختيار. في الواقع ، المضاعف هو نوع خاص من مفكك التشفير ، مع إشارة تمكين لكل بوابة AND مضمنة وبوابة OR بين المخرج والبوابات AND. بهذه الطريقة يمكن اختيارها بسهولة.

أما بالنسبة لتطبيقاته فيمكنك استخدامه للعديد من الأشياء:

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

أنواع المضاعفات

اعتمادًا على طريقة تقسيم الإرسال ، هناك أنواع مختلفة معددات أو مضاعفة:

  • حسب تقسيم التردد
  • حسب تقسيم الوقت
  • حسب تقسيم الكود
  • حسب تقسيم الطول الموجي

كما يمكنك أن تتخيل ، يتم التحكم فيها بالتردد والوقت بالساعة والرمز الثنائي وطول الموجة. ولكن هنا أنا مهتم فقط بالأمور التقليدية ...

بالإضافة إلى الأنواع ، كما هو الحال مع مزيل تعدد الإرسال ، يمكنك العثور عليها قنوات أكثر أو أقل 2 ، 4 ، 8 ، 16 ، إلخ ، اعتمادًا على ما تحتاجه لمشاريع DIY الخاصة بك.

الاختلافات مع مزيل تعدد الإرسال

مزيل تعدد الإرسال

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

Si تقوم بتوصيل مزيل تعدد الإرسال بإخراج معدد الإرسال، يمكن أن يكون لديك نظام مفيد للغاية لتعلم كيفية عمل كلا الجهازين.

من أين أشتري؟

معدد الإرسال

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

أنصحك بالقراءة أوراق البيانات من الشركات المصنعة للحصول على فكرة واضحة عن pinout، لأنها قد تختلف حسب الشركة المصنعة أو النوع الذي اشتريته.

سد 74hc4067

بالإضافة إلى ذلك ، كما ترى ، هناك أيضًا وحدات جيدة جدًا تتيح لك الحصول على كلا الجهازين في جهاز واحد. هذا هو الحال من CD74HC4067 المعروف، وحدة صغيرة مزودة بتقنية TTL يمكنها مساعدتك على العمل مع 16 قالبًا عاديًا بطريقة ثنائية الاتجاه ، من خلال امتلاك MUX / DEMUX. وهذا يعني أنه يمكنك استخدامه كنوع من التبديل الذكي.

وبالتالي ، يمكن لـ Arduino قراءة وكتابة ما يصل إلى 16 أجهزة مختلفة مع 5 دبابيس فقط ، 4 منهم تستخدم للتحكم وواحد إضافي لتجميع الإشارة المراد قراءتها أو كتابتها وفقًا للقناة المحددة.

الشيء الجيد في هذه الشريحة هو ذلك يعمل مع كل من الإشارات الرقمية والتناظريةلذلك فهو متوافق مع العديد من المستشعرات التي تعمل على الرقائق التناظرية والرقمية الأخرى ، بالإضافة إلى العديد من العناصر الإلكترونية المختلفة. إنه يعطي براعة كبيرة. هذا هو السبب في أنها تُعرف أيضًا باسم موسعات الإدخال / الإخراج أو مضخمات الإدخال والإخراج ...

يمكنك حتى استخدامها من أجل الاتصالات عبر المنفذ التسلسلي, حافلة I2C أو SPI ، التي تحدثنا عنها بالفعل في مناسبات أخرى.

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

التكامل مع اردوينو

اردوينو مع بلوتوث

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

على سبيل المثال ، يمكنك استخدام ملف وحدة MUX و DEMUX لتكون قادرًا على الحصول على كليهما في عنصر واحد ، ثم دمجهما بطريقة بسيطة في مشروعك مع Arduino. باستخدام CD74HC4067 ، يمكنك توصيله بسهولة شديدة ، لذلك يجب اتباع هذه القواعد:

  • Vcc لشريحة MUX / DEMUX يجب توصيلها بـ Vcc من Arduino أو 5V.
  • GND ، الأرض ، يجب عليك توصيله بـ GND الخاص بـ Arduino.
  • المسامير التي تحمل علامة S0 و S1 و S2 و S3 هي تلك التي تتحكم في القناة النشطة ، مع أربعة منافذ إدخال / إخراج رقمية من Arduino ، مثل D8 و D9 و D10 و D11.
  • تم تمكين EN أيضًا ، بحيث يعمل كمُضاعف إرسال يمكنك توصيله بـ GND الخاص بـ Arduino.
  • و SIG هي إشارة الخرج التي ستحدد القناة المحددة. يمكن توصيله بـ Arduino أو بأي جهاز يحتاج إلى قراءة الإخراج. في هذه الحالة ، قمت بتوصيله بـ A0 للحصول على القيم من Arduino نفسه.
  • في الطرف الآخر من الوحدة ، سيكون لديك المدخلات في هذه الحالة ، وهي C0-C10 التي يمكنك توصيلها بأجهزتك.

بمجرد الاتصال ، يمكن أن يكون كود Arduino بسيطًا. ال رسم Arduino IDE كمضاعف يمكن أن يكون ما يلي (سيتم إيقاف تشغيل هذا الرمز وعلى قنواتهم فقط على التوالي ، ولكن يمكنك تعديله لإنشاء المشروع الذي تريده):

const int muxSIG = A0;
const int muxS0 = 8;
const int muxS1 = 9;
const int muxS2 = 10;
const int muxS3 = 11;
 
int SetMuxChannel(byte channel)
{
   digitalWrite(muxS0, bitRead(channel, 0));
   digitalWrite(muxS1, bitRead(channel, 1));
   digitalWrite(muxS2, bitRead(channel, 2));
   digitalWrite(muxS3, bitRead(channel, 3));
}
 
void setup()
{
   pinMode(muxSIG, OUTPUT);
   pinMode(muxS0, OUTPUT);
   pinMode(muxS1, OUTPUT);
   pinMode(muxS2, OUTPUT);
   pinMode(muxS3, OUTPUT);
}
 
void loop()
{
   for (byte i = 0; i < 16; i++)
   {
      SetMuxChannel(i);
      digitalWrite(muxSIG, HIGH);
      delay(200);
      digitalWrite(muxSIG, LOW);
      delay(200);
   }
}

إذا كنت ترغب في استخدامه كـ DEMUX ، فيجب أن تفكر فقط في أن C0-C10 ستكون المخرجات وستكون SIG هي المدخلات. في حال أردت استخدمه كمزيل تعدد، سيتغير الرمز على النحو التالي:

onst int muxSIG = A0;
const int muxS0 = 8;
const int muxS1 = 9;
const int muxS2 = 10;
const int muxS3 = 11;
 
int SetMuxChannel(byte channel)
{
   digitalWrite(muxS0, bitRead(channel, 0));
   digitalWrite(muxS1, bitRead(channel, 1));
   digitalWrite(muxS2, bitRead(channel, 2));
   digitalWrite(muxS3, bitRead(channel, 3));
}
 
void setup()
{
   Serial.begin(9600);
   pinMode(muxS0, OUTPUT);
   pinMode(muxS1, OUTPUT);
   pinMode(muxS2, OUTPUT);
   pinMode(muxS3, OUTPUT);
}
 
void loop()
{
   for (byte i = 0; i < 16; i++)
   {
      SetMuxChannel(i);
      byte muxValue = analogRead(muxSIG);
 
      Serial.print(muxValue);
      Serial.print("\t");
   }
   Serial.println();
   delay(1000);
}

تذكر أنه يمكنك الحصول على مزيد من المعلومات بمساعدة دورة برمجة اردوينو مجانية.


تعليق ، اترك لك

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   كزافييه أورتيز قال

    مرحبًا ، أنا أقوم بمشروع ، وهو الشيء الذي أفعله لاستخدام 74hc4067 لمدخلات 16 مستشعرًا للعائق بالأشعة تحت الحمراء ، وأن كل مستشعر يضيء مخرجًا مختلفًا بالنسبة لي. حسنًا ، إذا كان بإمكاني فعل ذلك باستخدام arduino mega لكنني بحاجة إلى استخدام 50 مستشعرًا للأشعة تحت الحمراء وأن كل واحد يقوم بتشغيل الإخراج ، أي 50 مخرجًا ، أفكر في استخدام عدة 744067 لمدخلات المستشعر و tlc5940 للمخرجات ، ولكن فيما يتعلق برمز البرمجة ، فقد فقدت بعض الشيء ، شكرًا مقدمًا على مساعدتك.