كيف يعمل 74HC595 Shift Register ومواجهته مع الاردوينو ؟ 2

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

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

هل سبق لك أن وجدت نفسك ترغب في التحكم في الكثير من أجهزة LED ؟ أو هل تحتاج فقط إلى مزيد من دبابيس I / O للتحكم في الأزرار وأجهزة الاستشعار والمضاعفات في وقت واحد ؟ حسنًا ، يمكنك توصيل بعض أجهزة استشعار دبابيس الاردوينو ، لكنك ستبدأ بسرعة في نفاد الدبابيس على الاردوينو الخاص بك .

الحل لهذا هو استخدام “مسجل التحول” . يسمح لك مسجل الإزاحة بتوسيع عدد دبابيس I / O التي يمكنك استخدامها من الاردوينو (أو أي متحكم لهذه المسألة). يعد مسجل التحول 74HC595 أحد أكثر السجلات شهرة بين الجميع .
يتحكم مسجل التحول 74HC595 بشكل أساسي في ثمانية دبابيس إخراج منفصلة ، وذلك باستخدام ثلاثة دبابيس إدخال فقط . وإذا كنت بحاجة إلى أكثر من 8 خطوط إدخال / إخراج إضافية ، فيمكنك إزالة سلسلة المفاتيح بسهولة كما تشاء وإنشاء الكثير من خطوط إدخال / إخراج . يتم تحقيق كل هذا من خلال ما يُعرف باسم تغيير البت .

متى يجب استخدام Shift Register ؟

غالبًا ما تستخدم مسجلات التحويل لغرض حفظ الاطراف على المتحكم ، حيث أن كل متحكم لديه عدد محدود من دبابيس I / O (GPIO) .

إذا احتاج مشروعك إلى التحكم في 16 مؤشر LED فردي ، فذلك يتطلب عادة 16 دبوسًا من الاردوينو . في حالة عدم توفر 16 دبابيس إدخال / إخراج ، فهذا هو المكان الذي يكون فيه مسجل التحويل في متناول اليد . مع اثنين من مسجلات التحول متصلة علي التسلسل ، يمكننا إنجاز مهمة التحكم في 16 مصباح باستخدام فقط 3 دبابيس I / O . وليس هذا فقط ؛ يمكنك حفظ المزيد من الاطراف والمزيد من مسجلات التحول التي قمت بتقييدها معًا .

SIPO Vs PISO Shift Registers

مسجلات التحول تأتي في نوعين أساسيين ، إما SIPO (Serial-In-Parallel-Out) أو PISO (Parallel-In-Serial-Out) . رقاقة SIPO الشائعة هي 74HC595 ، ورقاقة PISO هي 74HC165 .

النوع الأول ، SIPO ، مفيد للتحكم في عدد كبير من المخرجات ، مثل LEDs . في حين أن النوع الأخير ، PISO ، مفيد لجمع عدد كبير من المدخلات ، مثل الأزرار .

كيف يعمل 74HC595 Shift Register ؟

يحتوي مسجل الازاحة على مسجلين (يمكن اعتبارهما “حاويات ذاكرة”) ، يحتوي كل منها على 8 بت فقط من البيانات . أول واحد يسمى مسجل التحول . يقع مسجل Shift عميقًا داخل دوائر IC ، ويقبل الإدخال بهدوء .

كلما طبقنا نبض الساعة على مسجل الازاحة ، يحدث شيئان :

  • البتات في Shift Register تحرك خطوة واحدة إلى اليسار .  عند الحافة الصاعدة للنبض ، إذا كان دبوس البيانات مرتفعًا ، يتم دفع 1 في سجل الإزاحة . خلاف ذلك ، هو 0 .
  • عند تمكين دبوس Latch ، يتم نسخ محتويات Shift Register في السجل الثاني ، ويسمى السجل / التخزين Latch . يرتبط كل جزء من سجل التخزين بأحد دبابيس الإخراج QA-QH الخاصة بالدائرة المتكاملة  ، وذلك بشكل عام ، عندما تتغير القيمة في “سجل التخزين” ، تتغير المخرجات أيضًا.

