تقديم
هذا الجهاز هو عبارة عن سبعة صمامات ضوئية مركبة بشكل عمودي موضوعة على محور محرك يتم التحكم بها بواسطة الميكروكنترولور (وهو العقل الذي سيتحكم بمشروعنا ) كما هو مبين في الشكل جانبه، حيث بامكان هذا الجهاز ان يكتب الرسالة او الكلمة التي نريدها باستعمال مجموعة محددة من الصمامات الضوئية LED. سنبين في هذا المقال مبدأ عمل شاشة الصمامات الضوئية الدورانية، ثم نتطرق بعدها لمثال تطبيقي حي. |
|
ولأن الموضوع طويل شيئا ما فطريقة الشرح ستكون معتمدة على المقولة العربية "خير الكلام ما قل ودل". |
|
إليك نموذجا لجهاز آخر يعمل على نفس المبدأ
مبدأ العمل
في اللحظة الاولى لتشغيل الجهاز سيبدأ المحرك بالدوران مع الميكروكنترولور PIC والصمامات الضوئية السبعة حيث ان كل صمام ضوئي سيقوم بالدوران 360 درجة حول مركز المحرك. |
|
تخيل الان معي ان الصمامات الضوئية السبعة كلها مضيئة وهي تدور بشكل دائري وبسرعة، ما الذي ستراه في هذه الحالة؟ سيكون الجواب هو سبعة خطوط افقية تدور بشكل دائري. الان، ما علينا الا جعل الصمامات الضوئية يضيئ بعضها وينطفئ بعضها الآخر وبسرعة اثناء تحركها بشكل افقي حتى تكتب لنا الرسالة التي نريدها فهل هذا ممكن؟ نعم، وهذا يتسنى بالإعتماد على عقل إليكتروني الذي سيكون هوالميكروكنترولور PIC 16F84A في مشروعنا هذا.
ملاحظة: ان لم تفهم المبدأ جيداً رجاءً أعد القراءة او اترك سؤالك كتعليق أسفل المقال. |
الأجزاء الرئيسية
الأجزاء الرئيسية للدارة الكهربائية العامة للجهاز
العربية الإنجليزية الفرنسية |
الكمية |
الصيغة أو القيمة |
ميكروكنترولور Microcontroller Microcontroleur |
1 |
PIC16F84A |
مصدر الطاقة Power Supplies Alimentation |
1 |
بطارية أو منبع تيار مستمر |
متذبذب كريستالي Crystal Oscillator Quartz |
1 |
XTAL 4Mhz |
المكثف Capacitor Condensateur |
2 |
22pf |
المقاومة Resistor Resistance |
1 |
4.7Kohm |
8 |
150Ohm |
|
صمامات ضوئية LED |
7أو 8 |
اختر الالوان التي تريدها |
معدل كهربائي Voltage regulator Regulateur |
1 |
7805 |
الأجزاء الرئيسية للدارة الكهربائية المتحكمة بسرعة المحرك
العربية الإنجليزية الفرنسية |
الرمز في الدارة |
الكمية |
الصيغة أو القيمة |
المؤقت Timer |
IC1 |
1 |
NE555 |
ترنزستور Transistor |
Q1 |
1 |
BD139 |
محرك DC DC Motor Moteur DC |
M |
1 |
يفضل ان يكون 25 دورة في الثانية لكن ان لم تجد سنشرح كيفية التحكم بسرعته. |
زر من صنف DPDT DPDT switch Interrupteur DPDT |
S1 |
1 |
للتشغيل والإيقاف |
مقاومة متغيرة Potentiometer |
R1 |
1 |
50 Kohm |
المقاومة Resistor Resistance |
R2 |
1 |
1 Kohm |
R3 |
1 |
33 Ohm |
|
المكثف Capacitor Condensateur |
C1 |
1 |
0.1uf |
C2 |
1 |
0.01uf |
|
صمام ثنائي Diode |
D1, D2 |
2 |
1N4001 |
D3 |
1 |
1N4007 |
الدارات الكهربائية
الدارة الكهربائية العامة للجهاز
الدارة الكهربائية العامة للجهاز بسيطة وغير معقدة وهي كالأتي: |
|
دارة الميكروكنترولور 16f84A تتالف من : الدارة المتذبذبة تتكون من المتذبذب الكريستالي 4Mhz ومكثفين قيمة الواحد منهما 22pf. |
الدارة الكهربائية المتحكمة بسرعة المحرك
وحيث أننا نريد التحكم بسرعة المحرك فكان لا بد من إنجاز دارة كهربائية تقوم بهذه المهمة وهي كالتالي: |
|
هنا سنستعمل دارة تعتمد على IC NE555 وسيتم التحكم بالمحرك عبر المقاومة المتغيرة الموصولة على الارجل 6 و 2. نلاحظ وجود دايود متصل بشكل موازي مع المحرك وهو يستعمل لحماية الترانزستور و المؤقت من التلف ومن دونه ستضطر الى تغيرهما كلما اعدت تشغيل المشروع وذلك نتيجة التيار الكهربائي العكسي الذي يولده المحرك عند اطفائه. |
كيفية توصيل التيار للجزء المتحرك
طبعاً تتسائلون عن كيفية توصيل الكهرباء الى الجزء المتحرك وهو الجزء الاخير والاهم. عادةً يستعمل جهاز اسمه mercotac rotating وهو جهاز مكلف لذلك علينا ان نكون خلّاقين وصناعة نسختنا الخاصة وهي كالتالي: |
|
طبعاً لدينا شريطين موجب وسالب. لتوصيل السالب للدّارة يكفي لفّ السلك السالب حول هيكل المحرك وجعله يدور مع الجهاز. اما الشريط الموجب فنحن بحاجة الى اي نوع من الغراء واثنين من (عزقة او الصَمُولَة او حزقة) نقوم بالصاق كلا العزقتين بعمود الدوران للمحرك ونوصلهما بشريط موصل او نجعلهما متلاسقان على شرط ان يكون احدهما فوق العارضة والآخر اسفلها. يتم لفّ السلك الموجب القادم من الدارة على العزقة العليا ويتم لف السّلك الموجب القادم من البطارية او مصدر التغدية الكهربائية على العزقة السفلى. |
التركيب
فيما يلي الصورة العامة لتركيب الجهاز. |
|
يمكنك أن تنجز الدارة الكهربائية على بطاقة مثقبة (Perfboard) أو على سبيكة نحاسية كما هو مشروح في المقالات:
اختر أي طريقة تحب وإليك تصميم البطاقة الصغيرة لهذا الجهاز. يمكنك تحميلها وطباعتها على الورق من خلال الملف التالي: |
|
اولاً : يتمّ وضع اللوحة الإليكترونية على الداعمة معدنية رفيعة. وبالامكان أيضا استعمال داعمة خشبية اي انك لست مضطراً لتقيد بهذا الشكل. |
|
نلاحظ ايضا ان اللوحة الإليكترونية في جهة والصمامات الضوئية في الجهة المقابلة وهذا امر مهم من اجل مراعاة توزيع الصقل.
ثانيا: يتم توصيل المحرك بالدارة
|
![]() |
ثالثا: يوضع غطاء من اجل تثبيت المحرك لمنعه من الاهتزاز او السقوط. |
![]() |
حسابات تحليلية
تقديم
سنتطرق في هذه الحسابات إلى استعمال الوحدة الزمنية "الثانية" وما تحتها، وحتى يسهل عليك التحليل نذكرك بها في ما يلي: |
الوحدة |
الرمز |
قيمتها |
ثانية |
s |
1 s |
ميليثانية |
ms |
1 ms = 0.001 s |
ميكروثانية |
μs |
1 μs = 0.000001 s |
|
لنعتبر ما يلي
1- ربما تعلم أن 25 صورة في الثانية هي نفس السرعة التي تتغير بها الصورة على التلفاز. اي، أن كل ثانية يعرض التلفاز صورة تسلسل الصور بسرعة تجعل عين الانسان تظن أنها تتحرك. ملاحظة: كلما زاد عدد الصور في الثانية كلما كانت الصورة اوضح. التلفاز الجديد قادر على عرض 100 صورة في الثانية ولكن هنا في حال اردنا زيادة عدد الصور يتوجب علينا زيادة سرعة المحرك وبالتالي قد يحدث اهتزاز مما سيشوه الصورة. 2- سنعتبر المسافة بين المحرك وشبكة الصمامات الضوئية هي 15 سنتمترا. 3- المسافة الدائرية التي سيقطعها الصمام الضوئي تساوي: 2 × π × R = المسافة 2 × 3.14 × 15 = المسافة المسافة = 94.25 سنتمترا اذن طول المسار الذي سيقطعه الصمام الضوئي هو 94 سنتمترا تقريبا. |
التحليل
1- ينبغي على المحرك أن يدور بسرعة 25 دورة في الثانية، وبالتالي فإن الصمامات الضوئية ستدور هي أيضا 25 مرة في الثانية، اي انها ستنجز دورة واحدة كل 0.04 ثانية (1 مقسوم على 25 تساوي 0.04). 2- لو قلنا بان عرض العمود المؤلف من 7 صمامات ضوئية يساوي 0.5 سنتمترا، فكم من عمود سيكون على مسار دائري طوله 94 سنتمترا؟ الجواب هو 94/0.5 = 188 عمودا. 3- الان نقسم 0.04 ثانية على 188 عموداً، ستكون النتيجة هي 212 ميكروثانية. هذا الرقم يدل على الوقت الذي سينتقل فيه العمود من موضع لآخر. 4- الان، علينا حساب الاحرف التي نريد طباعتها. فمثلا لو اردنا كتابة كلمة try المكونة من ثلاثة احرف وكل حرف سيتشكل في خمسة اعمدة إضافة إلى عمود فارغ سيكون الفاصل بين كل حرفين متجاورين. وبالتلي فيمكن القول بأن الحرف سيتألف من ستة اعمدة. وبالتالي، فاننا سنستعمل 18 عمودا لطباعة الأحرف الثلاث وباقي الاعمدة ستكون مطفأة. 5- كما قلنا أن 212 ميكروثانية هي المدة الزمنية التي سيتسغرقها العمود في كل موضع. وبالتالي فإن 18 عمودا ستستغرق ما مجموعه 3816 ميكروثانية. اما المدة المتبقية من 0.04 ثانية فهي عبارة عن فراغ، وستكون الصمامات الضوئية منطفئة في هذه الحالة. هذه المدة هي 40ms – 3.81ms = 36ms. |
معلومات اضافية
لو اعتبرنا ان المسافة من المحرك الى الصمام الضوئي هي 20 سنتمترا، ونحن نريد عرض 25 صورة في الثانية فإن: طول المسار الذي ستقطعه الصمامات الضوئية هو 1.256 مترا. بناءً على القاعدة التي تم ذكرها فوق : 2 × π × R= المسافة 2×3.14×20 = المسافة المسافة = 125 سنتمترا السرعة التي سيسير بها الصمام الضوئي في هذه الحالة تساوي = المسافة x عدد الصور في الثانية × 3600 = 113 كيلومتر/الساعة لو اعتبرنا ان المسافة من المحرك الى الصمام الضوئي هي 15 سنتمترا، ونحن نريد عرض 25 صورة في الثانية فإن طول المسار الذي ستقطعه الصمامات الضوئية هو 94 سنتمترا مترا. بناءً على القاعدة التي تم ذكرها فوق : 2 × π × R= المسافة 2×3.14×15 = المسافة المسافة = 94 سنتمترا
ماذا نلاحظ؟ نلاحظ انه كلما زادت المسافة من المحرك الى الصمام الضوئي زادت السرعة وبالتالي سيذداد الاهتزاز و التشوه في الصورة المعروضة لذلك يفضل استعمال مسافة قصيرة. |
البرمجة
نشرح اولاً بعض الاوامر الموجهة للميكروكنترولور PIC الضرورية لمشروعنا:
كل شيفرة في الميكروكنترولور PIC تبدأ بهذه الدالة وليس مهما شرحها حالياً// |
void main() |
|
{ |
هذا السطر لتحديد الارجل من B0 الى B7 على انها مخارج حيث ان كل طريقة عمل البيك تسمح بتحديد ارجل البيك اما دخل او خرج وهنا نحن سنستعملها كخرج // |
trisb = 0; |
هذا السطر سيجعل جميع الصمامات الضوئية منطفئة كحالة اولى اي عند بدأ البرنامج بالعمل// |
portb = 0; |
|
} |
ستكون جميع الصمامات الضوئية منطفئة في البداية. اما اللامتين { } فتكتب شيفرة البرنامج الذي نريده بينهما.
إذا اردنا أن تكون جميع الصمامات الضوئية مضيئة سنكتب portb=0b11111111.
اي ان امر=portb يستعمل لتحديد حالة الصمامات الضوئية الموصولة بالارجل b للـميكروكنترولور والرقم الذي يليه يخبر اي صمام ضوئي سيضيء وأيها سيكون منطفئا: 1 تعني مضيئ 0 تعني مطفئ
انظر الصورة على اليسار
|
|
||
دالة التاخير: المقصود لم اردنا اخبار الميكروكنترولور PIC ان ينتظر لفترة معينة ثم يبدأ بتنفيذ الامر التالي نكتب: |
|||
(......) delay_ms
|
|
||
مكان النقاط نحدد المدة الزمنية وهي بالميليثانية او اردناها بالميكروثانية نكتب كالتالي: وهنا نخبر المايكروكونترولور ان يسبت على حالة الاضاءة لمدة 212 ميكروثانية |
|||
portb=0b11111111; delay_us(212(;
|
|
||
امر التكرار وهو يتالف من امرين الاول يكتب باول البرنامج المراد تكراره والثاني في اخره المقصود انه لو اردنا تكرار الامر السابق الى ما لا نهاية نكتب في اول البرنامجكما هو مبين جانبه. |
|||
loop: portb=0b11111111; delay_us(212(; goto loop
|
|
||
ليس ضروريا كتابة loop من الممكن ان يكون اي اسم mohamad مثلا و نكتب في اخر البرنامج: |
|||
mohamad: ... goto mohamad;
|
|
||
الآن نبدأ البرنامج : لو اردنا كتابة حرف p كما قلنا سابقاً الحرف يتالف من خمسة اعمدة و عمود فراغ ( عمود واحد في الحقيقة و لكن عندما يتحرك سيبدو اكثر من عمود ) سيكون الكود كالتالي : |
|||
void main() { trisb=0; portb=0;
// السطر التالي سيضيئ جميع الصمامات الضوئية في الصف الاول // اتت 212 من الحسابات السابقة portb=0b11111111; delay_us(212); portb=0b00001001; delay_us(212); portb=0b00001001; delay_us(212); portb=0b00001001; delay_us(212); portb=0b00000110; delay_us(212);
portb=0b00000000; delay_us(212); /* هذا هو الصف الفارغ اي الفاصل بين كل حرف .هكذا نكون قد كتبنا اول حرف ونكمل نفس الشئ مع باقي الاحرف الى ان نصل الى آخر حرف فنكتب الكود التالي. off هذه المدة التي سيكون فيها العمود */ // من اين اتى الرقم 36 ؟ راجع الحسابات اعلاه portb=0b00000000; delay_ms(36); } |
|
برامج مساعدة
يمكنك تحميل أيا من البرماجين التاليين لمساعدتك على تحديد قيم الجملة التي تريد إظهارها باستعمال شيفرة جخاز الصمامات الضوئية الدورانية: |
تأليف
المؤلف: مصطفى عبد الرضا (لبنان)
شكر
نشكر محمد مختار من مصر على فقرة برامج مساعدة.
{jumi [*3]}
المراجع
http://www.jogy.ch/files/Circuit_Cellar_Design_Contest_H3210/Propeller_Display.pdf
http://hackedgadgets.com/2008/12/12/rotating-blue-led-display-2/
التعليقات
ممكن توضيح السؤال ؟