قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 895
نشاط [ robota ]
قوة السمعة:
قديم 01-02-2010, 09:39 AM المشاركة 25   
افتراضي



قبل ان ابدأ بشرح الطريقة الرابعة احب ان انبه الى نقطة مهمة وهى ان طريقة استخدام مسجلات الازاحة هى اكثر الطرق استخداما لانها تمتلك موثوقية عالية ويُنصح بها دائما فى الانظمة الحساسة والتى لاتحتمل الاخطاء.
اما الطريقتين القادمتين فهى طرق عملية نوعا ما لكن نسبة الخطا فيها مرتفعة لكنها تؤدى المهمة على كل حال

اعلانات

robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 895
نشاط [ robota ]
قوة السمعة:
قديم 01-02-2010, 10:50 AM المشاركة 26   
افتراضي


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

قبل ان نبدأ فى معرفة حساب قيم المقاومات يجب اختيار قيمة للمقاومة R1 المتصلة مع مصدر الجهد وليكن 10K .
نظريا يمكننا القول انه بهذه الطريقة يمكن اضافة عدد لا نهائى من المفاتيح وتصيلها بطرف واحد فقط من المايكرو.
لكن مهلا الامر ليس بهذه البساطة, هناك عدة اشياء تحول دون ذلك :
1- دقة الADC : فالADC ذو ال8 بت سيتحمل عدد اقل من المفاتيح من ذو ال10 بت والِADC ذو 12 بت افضل منهما وهكذا
. وبما ان معظم انواع البيك يكون ال ADC بدقة 10 بت . ستعتمد الحسابات القادمة على ذلك . وايضا الجهد المرجعى الخاص بالADC هو 5 Volt .
حسب معطيات الADC نستنتج انه يمكننا تمييز 1023 (1-(10^2)) قيمة جهد وبالتالى يمكننا توصيل 1023 مفتاح!!! . لاحظ ان عدد المفاتيح انخفض من عدد لا نهائى الى 1023 مفتاح وهذا عدد كبير ومقبول ولكن..
2-المقاومات :  
وهى المشكل الاكبر حيث اننا نحتاج الى مقاومات بحساسية 0% او اكثر قليلا وهذه اما غير متوفرة او لا يمكن الحصول اضف الى ذلك ان قيم المقاومات التى تمليها علينا الحسابات قد لا تتوفر . وبهذا ينخفض الرقم الى اقل من 1023 بكثيير


التعديل الأخير تم بواسطة : robota بتاريخ 01-02-2010 الساعة 11:15 AM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 895
نشاط [ robota ]
قوة السمعة:
قديم 01-02-2010, 11:34 AM المشاركة 27   
افتراضي


حساب قيم المقاومات :
1- قم باختيار مقاومات متفاوتة فى القيم بعدد المفاتيح المطلوبة .
2- يفضل استخدام المقاومات ذات السماحية (Tolerance) المنخفضة.
3- قم بحساب قيم الجهود التى يفترض ان تصل الى المايكرو عند الضغط على كل مفتاح والافضل ان تقيس هذه الجهود باستخدام المايكرو نفسه ثم عرضها على شاشة lcd و تسجيل هذه القيم.
4- كتابة الكود بناءا على القيم المتحصل عليها.


robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 895
نشاط [ robota ]
قوة السمعة:
قديم 01-02-2010, 12:44 PM المشاركة 28   
افتراضي تابع للطريقة الرابعة