يمكنك فهم هذا بشكل أفضل مع الرسم التوضيحي الموضح أدناه.

74HC595-Shift-Register-Working

أطراف مسجل الازاحة 74HC595 Shift

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

دعنا نلقي نظرة على أطرافه. لاحظ أن اثنين من الاطراف لديها خط فوق اسمهم . هذا يعني أنها تعمل في “المنطق السلبي” . سوف تتعرف على ذلك لاحقًا .

Pinout-74HC595-Shift-Register
  • GND يجب أن تكون مرتبطة GND إلى أرضي الاردوينو .
  • VCC هو مصدر الطاقة لمسجل التحول 74HC595 الذي نقوم بتوصيل دبوس 5V على اردوينو .
  • SER يستخدم  لتغذية البيانات في مسجل التحول قليلا في وقت واحد .
  • SRCLK (Shift Register Clock) هي ساعة مسجل الإزاحة. مسجل الإزاحة هو يحركها على مدار الساعة على الحافة الصاعدة . هذا يعني أنه من أجل تحويل البتات إلى مسجل الإزاحة ، يجب أن تكون الساعة عالية . ويتم نقل البتات في الحافة الصاعدة من الساعة .
  • RCLK  هو دبوس مهم جدا . عند تشغيله HIGH ، يتم نسخ محتويات Shift Register في سجل التخزين ؛ الذي يظهر في النهاية في الإخراج . لذلك يمكن اعتبار الدبوس بمثابة الخطوة الأخيرة في العملية لرؤية نتائجنا في المخرجات ، والتي في هذه الحالة هي المصابيح .
  • SRCLR (Shift Register Clear) يسمح لنا هذا الدبوس بإعادة ضبط المسجل Shift بأكمله ، مما يجعل جميع وحداته 0 ، في وقت واحد . هذا هو دبوس المنطق السلبي ، لذلك لتنفيذ إعادة تعيين . نحن بحاجة إلى ضبط SRCLR pin LOW . عندما لا تكون هناك حاجة لإعادة تعيين ، يجب أن يكون هذا الدبوس ذو قيمة عالية .
  • OE يعتبر منطقًا سلبيًا أيضًا : عندما يكون الجهد الكهربائي مرتفعًا ، يتم تعطيل / ضبط دبابيس الإخراج على حالة مقاومة عالية ولا تسمح بتدفق التيار . عندما يحصل الجهد الكهربي على الجهد المنخفض ، تعمل دبابيس الإخراج بشكل طبيعي .
  • QA – QH هي دبابيس الإخراج ويجب أن تكون متصلاً ببعض أنواع المخرجات مثل LEDs و 7 Segments إلخ .
  • QH ‘Pin إذا قمت بتوصيل طرف QH هذا بدبوس SER الخاص بـ مسجل أزاحة آخر ، ومنح كلا ICs إشارة الساعة نفسها ، فسيتصرفان مثل IC واحد مع 16 مخرجات .

الأسلاك - توصيل 74HC595 Shift Register إلى الاردوينو

الآن بعد أن أصبح لدينا فهم أساسي لكيفية عمل 74HC595 ، يمكننا أن نبدأ بتثبيته على الاردوينو لدينا !

ابدأ بوضع مسجل التحول على اللوح الخاص بك ، والتأكد من أن كل جانب من جوانب IC موجود على جانب منفصل من اللوح . مع مواجهة الشق الصغير ذي الشكل U لأعلى ، تكون الاطراف 1-8 أسفل الجانب الأيسر من الأعلى إلى الأسفل و16-9 أسفل الجانب الأيمن من أعلى إلى أسفل كما يمكن رؤيته في الرسم التوضيحي أدناه .

