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

   

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



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

اعلانات

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


ربما سوف تتعب معي قليلا ..
الجدول الثاني ليس مفهوم تماما .
اسف اخى حيدر انا لم اشرح لك الرموز
A == ان الدخل تماثلى عبر البين(pin) المحدد
D == ان الدخل رقمى عبر البين(pin) المحدد
Vref+ == الجهد المرجعى الموجب
Vref- == الجهد المرجعى السالب
بالنسبة للتحويل من تماثلى الى رقمى ففيه يتم تقسيم قيمة الجهد الى عدد من ال STEPs حسب دقة التحويل وبمان ان الADC هنا له 10 بت فان عدد الخطوات ستكون 1024 من 0__1023 يتم حساب الخطوة من المعادلة التالية
( الجهد المرجعى الموجب- الجهد المرجعى السالب)/(0-1023)
الان نعود للجدول السابق
فى الصف الاول عند اختيار 000 : نجد ان كل الخانات A وبالتالى سيكون الدخل تماثلى فقط والجهد المرجعى الموجب هو VDD اى مصدر تغذية البيك(5 فولت) والجهد المرجعى السالب هو Vss اى (0 فولت) اذا عوضنا فى القانون السابق سنجد ان الخطوة تساوى 4.88 ميلى فولت وبالتالى اذا اردنا معرفة القيم الرقمية المقابلة للجهد مثلا 3 فولت نقسم 3000/4.88 اى تقريبا 614 وهكذا.
طيب ماذا سنستفيد من الجهدين المرجعيين السالب والموجب ؟
الجواب
اولا
كما يظهر من المعادلة فانه كلما زادت قيمة الخطوة قلت دقة عملية التحويل .
فلنفرض اننى اريد قياس قيم جهد من 0 الى 1 فولت فقط لا تتعدى هذا المدى
ولكنى اريدها بدقة 1ملى فولت كيف احل هذا المشكلة ؟
الحل تجعل الجهد المرجعى Vref =1 فولت وهذا يتم بعدة خطوات
1- نختار الصف الثانى من الجدول 0001 وبالتالى ستكون كل مداخل AN0-AN7 تماثلية باستثناء المدخل AN3 وفيه يتم توصيل الجهد المرجعى الوجب.
اذن تكون قيمة ADCON1 =1000 0001 ;
2-سيتوجب عليك توفير جهد مقدار 1 فولت وتوصيله بالطرف AN3.
3-نقوم بحساب قيمة الخطوة سيكون تقريبا 1 ميلى فولت.
طيب ماذا اذا اردنا ان نقيس جهود بين -5 الى 5 فولت ببساطة نجعل الجهد المرجعى يساوى -5 ويتم توصيله بالطرف AN2 ونختار صف مناسب وليكن الثامن تكون ADCON1=1000 1000 وتوفر مصدر جهد -5 فولت وتوصله بالطرف AN2 .
لاحظ ان الجدول يوفر لك خيارات كثيرة وواسعة ومنها ان تستخدم بعض المداخل تماثلية والاخرى رقمية كل ما عليك هو ان تختار الصف المناسب و تاخذ القيمة المناظرة له.
اسف على الاطالة اتمنى ان تكون الصورة قد اتضحت الان.
وبالتوفيق



اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

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


نعم اخي احمد الصورة واضحة الان .
شكرا جزيلا لك و بارك الله فيك .


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


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

ال multiplexer:

تعتمد هذه الطريقة على دائرة ال multiplexer
يتكون ال multiplexer من ثلاث منافذ:
1-منفذ الدخل .
2-منفذ التحكم.
3-منفذ الخرج.
الدخل: ويقوم باستقبال الجهود المراد قياسها بال ADC. ويكون عدد المداخل غالبا اما 8 كما فى الدائرة المتكاملة 4051,او 16 كمافى 4067.
التحكم : ويتم عن طريقه التحكم فى اختيار احد المداخل . ويكون عدد اطراف التحكم اما 3 كما 4051 او 4 كما فى 4067.
سنستخدم الدائرة المتكاملة(74HC4051)
وهنا الداتا شيت.
وطريقة التحكم واضحة جدا فمثلا اذا اردنا قياس الجهد المتصل بطرف الدخل رقم 1. فاننا نرسل 000 عبر اطراف التحكم . و 001 بالنسبة للطرف 2 وهكذا.
دائر البروتس للتجربة


لاحظ اننا استخدمنا طرف واحد من اطراف ال ADC وبعد هذه الزيادة اصبح لدينا 15 مدخلا تماثليا. ويمكن زيادة هذا العدد بزيادة عدد ال 4051


التعديل الأخير تم بواسطة : robota بتاريخ 05-02-2010 الساعة 04:15 PM

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


اليكم الكود بالميكروسى.
كود:
float volt; int i,adc; char txt[13]; void main() { ADCON1 = 0x80; // Configure analog inputs and Vref TRISA = 0xFF; // PORTA is input portb=0; 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(;;) { for(i=0;i<8;i++) { lcd_out(1,1,"channel ") ; lcd_chr_cp(i+48); portb=i; adc= Adc_Read(0); volt=(adc*5000.0)/1023.0 ; volt=volt/1000.0 ; floattostr(volt,txt) ; lcd_out(2,1,txt) ; lcd_out_cp(" Volt") ; delay_ms(1000) ; Lcd_Cmd(Lcd_CLEAR); } volt=0; delay_ms(200); } }
وهنا ملفات المشروع كاملة.
والله الموفق لكل خير.


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


اخي احمد اين هي المداخل هنا ؟
هي المداخل في الحالة الاعتيادية عددها 8 . و المفروض اننا نزيدها الى اكثر من هذا العدد .
بالاضافة الى ان مدخلات multiplexer هي رقمية عادة . فهل يمكن ادخال قيم تماثلية عليه ؟ و هل يفرق بينها ؟
ارجو الافادة مع جزيل الشكر .


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


مساء الخير اخى حيدر
نعم نحن قمنا بزيادة المداخل فاصبحت 15 بدلا من 8 (8 مداخل ال multiplexer+ 7 المتبقى فى البيك) فيكون المجوع 15.
كل ما فى الامر اننى استخدمت 8 وتركت الباقى حرا.
اما بالنسبة multiplexer فهناك نوعان digital و analog والذى استخدمته هو ال analog مثل 74hc4051 .
ويمكن ان تجرب الدائرة التى قمت بارفاقها و قم بتغيير الجهد ولاحظ النتيجة على الشاشة.


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


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



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