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

   

الصورة الرمزية ياسين الحانوتي
ياسين الحانوتي
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2013
المشاركات: 164
نشاط [ ياسين الحانوتي ]
قوة السمعة:
قديم 06-02-2017, 04:40 PM المشاركة 9   
افتراضي



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

اخواني انا عندي نفس المشكلة

وقمت بكتابة مثل هذا الكود وايضا تفعيل ADCON0 ولكن لا يقوم الميكروكنترولر بقراء الدخل بسهولة استخدم مقاومة متغيرة
اقوم بتوصيل الطرف الاول للمقاومة قبل المنظم ( 7805) والطرف الثالث مع الارضي والطرف الثاني داخل للميكرو فهل هذا صحيح ولماذا لا يقوم بقراءة قيمة الدخل الانالوج بسهولة .

ارجو التوضيح وشكرا
أخي أي ميكروكنترولر تستعمل؟
التوصيل أعتقد صحيح لكن تأكد باستعمال افومتر وقم بقياس الفولت على الطرف الثاني.. المفروض يتغير من 0 إلى 5 فولت

وماذا تقصد بتفعيل ADCON0 ؟ ممكن ترفع الكود هنا ..

اعلانات

fawzy73
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2008
المشاركات: 92
نشاط [ fawzy73 ]
قوة السمعة:
قديم 06-02-2017, 11:26 PM المشاركة 10   
افتراضي


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

اخي العزيز انا استخدم PIC12F675
تمام البرنامج يعمل علي برنامج البروتيس ولكن في الواقع يوجد بعض المشاكل وبخاصة في قياس الفولت
وقمت بتوصيل المقاومة المتغير قبل المنظم واقوم بتحديد قيمة الفولت الداخل للميكروكنترولر .

اسف علي الاطالة اما بالنسبة ADCON0 هو ريجيستر يتحكم في ADC كما في الصورة

مع الريجيستر ANSEL
والكود انا كتب التعريفات الخاصة بـ ADC في FUNCTION منفصلة

void InitADC()
{
ANSEL = 0X10; //CLEAR PIN SELECTION BITS
TRISIO = 0X11; //GP3 INPUT, GP0 INPUT AND SEST ALL OUTPUT
ADCON0 = 0X81; //TURN ON THE A/D CONVERTER
CMCON = 0X07; //OFF THE COMPARTOR,PINS ARE AVAILABLE OF ADC
VRCON = 0X00; //OFF THE VOLTAGE REFERENCE FOR COMPARATOR

}
هذا هو كود تعريف الخاص بــ ADC الذي قمت بستخدامه

وفي النهاية لي سؤال اخر
ما هو الفرق الجوهري بي
ADC_Get_Sample(2);
و
ADC_Read(2);
وشكر جزيلا واسف علي ا لاطالة


التعديل الأخير تم بواسطة : fawzy73 بتاريخ 06-02-2017 الساعة 11:29 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية ياسين الحانوتي
ياسين الحانوتي
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2013
المشاركات: 164
نشاط [ ياسين الحانوتي ]
قوة السمعة:
قديم 09-02-2017, 08:59 PM المشاركة 11   
افتراضي


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

اخي العزيز انا استخدم PIC12F675
تمام البرنامج يعمل علي برنامج البروتيس ولكن في الواقع يوجد بعض المشاكل وبخاصة في قياس الفولت
وقمت بتوصيل المقاومة المتغير قبل المنظم واقوم بتحديد قيمة الفولت الداخل للميكروكنترولر .

اسف علي الاطالة اما بالنسبة ADCON0 هو ريجيستر يتحكم في ADC كما في الصورة

مع الريجيستر ANSEL
والكود انا كتب التعريفات الخاصة بـ ADC في FUNCTION منفصلة

void InitADC()
{
ANSEL = 0X10; //CLEAR PIN SELECTION BITS
TRISIO = 0X11; //GP3 INPUT, GP0 INPUT AND SEST ALL OUTPUT
ADCON0 = 0X81; //TURN ON THE A/D CONVERTER
CMCON = 0X07; //OFF THE COMPARTOR,PINS ARE AVAILABLE OF ADC
VRCON = 0X00; //OFF THE VOLTAGE REFERENCE FOR COMPARATOR

}
هذا هو كود تعريف الخاص بــ ADC الذي قمت بستخدامه

وفي النهاية لي سؤال اخر
ما هو الفرق الجوهري بي
ADC_Get_Sample(2);
و
ADC_Read(2);
وشكر جزيلا واسف علي ا لاطالة

أخي وضعت 10001 في trisio هذا يعني gp4 مدخل وليس gp3
ولاحظت في السجل ansel لم تظبط تشغيل أي مدخل كمحول اشارة! ..
أفضل أن تستخدم بعد كل هذا دالة adc_init حتى تضمن عدم وجود أي خطأ.. وحتى لو أردت تحديد تردد عمل المحول بنفسك تضيف
كود:
ANSEL=0b01010001;
كي تضبط تردد عمل المحول منخفض مثلا (4us) .. راجع ذلك في الداتاشيت
ثم بعد ذلك تستخدم في كل مرة الدالة adc_get_sample

الفرق بينهما أن adc_read لا تحتاج adc_init حيث تقوم ضمنيا بتعريف المحول في كل مرة، وهذا يأخد وقت ,, في العمليات المتكررة ينصح باستخدام adc_get_sample

آسف عل التأخير,, بالتوفيق



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