قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الاليقسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots
بارك الله فيك اخي حيدر والله بفعل وليس مدحا او مجاملة فيك فجزاك الله خيرا على ماتبذله من جهد في هذا المنتدى.
اذا استجد اي شي معي ماراح نستغني عن خدماتك.
هلا اخي حيدر انا عملت مشروع استنادا على ماتوصلنا اليه من تحديد قيم max وتخزينها في مصفوفة ولكن احس ان المشروع مش ولابد وهو عبارة عن مقاومة متغيرة رقمية بحيث اخذ قيمة max واطرحها من 0.1 وهذه القيمة (اي ناتج الطرح) اخزنها في المقاومة الرقمية وخرج المقاومة ندخلة على الطرف الثاني لمقارن اما الطرف الاول فندخل نفس الاشارة التناظرية. وبالتالي الطرف الاول للمقارن هو الاشارة الاصلية والطرف الثاني للمقارن هو القيمة المرجعية فعندما تصل الاشارة اثناء صعودها الى هذه النقطة يعطي خرج المقارن high وعندما تنزل الاشارة عن هذه القيمة اثناء هبوطها يصبح خرج المقارن low.
التعديل الأخير تم بواسطة : ennng بتاريخ 19-04-2013 الساعة 12:30 AM
1- ندخل الاشارة على ADC ونحدد قيمة max لكل دورة
2- نطرح كل قيمة max من 0.1 = قيمة مرجعية
3- ندخل القيمة المرجعية الى مقاومة رقمية
4-خرج المقاومة الرقمية ندخلة على مقارن
5-الطرف الثاني للمقارن ندخل عليه الاشارة الاصلية
هلا اخي حيدر بارك الله فيك اتمني ان تفيدني وتساعدني بارك الله فيك انا اريد اخراج موجة مربعة علي حسب max تبع الاشارة الداخلة كما شرحت سابقا. انا عملت الديزاين وكل شي وبأذن الله انزله قريبا الديزاين شغال لكن فيه مشكلة بسيطة.
طبعا المشروع استخدمنا فيه مقاومة متغيرة يتم التحكم بها عن طريق I2C بااختصار المقاومة تعمل ك slave , والمتحكم كماستر, نرسل عنوان المقاومة يلية العنوان الذي نريد الكتابة فيه (8bits) ومن ثم نرسل (8bits) اخرى للاعدادات بحسب الداتا شيت ثم نرسل المعلومة او الداتا التى من خلالها نحدد قيمة المقاومة.بكل سهولة المقاومة هي من الصفر الى 256 steps ولها ثلاث اطراف A,B,W طبعا وصلنا A على مصدر الجهد و B وصلناه على الارضي , W هي المقاومة المتغيرة وهذا الطرف نوصله بااحدى اطراف المقارن وقيمتة تعتمد على قيمة max في الاشارة. نحن نعتمد على قيمة الجهد ولانعتمد على قيمة المقاومة(ملاحظة اذا اراد اي شخص حساب المقاومة الخارجة فهناك قوانيين في الداتا شيت) اما الطرف الاخر في المقارن فندخل عليه الاشارة الاصلية حتى تخرج لنا اشارة مربعة تعمد على قيمة max لكل فترة. تلاحظ المشروع شغال 100% لكن الغريب لما تغير في الكود وبالذات القيمة المرجعة التى افترضناها تقل عن قيمة max بفارق بسيط لايحدث شئ.
عندي فكرة اخرى ارجوا الاستاد حيدر يقدر يساعدنا فيها
1- حددنا قيم max ووضعناها في مصفوفة من x قيم ولنقل انها [A[x( هذا خلاص انتهينا منه)
2-انا قلت نعرف مصفوفة اخرى ولنقل B [x ثم نساوي المصفوفتين في كل قيمة
3- نضع شرط اذا كانت قيم A مساوية لقيم B اعطينا 1 على خرج portb و delay بسيط وبالتالي عند كل peak او max راح يعطي portb بواحد.
انا حاولت لكن ماضبطت معي وهي اسهل من استخدام المقاومة الرقمية.
اخي و عزيزي ....
لو كنت قد طرحت الفكرة كاملة من اول المشروع كان ممكن نصل الى الحل النهائي باقصر الطرق ....
اما تجزئتها بهذا الشكل ستجعل سلسلة الافكار متقطعة و لكي نكتب الكود في فقرة معينة علينا استذكار ما كتبناه قبل اسبوع او اسبوعين و هذا صعب جدا و يحتاج الى وقت . و بالاخص انني اعاني من ضغوط كبيرة في كتابة الاكواد على الاميل و على الخاص ....
ارجو المعذرة على الطريقة في طرح المشكلة و هي و الله بسبب الضغط و قلة الوقت ....
اذا كانت المصفوفتان متساويتان اصلا فلماذا تقارن بينهما ؟؟؟؟
الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 05:50 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)