هذا كود مناسب بالميكروسى بعد اختيار قيم مقاومات كالتالى
100,600,1100,1600,2300,3500,4500,6000 كل المقاومات بالاوم
كود:
int volt; char txt[10]; void main() { ADCON1 = 0x80; // Configure analog inputs and Vref TRISA = 0xFF; // PORTA is input TRISB=0; lcd_init(&portd); Lcd_Cmd(Lcd_CLEAR); Lcd_Cmd(Lcd_CURSOR_OFF); lcd_out(1,1,"hello") ; delay_ms(1000); Lcd_Cmd(Lcd_CLEAR); for(;;) { volt= Adc_Read(0); if(volt>910&&volt<950) lcd_out_cp("1"); if(volt>619&&volt<669) lcd_out_cp("2"); if(volt>467&&volt<517) lcd_out_cp("3"); if(volt>373&&volt<413) lcd_out_cp("4"); if(volt>290&&volt<330) lcd_out_cp("5"); if(volt>207&&volt<247) lcd_out_cp("6"); if(volt>166&&volt<206) lcd_out_cp("7"); if(volt>126&&volt<166) lcd_out_cp("8"); delay_ms(150); } }
ويمكن تحميل ملفات المشروع كاملة من هنا


التعديل الأخير تم بواسطة : robota بتاريخ 01-02-2010 الساعة 12:51 PM

robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 895
نشاط [ robota ]
قوة السمعة:
قديم 01-02-2010, 12:55 PM المشاركة 29   
افتراضي


هناك طريقة اخرى شبيهة بهذا الطريقة سنعرضها فى وقت لاحق ان شاء الله ولكن قبل هذا سنتحدث عن :
::::::

زيادة المداخل التماثلية

::::::


قريبا ان شاء الله.


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 01-02-2010, 09:31 PM المشاركة 30   
افتراضي


جهودك مشكورة اخي احمد .. بارك الله فيك .
ارجو توضيح الامر ADCON1 = 0x80; بشيء من التفصيل ما دمت قد تطرقت اليه .و ارجو ان يكون التوضيح بصورة عامة .
مع جزيل الشكر على المجهود الرائع .


robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 895
نشاط [ robota ]
قوة السمعة:
قديم 01-02-2010, 11:32 PM المشاركة 31   
افتراضي


جهودك مشكورة اخي احمد .. بارك الله فيك .
ارجو توضيح الامر ADCON1 = 0x80; بشيء من التفصيل ما دمت قد تطرقت اليه .و ارجو ان يكون التوضيح بصورة عامة .
مع جزيل الشكر على المجهود الرائع .
اهلا بك اخى حيدر اشكرك على كلامك الطيب
اولا انا ادرجت رد على استفسارك بخصوص دالة الاس ارجو ان تكون قد انتبهت له.

المسجل ADCON1 فهو احد المسجلات التى يتم بها التحكم بخصائص البيك
وكما هو واضح من اسمه فهو خاص بالتحكم فى محول الجهد من تماثلى الى رقمى ADC .
ويتكون من ثمانى بتات
البت السابع ADFM يتم فيه تحديد مكان تخزين القيمة الناتجة من عملية التحويل
مع العلم ان القيم الرقمية الناتجة من عملية التحويل يتم تخزينها فى مسجلين هما ADRESH و ADRESL وكل منهما يتكون من 8 بت فيكون المجموع 16 بت ونحن نحتاج فقط ل 10 بت فوظيفة ال ADFM هو تحديد البتات الست الغير مستخدمة .
عندما نضع ADFM=0 فهذا يعنى ان البتات الست الاولى (0-5) من المسجل لن تستخدم .
عندما نضع ADFM=1فهذا يعنى ان البتات الست الاخيرة (2-7) من المسجل لن تستخدم .
اذا كنت ستسخدم الميكروسى فلا تهتم بهذا فالبرنامج هو من سيحدد.
البت السادس ADCS2
يتكامل مع البتين السادس و السابع من المسجل ADCON0. لتحديد المذبذب الذى سيتخدم لاجراء عملية التحويل . حسب الجدول التالى

ايضا اذا كنت ستسخدم الميكروسى فلا تهتم بهذا فالبرنامج هو من سيحدد.
البت الرابع الخامس ليس لهما وظيفة محددة .
من 0-3 وظيفتها تحديد اى المداخل ستكون مدخل رقمى وايها سيكون تماثلى وكذلك تحديد الجهد المرجعى السالب والموجب حسب الجدول التالى

وهذه اهم شى .
طبعا ان اخترت القيمة 80 وتساوى 0000 1000 اى ان البت السابع سيكون 1 وباقى البتات 0 وبالتالى ستكون جميع مداخل ال ADC تماثلية والجهد المرجعى الموجب هو5 فولت والجهد المرجعى السالب هو 0(الارضى) حسب الجدول السابق
والله الموفق.


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 02-02-2010, 12:58 AM المشاركة 32   
افتراضي


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

هذا فيما يخص تعليمة الرفع الى قوة .
و نحن الان في ADCON1



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 07:24 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)