الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عمل ساعة رقمية موصولة بالحاسوب

مغلق
بدأه ab12oode في 28 أبريل 2005 · 16 رد · 5,328 مشاهدة · في التحكم الصناعي وربط الحاسب بالعالم الخارجي
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هل يمكن عمل ساعة رقمية موصولة بالحاسوب في منفذ الطابعة ومتحكم بها عن طريق الفيجول.

انا اقصد انه ليس ساعة رقمية بمعنا الكلام بل هي مجموعة ديودات عددها 60 ديود تمثل الثواني ومرتبة دائرياً

وفي المنتصف يوجد دي كودر على شكل _ عدد 2

| |

--

| |

--

وحدة منها لـــ الساعة والديكودر الثانية للدقائق والثواني هي مجموعة الديودات الذي عددها 60 ديود

انظر الى الملف المرفق وستجد باقي الشرح

ولكن المشكلة هي كيفية عملها ووصلها بالحاسوب ولا يوجد سوى 8 مخارج

فماهي الطريقة ارجو الرد

post-42636-1114706243_thumb.jpg

#2

بالنسبة للمشروع يظهر أنه ليس بمستحيل. :D

ملاحظة: الشاشتان ذات 7 قطع ستكون فقط للساعات!!! فالساعة سيعبر عنها برقمين الرقم الأول للوحدات والثاني للعشرات وسيلزمك للعمل تمثيل الساعات لديكودرين مرتبطين ب 6 مخارج للطابعة( 4للوحدات و2 للعشرات).

أما الدقائق فستكون ممثلة بنقطة واحدة مضيئة من بين الليدات الستين التي توجد في محيط الدائرة, وسيرى المشاهد نقطة حمراء تتحرك بسرعة دقيقة واحدة وهي تدور كعقارب الساعة.

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

يعني ستزيد بشكل كبير من عدد المخارج للتحكم بهذه الساعة, لن تكفيك مخارج المنفذ التفرعي حتى لو استعملتها كلها :wacko:

لأنك ستحتاج ل 6 مخارج للساعات, و 6 للدقائق, و60 للثواني. يعني المجموع هو 72 مخرج.

وبما أن مخرج الطابعة فيه فقط 12 مخرج محتمل فسيلزمك حاسب به 6 منافذ للطابعة :o أو 6 حواسيب بكل واحد منها منفذ للطابعة :blink: .

هههههه أنا أمزح معك :lol: .

عندما نواجه مشكلة في عدد المخارج المباشرة: حيث يكون العدد الفعلي الموجود أقل من العدد المتحكم به, عندها نلجأ لحل وحيد وهو عملية التحكم التسلسلي للبيانات .

نستخدم لهذا الغرض مركبات إلكترونية تسمى ب ShiftRegister(Serial entry to Parallel Output)x تسميته بالعربية لا أعلمها؟!!

هذا المركب يستطيع أن يستقبل بيانات بشكل تسلسلي في رجل واحدة Data وفق تزامن وقتي رجل Clock. ويملك مخرج تفرعي تظهر فيها البيانات المدخلة تسلسليا.

يمكنك مراجعة مشروع مشابه يمكن يفيدك في تصميم الدارة الكهروبية:

مشروع seven segment code

تم تعديل هذه المشاركة بواسطة ikossan في 28 أبريل 2005 في 23:49

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#3

الطريقة معقولة ولكن انا لا اعرف الدلفي واين هي الديودات بالموضوع السابق

ارجو ان يكون بالفيجول لاني متمكن شوي به

ارجو الرد

#4

لكن لم تحتاج الكمبيوتر؟

لم لا تقوم بالعملية باستخدام المايكرو كنترولر؟

تم تعديل هذه المشاركة بواسطة عبد الله هبرة في 30 أبريل 2005 في 16:12

ومن يتق الله يجعل له مخرجا

]

#5

يعني برايك اعملها من دون حاسب بس وين الدارة المؤقت

#6

السلام عليكم ورحمة الله وبركاته

والله اخي العزيز الموضوع مش محتاج كمبيوتر ولا حتي ميكروكنترولر

بص يا سيدي عشان انا كنت عملت واحدة زيها من سنتين فاللاسف الدائرة كانت علي الكمبيوتر وراحت

=========================================

كل اللي هتحتاجة

1. عدد 4 بت كونتر,2 للدقائق و 2 للساعات

