الأربعاء، 23 يناير، 2013

7segment المقطعات السباعية

seven 7 segment  المقطعات السباعية 


مرحباً بكم , سأعرض لكم اليوم سلسلة جديدة تعرض كيفية التحكم  بأحد لوحات الإضاءة الرقمية الشهيرة و التي تسمى seven segment أو بالعربية المقطعات السباعية , يمكن من خلالها عرض الأرقام و بعض الحروف و الأشكال عليها .

نراها في العديد من الأجهزة , قد تستخدم كعدّاد , أو كساعة رقمية  , أو لعرض القيم العددية للحساسات .



في هذه السلسة سنحاول عرض شرح مفصل , لكيفية التحكم بالمقطعات السباعية و دمج لغة أردوينو معها .


في البداية , ما هي المقطعات السباعية ؟

هو عبارة وسيلة عرض الكترونية لعرض الأرقام بالصيغة العشرية "Decimal numeric " , و هي مجموعة بواعث ضوئية LED مربوطة على التوازي من طرف واحد , يربط إما مع التغذية Vcc و يسمى وقتها ب Common anode مشترك موجب أو مربط مع السالب Gnd و يسمى وقتها Common cathode مشترك سالب .




هذه البواعث الضوئية توضع في ترتيب بحيث تظهر على شكل رقم 8  .
 

يمكن أن تأتي في عدة أشكال و تعليبات مختلفة , فقد تأتي بخانة واحدة 

او خانتين 

أو ثلاث خانات 

أو أربعة خانات 


لكل تعليب وظيفة و توصيلها لا يختلف كثير عن الأخرى .

سأشرح عن كل نوع و سنفهم كيفية توصيله و برمجته .

سنبدأ بالأسهل ألا و هو المقطع السباعي بخانة واحدة .

كيفية التحكم ؟

سنقسم طرق التحكم " قيادة " المقطعات السباعية إلى :
1) التحكم مباشرة من بطاقة الأردوينو .
2) باستخدام مسجل الإزاحة Shift register 74595 .
3) باستخدام الدارة المتكاملةMax7219 .
سنعطي كل طريقة على حدا , كما سنرى بعد قليل :

جهّز معداتك :

ستحتاج إلى هذه المعدات لكي تقوم بهذه التجربة :
1) بطاقة أردوينو  Arduino .
2) اسلاك توصيل Solderless Jumper 
3)مقطّع سُباعي 7segment " تغذية مشتركة CA أو سالب مشترك CC "
4) لوحة تعليمية مثقوبة BreadBoard .
5) مقاومات 150 أوم 
6) مسجل إزاحة Shift Register 74959 " اختياري في حال أحببت الإنتقال إلى طريقة التحكم باستخدام مسجل الإزاحة"




لنبدأ :)

1) التحكم مباشرة من بطاقة الأردوينو .

طريقة التوصيل : 






مهما كان نوع المقطع السباعي 7seg الذي تستخدمه , كل ما عليك هو توصيل الأرجل من أردوينو إلى المقطع السباعي حسب الترتيب التالي 

المقاومة " 150 أوم " توضع لتقليل التيار المار في المقطع السباعي , لكي لا يتلف و يتم اختيار قيمتها من 25 - 470 أوم .

التوصيل سهل كما رأيتم  , لننتقل الآن للبرمجة .

البرمجة 

الفكرة في كتابة البرنامج سهلة .

في حالتنا هذه , أنا استخدمت مقطع سباعي 7segment ذو قطب تغذية مشترك CA , في الحالة العادية يكون طرف الباعث الضوئي موصول للتغذية و الطرف الآخر موصول مع طرف المتحكم الموصول ببطاقة الأردوينو .
مدخل المتحكم يعمل كمصرف للتيار Current sink فلو تم تهيئته على وضع منخفضLOW فيمكن للتيار العبور و يضيئ الباعث الضوئي في المقطّع السباعي 7segment .
أما لو كان مدخل المتحكم موضوع على وضع مرتفعHIGH فلن يسمح للتيار بالمرور و هكذا لن يضيئ الباعث الضوئي في المقطّع السباعي 7segment  .

في جملة الإعداد للبرنامج , نقوم بتعريف المداخل من D2-D9  كمخارج كما يلي 

السؤال الذي قد يراودك الآن ... هو كيف لنا أن نظهر القيم التي نريدها على المقطع السباعي ؟ 

سنستخدم هنا تقنية تعلمناها منذ الصغر , ألا وهو جدول الحقيقة Truth table أو ما يسمى أحياناً look_up table و الذي يمكننا من اختيار حالة كل مدخل من مداخل المتحكم الموصولة مع المقطع السباعي و هل نريدها في حالة HIGH Or LOW  .
كمثال , لنفرض أننا نريد أن نضيئ الرقم 1 على المقطع السباعي , في حالة الCA يجب أن يكون فقط المدخلين الموصولين مع a,b في حالة منخفض LOW و الباقي في وضع مرتفع HIGH 
و العكس لو كان CC , و هكذا ...
و سنكتب داخل كود البرنامج الجملة التالية :


و كلما أردنا أن نظهر الرقم 1 نقوم باستدعاء هذه الجملة داخل الvoid loop في البرنامج .

الكود التالي يقوم بإظهار الأعداد من 0-9 بفارق زمني قدره 500ms       


        
في حالة القطب السالب المشترك CC كل ما عليك فعله هو عكس الحالات , فبدل كل HIGH
نضع LOW و العكس صحيح .
و هذا الفيديو البسيط يوضح كيف تظهر النتائج بعد تحميل البرنامج على المتحكم .
هكذا نكون قد فهمنا مبدأ العمل و سننتقل الآن للجزء الثاني ألا و هو توصيل أكثر من مقطع سباعي
واحد أو توصيل مقطع سباعي متعدد الخانات مباشرة من الأردوينو , قد تكون فكرة صعبة
أو مستحيلة بنظرك , سنقوم بعمل هذه التجربة و نفرغ لها التدوينة المقبلة

0 التعليقات :

إرسال تعليق

 
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.