في البدء ، دعنا نوصِّل الاطراف 16 (VCC) و 10 (SRCLR) بالطرف  5v على الاردوينو وتوصيل الطرف  8 (GND) و 13 (OE) بطرف  Gnd على الاردوينو . هذا ينبغي أن تبقي IC في وضع العمل العادي .

بعد ذلك ، نحتاج إلى توصيل الاطراف الثلاثة التي سنتحكم بها في سجل التحويل من خلال :

  1. دبوس 11 (SRCLK) من مسجل التحول إلى دبوس 6 على اردوينو .
  2. دبوس 12 (RCLK) من التحول مسجل إلى الرقم 5 على اردوينو .
  3. دبوس 14 (SER) من مسجل التحول إلى دبوس 4 على اردوينو .

الآن ، علينا فقط توصيل جميع دبابيس الإخراج بمصابيح LED الخاصة بنا ، مما يضمن وضع المقاوم 220 اوم قبل مصابيح LED لتقليل التيار وأن توصل كاثودات المصابيح إلى الأرض .

عند وضع LEDs ، تأكد من توصيلها بالترتيب ، بحيث تكون QA موصلة لأول مؤشر LED ، وأن QH يكون موصلا إلى LED الأخير ، وإلا فلن يقوم كودنا بإضاءة مصابيح LED بالترتيب الصحيح !
عندما تنتهي ، يجب أن يكون لديك شيء يشبه الرسم التوضيحي الموضح أدناه .

Arduino-Wiring-Fritzing-Connections-with-74HC595-Shift-Register
تنبيه : في حال لم تكن متأكد من قدرتك على تنفيذ خطوات المشروع يرجى استشارة شخص متخصص في هذا المجال.

الكود البرمجي لمسجل الازاحة

نحن الآن على استعداد لوضع بعض الاكواد ! قم بتوصيل الاردوينو بالكمبيوتر وجرب الكود التالي .

لتحميل الكود البرمجي اضغط هنا
int latchPin = 5;	// Latch pin of 74HC595 is connected to Digital pin 5
int clockPin = 6;	// Clock pin of 74HC595 is connected to Digital pin 6
int dataPin = 4;	// Data pin of 74HC595 is connected to Digital pin 4

byte leds = 0;		// Variable to hold the pattern of which LEDs are currently turned on or off

/*
 * setup() - this function runs once when you turn your Arduino on
 * We initialize the serial connection with the computer
 */
void setup() 
{
  // Set all the pins of 74HC595 as OUTPUT
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);  
  pinMode(clockPin, OUTPUT);
}

/*
 * loop() - this function runs over and over again
 */
void loop() 
{
  leds = 0;	// Initially turns all the LEDs off, by giving the variable 'leds' the value 0
  updateShiftRegister();
  delay(500);
  for (int i = 0; i < 8; i++)	// Turn all the LEDs ON one by one.
  {
    bitSet(leds, i);		// Set the bit that controls that LED in the variable 'leds'
    updateShiftRegister();
    delay(500);
  }
}

/*
 * updateShiftRegister() - This function sets the latchPin to low, then calls the Arduino function 'shiftOut' to shift out contents of variable 'leds' in the shift register before putting the 'latchPin' high again.
 */
void updateShiftRegister()
{
   digitalWrite(latchPin, LOW);
   shiftOut(dataPin, clockPin, LSBFIRST, leds);
   digitalWrite(latchPin, HIGH);
}

بمجرد تحميل الكود البرمجي إلى الاردوينو ، سترى أن الإخراج يظهر كما يلي :

74HC595-Shift-Register-Sketch-Output

أنتهت !!!

2 Comments

  1. يعطيكم العافيه على الشرح الجميل❤️❤️❤️

    فراج العجمي
    1. الله يعافيك يارب

      ielectrony Support Team

اترك تعليقاً

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