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

أدوات الموضوع

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 03-02-2017, 03:09 AM المشاركة 1   
افتراضي برجاء المساعدة في التعامل مع محول الإشارة ADC فى PIC12F675 Twitter FaceBook Google+



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


برجاء المساعدة في التعامل مع محول الإشارة ADC فى pic12f675

اللغة المستخدمه ميكرو سى برو فور بيك

اريد معرفة طريقة تعريف محول الإشارة على البن رقم GP0 وقرائة قيمة محول الإشارة ووضعها في متغير ..

واعدادت البك ...
هي

استخدام الرجل رقم GP0 في قرأة قيمة محول الإشارة adc
تفعيل الهزاز الداخلى للبك بسرعة 4MH مع الحفاظ علي باقي الأرجل ك خرك
الغاء mclr وهو رجل لعمل الرستارت ... واستخدامها ك دخل .. وهي البن رقم GP3

للتأكيد ..

1_ استخدام البن GP0 في قرأة قيمة محول الإشارة
2 _ جعل كل من البن رقم GP1 _ GP2 _ GP4_ GP5_ ك خرج ليتم توصيلهم مع اليدات ..
3 _ الغاء طرف عمل الريستارت mclr .. وهو البن رقم GP3.. واستخدامة ك دخل ... اربط مفتاح علية

4 _ استخدام الهزاز الداخلي للبك .. بسرعة 4MH

وشكراااا جزيلا للجميع
بارك الله فيكم جميعااااااا...



التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 03-02-2017 الساعة 03:17 AM
اعلانات

الصورة الرمزية ياسين الحانوتي
ياسين الحانوتي
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2013
المشاركات: 164
نشاط [ ياسين الحانوتي ]
قوة السمعة:0
قديم 03-02-2017, 09:04 AM المشاركة 2   
افتراضي


وعليكم السلام
إليك هذا الكود البسيط .
كود:
unsigned int var;

void main() {
   CMCON = 7;
   TRISIO =9;
   ansel.b0 = 1;

   adc_init();
   gpio=0;

    while(1) {

          var = adc_get_sample(0) ;
gpio = var >> 4;
    }
}
(السطر الأول يلغي عمل المقارن)

في السطر الثاني طبعا نجعل gp0 و gp3 كمداخل ..
تمكين المداخل التماثلية (ANX ) يتم عبر الأربع بتات الأولى يسارا في السجل ansel ..كما في الكود تم تمكين المدخل (AN0) .. مثلا لو أردت استخدام ال (AN2) ستضع 1 كذلك في البت الثالث من هذا السجل ..

تعليمة adc_init تتم مرة واحدة.. لتبدأ تشغيل المحول
ثم تصبح الدالة adc_get_sample(0) جاهزة ,, وتعود ب 10 بت تمثل قيمة الجهد على المدخل التماثلي AN0 (أو أي قناة حسب الرقم لي ترسل لها) ..
طبعا النتيجة تكون بالنسبة لجهد التغذية .. إلا إذا ,وضعت 1 في البت (6) VCFG من المسجل ADCON0 حينها يصبح المرجع هو الجهد الخارجي على الطرف Vreff

لا تنسى ضبط إعدادات الميكروسي، في المذبذب اختر INTOSC و GP5 و GP4 كلاهما I/O
MCLR اجعله disabled ..
واضبط التردد 4 MHz كما تريد
بالتوفيق..


التعديل الأخير تم بواسطة : ياسين الحانوتي بتاريخ 03-02-2017 الساعة 09:39 AM
احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً عبدالله حجازى ( شكر العضو على هذه المشاركة )
اعجاب عبدالله حجازى ( أعجبته المشاركة )
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 03-02-2017, 09:22 AM المشاركة 3   
افتراضي


وعليكم السلام
إليك هذا الكود البسيط .
كود:
unsigned int var;