2. عدد 4 (seven segment desplay(SSD

3.وشوية and و or و not

4.دائرة 555 عشان تظبط بيها تقلب الارقام علي الشاشة بحيث تماثل الساعة الحقيقية

5. BCD to SSD converter رقمها 7447

وشكـــــــــــــــــــــــــــــــــــــرا

=========================================

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

وبعد كدة ياسيدي

خرج الكونتر توصلة علي دخل 7447

وخرج ال7447 علي الSSD بس تأكد من ان الSSD اللي هتشتريها COMMON ANOD

لان ال 7447 active low بتخرج 0

وبعد كدة خرج ال 555 علي الcount enable لاول كونتر احاد الثواني وبعدين تعمل ديرة صغيرة علي خرج الكونتر دة بحيث لما الخرج يبقا رقم 9 -1001- تخرج 1 وتوصلة علي count enable للكونتر اللي بعد منة وكمان في نفس الوقت علي الreset للكونتر نفسة

دة عشان يعني لما احاد الثواني توصل 9 الفروض انها تبقي صفر و العشرات تبقي بواحد وترجع الاحاد تعد تاني وهكذا

ونفس الكلام مع كل كونتر و اللي بعدة

بس خلي بالك ال555 علي اول كونتر بس علي count enable بتاعة اما بقية الكونترات الcount enable بتعها من الكونتر اللي قبل منها (عن طريق الدائرة البسيطة اللي تعطي 1 لما خرج الكونتريبقي 9 )

دة شرح بسيط عن فكرة عمل الدائرة :blink:

ورسمة الدائرة هتوضح اكتر ان شاء الله

opensense01fw9.gif

technolobya01gn5.jpg

#7

أخي أنا بذكر أنو كان في هذا الموقع دروس عن هذا

www.alhasebat.com

فيه كتير معلومات

#8

اذا مازلت مصمم علي استخدام الparallel port للكمبيوتر فأعتقد ان هذا الموضوع سيفيدك

/index.php?showtopic=56447

اما اذا كنت هتستخدم الmicro controller كما قال اخي عبدالله هيرة فأعتقد ان هذا الموضوع سيفيدك

/index.ph...opic=48040&st=0

اما اذا كنت هتعملها بشوية دوائر logic بسيطة وهذا ما ارجحة شخصيا لان الدائرة حقا بسيطة وان شاء الله تنفذها بسهولة

فقد وجدت الدائرة التي قمت بعملها من قبل وستجدها بالمرفقات

ملاحظات: B)

-الدائرة انا عملتلها simulationعلي EWB 5) elcectric work branch v.5.00 )

لكي تعمل الدائرة جيدا ارجو استخدام نفس الاصدار وليس علي windowesXP

لاني حاولت اشغلها علي الاصدارات الاحدث لكنها لم تعطي النتيجة المطلوبة

ان لم تكن تملك هذا الاصدار فأخبرني لكي ارفعة لك

- هذة الدارة 4 ارقام رقمين ثواني و رقمين دقائق اذا كنت انت تريد رقمين دقائق و رقمين ساعات فكل ما عليك فعلة انك تغير بس عرض البلص اللي خارجة من دائرة ال555 ليصبح عرضها زمنة دقيقة وذلك بتغير قيمه المقاومق اللي في دائرة ال555

- على فكرة الدائرة دي انا عملتها وركبتها في يوم واحد و اشتغلت تمام بحمد الله

اقول لك ذلك لأ أكد لك بساطتها

ارجو لك التوفيق وانا تحت امرك في اي شىء

واتمني ان اكون قد استطعت مساعدتك ولو بالقليل ...................

digital watch.rar

تم تعديل هذه المشاركة بواسطة Open_Sense في 1 مايو 2005 في 23:14

opensense01fw9.gif

technolobya01gn5.jpg

#9

يمكنك كما تفضل الأخوة تصميم الدارة بالدوائر المنطقية، ولكني شخصيا لا أنصح بذلك للأسباب التالية:

1-إن استخدام دارة 555 كمولد للزمن، لا يعطي الدقة المطلوبة في الأداء.

2-ستحتاج للكثير من الدوائر الرقمية كفاكات الشيفرة، عدادات، مقارنات، دارات قيادة..

ومن يتق الله يجعل له مخرجا

]

#10

الله يعطيكم العافية جميعاً والله يوفقكم والشكر الىالاخ Open_Sense

سأحاول التنفيذ واخبركم