void main() {
   CMCON = 7;
   TRISIO =9;
   ansel:b0 = 1;

   adc_init();
   gpio=0;

    while(1) {

          var = adc_get_sample(0) ;
gpio = var >> 4;
    }
}
(السطر الأول يلغي عمل المقارن)

في السطر الثاني طبعا نجعل gp0 و gp3 كمداخل ..
تمكين المداخل التماثلية (ANX ) يتم عبر الأربع بتات الأولى يسارا في السجل ansel ..كما في الكود تم تمكين المدخل (AN0) .. مثلا لو أردت استخدام ال (AN2) ستضع 1 كذلك في البت الثالث من هذا السجل ..

تعليمة adc_init تتم مرة واحدة.. لتبدأ تشغيل المحول
ثم تصبح الدالة adc_get_sample(0) جاهزة ,, وتعود ب 10 بت تمثل قيمة الجهد على المدخل التماثلي AN0 (أو أي قناة حسب الرقم لي ترسل لها) ..
طبعا النتيجة تكون بالنسبة لجهد التغذية .. إلا إذا ,وضعت 1 في البت (6) VCFG من المسجل ADCON0 حينها يصبح المرجع هو الجهد الخارجي على الطرف Vreff

لا تنسى ضبط إعدادات الميكروسي، في المذبذب اختر INTOSC و GP5 و GP4 كلاهما I/O
MCLR اجعله disabled ..
واضبط التردد 4 MHz كما تريد
بالتوفيق..



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



سيتم التجربة واوافيك بالنتائج ..


تحياتي لك ومتشكر جدااااا

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 0 اعجاب
شكراً ياسين الحانوتي ( شكر العضو على هذه المشاركة )

الصورة الرمزية ياسين الحانوتي
ياسين الحانوتي
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2013
المشاركات: 164
نشاط [ ياسين الحانوتي ]
قوة السمعة:0
قديم 03-02-2017, 09:38 AM المشاركة 4   
افتراضي


فيه خطأ بسيط تم التعديل
ansel.b0 = 1;
وليس
ansel:b0 = 1;

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً عبدالله حجازى ( شكر العضو على هذه المشاركة )
اعجاب عبدالله حجازى ( أعجبته المشاركة )

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 04-02-2017, 10:33 PM المشاركة 5   
افتراضي اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا وزدنا علما


للأ سف الكود يوجد به اخطاء ..



مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 05-02-2017, 05:16 AM المشاركة 6   
sun


هذا الخطأ يظهر عندما تكون مكتبة ما و هنا هى مكتبة adc غير مدرجة بالبرنامج , اذهب الى library manager على الحافة اليمنى للبرنامج و اختار المكتبة .

ان شاء الله تحل.

احصائية الشكر والاعجاب - 2 شكراً, 0 عدم اعجاب, 2 اعجاب
شكراً عبدالله حجازى, ياسين الحانوتي ( شكر العضو على هذه المشاركة )
اعجاب عبدالله حجازى, ياسين الحانوتي ( أعجبته المشاركة )

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 06-02-2017, 02:57 AM المشاركة 7   
افتراضي اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا وزدنا علما


هذا الخطأ يظهر عندما تكون مكتبة ما و هنا هى مكتبة adc غير مدرجة بالبرنامج , اذهب الى library manager على الحافة اليمنى للبرنامج و اختار المكتبة .

ان شاء الله تحل.
بارك الله فيك أخي الكريم فعلا .. كانت مكتبة .. ADC متوقفه .. من القائمه وتم تفعيلها .. وانحلت المشكلة ...

تحياتي لك ..

وبارك الله فيك ونفع بك ..


fawzy73
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2008
المشاركات: 93
نشاط [ fawzy73 ]
قوة السمعة:0
قديم 06-02-2017, 05:40 AM المشاركة 8   
افتراضي


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

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

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

ارجو التوضيح وشكرا


التعديل الأخير تم بواسطة : fawzy73 بتاريخ 06-02-2017 الساعة 05:43 AM
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


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

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025