#11

اخي الغالي عبدالله هيرة انا معك فقط في موضوع ان ال555 لاتعطي الدقة المطلوبة

ولكن ان هذا الموضوع يمكن تظبيطة عن طريق تغير قيمة المقاومه اللي مع ال555

وبعدين اخي الخطاء يكون غير ملحوظ

فمثلا لو الدقيقة 60 ثانية ممكن ان تكون في هذة الداثرة 60.05 او 59.95 ثانية يعني العين لن تلاحظ

واعتقد انه ممكن لو مقاومه محترمة تحقق المطلوب (انا جربتها و شوفت النتيجة كانت مرضية تماما) هذا بالنسبة لموضوع ال555

اما بالنسبة لموضوع ان الدائرة المنطقيه ستكون معقدة فاني اخالفك الرئي تماما

ارجو ان تري الدائرة التي ارفقتها في مشاركتي السابقه

لا تحتوي الا علي counters, BCD to SSD CONVERTERS-7447,AND ,NOT ,

وشويه تفكير صغيرين

واعتقد انك بتقول مقارنه عشان يعرف ان الرقم 9 هو الرقم الحالي

الموضوع ابسط من ذلك , فلمعرفة ان خرج الكونتر 9

كل اللي هتعملو الاتي:-

بما ان خرج الكونتر 4 بت

هتعمل AND بين اول بت و اخر بت ولما يكون خرج الAND يساوي 1 اذا الكونتر في رقم 9

اخد خرج الAND دي احطها علي RESET بتاع الكونتر نفسة وكذلك علي الCOUN ENABLE

للكونتر اللي بعدة وهكذا كما قلت في مشاركاتي السابقة

العفو اخي ab12oode هذا واجب علينا فنحن اخوة :)

قمت بتجربتك واخبرنا

واذا احتجت اي DATA SHEET لاي TTL IC تستخدمة اعطني رقمة وانا سأرفقة لك ان شاء الله

تم تعديل هذه المشاركة بواسطة Open_Sense في 2 مايو 2005 في 19:34

opensense01fw9.gif

technolobya01gn5.jpg

#12

ما قصده عبدالله هو ان خطأ بنفس النسبة التي ذكرت 60.05 او 59.95 ثانية بدل 60 سيعني تاخير او تقديم بمعدل 36 دقيقة شهريا و هذا امر يصعب قبوله كدقة حيث ان هذا النوع من الخطأ تراكمي.

فكرة ikossan تبدو جيدة اذا اردت استخدام الحاسب كمصدر قيادة باستخدام shift registers و تستخدم ساعة الحاسب كمرجع.

تصميم مستقل افضل لكن مرتبط مع الحاسب فيه تعلم اكثر برمجة و مخارج.

تم تعديل هذه المشاركة بواسطة عماد الخليل في 2 مايو 2005 في 20:10

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

#13

أعتقد أنك ما تزال بحاجة للمقارن، حتى يتم التصفير بعد الوصول للرقم 59! والرقم 23 بالنسبة للساعات.

بالنهاية أنا طرحت وجهة نظري، قد لا تروقك، إنما هي وجهة نظري، ولن يجبرك أحد عليها..:)

ومن يتق الله يجعل له مخرجا

]

#14

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

كانت مبنية أساسا على المايكرو كنتروللر AT89S8252 من شركة أتمل..

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

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

2-ما الذي سيحدث عند انقطاع الكهرباء؟

هذه مشكلة حقيقية، فرغم أن التصميم قد فرض وجود بطارية، إلا أن المعالج يستهلك الطاقة بنهم، إذا لم تدخله في نمط الsleep أو الidle mode

والمشكلة أنه إذا دخل في هذا النمط فلن يستطيع حساب الزمن طوال مدة السبات!

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

ومن يتق الله يجعل له مخرجا

]

#15

أخي عبد الله هبرة

شكرا ً لتواصكم مع أخواننا واثرائنا بالمعلومات القيمة انت وجميع الأخوان ..

- أحب أن اعقب على كلامك بأنه فعلا ً لو كانت الدقيقة = 59.95 إلى 60.05 لا يمكن أن يتنج تأخير ملحوظ في الساعات الأولى .. ولكن مع مرور زمن كافي سيكون من الملحوظ أدراك هذا التأخير وهذا ما يسمى بالتراكم الزمني وحيث أنك وقد قمت بعمل مسبق لساعة أكترونية تعمل على ميكروكنتلولر .. وقابلتك بعض المشاكل هي نفس المشاكل التي قابلتي عند عمل ساعة ألكترونية تعمل على ميكروكنتلولر PIC 16F84A من شركة مايكروتشب ، وأستخدمت 4 وحدات للعرض وحدتان للساعات ووحدتان للدقائق تفصلهما نقطتان تومض مشيرة إلى الثواني . :rolleyes:

- لكن أين الجديد هنا :( ؟

- وحتى يستفيد أخواننا سأعرض بشكل موجز كيفية المقاطعة باستخدام Timer ، أستخدمت في هذا العملية مذبذب كرستالي 4MHz ، وكما هو معلوم بان المايكروكنتلولر يستخدم ربع الذبذبة الفعلية أي 1MHz فإن زمن تنفيذ التعليمة = 1us ولأنشاء نبضة في الثانية بكل دقة نحتاج إلى أنشائها بعد تنفيذ مليون تعليمة ؟؟؟ بحسب المعادلة التالي الثانية = 0.000001 * 1000000 ، وهذ العملية ليست مستحيلة ولكن تحتاج إلى أستخدام حيلة .. :unsure:

- سجل الـ Timer 0 هو أحد سجلات المايكروكنتلولر المذكور أعلاه ، هذا السجل مكون من 8 خانات ثنائية يرتفع تلقائيا ً من خلال الدوارت الداخلية لذبذبات بلورة الكوارتز فإذا وصل هذا السجل إلى القيمة FF ( بصيغة السادس عشر ) أو 11111111 بالصيغة الثنائية و 256 دورة ( بصغية العشرية ) فإن الأرتفاع التالي سيكون 00 وهنا تحدث المقاطعة ، وتتكرر العملية مرة أخرى . يمكننا أن أستعمال سجل أو أكثر لمعرفة كم مرة وصل سجل التايمر إلى الصفر .

- بالنسبة للمشكلة التي تحدث عند أنقطاع التيار الكهربائي عن الدائرة ؟

- إذا كنت تقصد بأضافة دارة مسئولة عن حساب الزمن، لتظهر التوقيت حتى عند إنقطاع التيار فهذه ميزة . :rolleyes: :rolleyes:

- أما إذا كان الجواب لا ... فالأحرى بنا أيجاد عملية أكثر بساطة .. أشاطرك الرأي في أن الدخول بالمايكروكنتلولر في حالة sleep يستهلك أقل ما يمكن من التيار ( في حالة أنقطاع التيار الكربائي وأستخدام البطارية ) ولكن كما ذكرت سيحيد المايكرو عن حساب الزمن مدة هذا الإنقطاع .

- برأيي يمكننا أيجاد حل وسط بين الحالتين . جعل المايكرو يحسب الزمن مع أقل أستهلاك لطاقة البطارية ، وحدات الإظهار هي التي تستهلك أكبر قدر من الطاقة يمكننا جعل أحد اطراف المايكرو يتصل بالمصدر الرئيسي للطاقة ليصل إلى هذا الـ PIN جهد قدرة 5V ، فعند أنقطاع التيار الرئيسي يكون حالة هذا الطرف 0V ، وبهذا يعمل البرنامج على عدم أظهار الوقت على وحدات الإظهار أو المرفأ PORT ويتم حساب الزمن داخليا ً . فإذا عاد التيار ورتفع جهد هذا الطرف إلى الحالة المنطقية 1 يعمل البرنامج على أظهار الزمن على وحدات الإظهار ...

- أود أن أضع البرنامج والدارة الإلكترونية ولكنني لا أعرف كيف ارفقها كصورة ضمن النص حتى تتوضح الفكرة ... الرجاء أفادتي عن ذلك

- أتمنى ان أكون قد اضفت شيئا ً مفيدا ً .. كما أغنانا هذا الموقع بالمعلومات القيمة

ولكم جزيل الشكر والتقدير

-

#16

الاخ إلكترونيات بالامكان استخدام احد مواقع الانترنت المجانية مثل 1asphost.com لرفع الملفات هناك سواء صور او غيرها ثم تضع رابطها هنا و ستظهر. استخدم مفتاح IMG الموجود في اعلى الرسالة هنا في المنتدى لاضافة صورة بحيث تضغط IMG ثم تضع رابط الصورة.

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

#17

شكرا لك

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…