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

   

spark87
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2010
المشاركات: 73
نشاط [ spark87 ]
قوة السمعة:
قديم 13-10-2012, 01:46 AM المشاركة 57   
افتراضي




وهذا رابط لكود الارسال والاستقبال
من خلال البك 16f84a به كود الارسال والاستقبال والمحاكاة

http://www.4shared.com/rar/6XAbVmmZ/...e_16f84a.html?

بالنسبة لكود الارسال فى هذا البك 16f84a فهو طريقة جديدة للارسال
لاننا كما نعلم لا يوجد موديول لل PMW فى هذا البك
لذلك قمت بعمل موجة حاملة بتردد 38 كيلوا هرتز
والعمل عليها بطريقة برمجية

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

اعلانات

الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 13-10-2012, 06:56 AM المشاركة 58   
افتراضي


بسم الله الرحمن الرحيم

شكرا جزيلا لك بارك الله فيك

بالنسبة للتغير فهو ليس بالكثير

اما ما اتلكم عنة فهو خاص بالمرسل وهو كيفية صنع اشارة مثل موديول PWM
ولكن بطريقة برمجية

هل هذا ما تريد شرحة ام ان هناك شىء اخر

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

spark87
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2010
المشاركات: 73
نشاط [ spark87 ]
قوة السمعة:
قديم 13-10-2012, 08:34 PM المشاركة 59   
افتراضي


بسم الله الرحمن الرحيم

شكرا جزيلا لك بارك الله فيك

بالنسبة للتغير فهو ليس بالكثير

اما ما اتلكم عنة فهو خاص بالمرسل وهو كيفية صنع اشارة مثل موديول PWM
ولكن بطريقة برمجية

هل هذا ما تريد شرحة ام ان هناك شىء اخر
نعم ان امكن ااستاذ هذا ما اريدك ان تشرحه

تحياتي


الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 14-10-2012, 05:54 AM المشاركة 60   
افتراضي


بسم الله الرحمن الرحيم

حاضر ان شاء الله هشرحوة انتظرنى قريبا ان شاء الله


الصورة الرمزية Semmoor
Semmoor
:: مهندس متميز ::
تاريخ التسجيل: Oct 2011
المشاركات: 300
نشاط [ Semmoor ]
قوة السمعة:
قديم 14-10-2012, 05:05 PM المشاركة 61   
افتراضي


السلام عليكم funky112233 كيف حالك انشاءالله تكون بخير.

عندي سؤال بخصوص ليد الارسال حق الاشعة تحت الحمراء هل يمكن توصيله بالمتحكم مباشرة ولا يجب وضع مقاومة او منظم جهد؟؟

لأن على حسب ما قرأت ان الليد بيرسل عندما يطبق عليه 1.6 فولت والمتحكم يخرج فولت بقدار 5 فولت!!!


الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 14-10-2012, 08:18 PM المشاركة 62   
افتراضي


بسم الله الرحمن الرحيم

اخى Semmoor

نعم يعمل ولكن هناك اشياء يجب ان تعلمها عن متى نوصل ترانسيستور ومتى نوصل مقاومة

وهذا الكلام تم شرحة فى الجزء الاول الخاص بالمرسل

ولا داعى لتكرار نفس الكلام

بالتوفيق ان شاء الله


النعمي
:: مهندس جيد ::
تاريخ التسجيل: Apr 2007
المشاركات: 206
نشاط [ النعمي ]
قوة السمعة:
قديم 15-10-2012, 07:37 AM المشاركة 63   
افتراضي


بالنسبة للكود بتاعك مشاء الله تمام ماعدا جزئية

كود:
PWM1_Set_Duty(255);

يجب ان تكون

كود:
PWM1_Set_Duty(35);

وهذا ما تم شرحة فى جزء المرسل راجع الشروحات لتعلم لماذا ؟
راجعت الشرح ووجدت هذآ ..


كود:
char x;

void main() {
CMCON=0x07;TRISA=255;TRISB=0;portb=0;
PWM1_Init(38000);
PWM1_Set_Duty(255);


  while (1) {
  if (porta.f0==0){
      PWM1_Start();delay_us(2400);PWM1_Stop();                    //button 1
      delay_us(600);
      for(x=0;x<7;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600); }

      PWM1_Start();delay_us(1200);PWM1_Stop();
        delay_us(600);
         for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
      delay_ms(250);
        }
         }
        }
فى البدء عرفت متغير اسمة X
وبعد ذلك قمت بتحديد الخرج والدخل

ثم جعل PWM يعمل على تردد 38khz وتكتب 38000 كما تروها
بكل هذه البساطة سوف يخرج الميكرو اشارة بتردد 38khz
وبعد ذلك جعلت النبضات تخرج 5 فولت وليس اقل
هل هي الخمسة فولت ؟!



ولكن الطريقة الى كتبت بيها الكود زى الى انا عامل الكود بيها
لكن انا كنت عامل الطريقة دى للتوضيح فقط علشان ميبقاش الكود معقد شوية
ما هي الطريقة الي عملت بيها ؟! يعني قصدك هنآ التنظيم والترتيب فقط ؟!



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



وباذن الله تصبح محترف وتقدر تتعامل مع اى ريموت مهما كان

وكمان تصنع بروتوكلات خاصة بيك

بالتوفيق ان شاء الله
الله يبآرك فيك يآ استآذي فعلا تعلمت منك اشياء كثييرهـ , لاتنسى


الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 17-10-2012, 08:23 AM المشاركة 64   
افتراضي


بسم الله الرحمن الرحيم

اخى spark87

الامر بسيط ان شاء الله وما قمت به هو ببساطة طريقة برمجية للتعويض عن موديول PWM

وهذا بالطبع فى كود الارسال لان البك 16f84a لا يوجد به هذا الموديول
لكى يولد لنا بنضات او موجة بتردد مثلا 38 كيلوا هرتز وهو ما نحتاجة

وهى ببساطة عمل تكرار للنبضات 1 ثم 0 وهكذا بسرعه معينة
وهى تعطينا التردد المطلوب على شكل نبضات

ومن خلال التحكم فى امر الانتظار بين 1 ثم 0 نقدر نتحكم فى عرض النبضات

كما ترى هنا

كود:
unsigned char x,i;
void cari(){
          portb.f0=1;
          delay_us(13);
          portb.f0=0;
          delay_us(13);

}
هذه هى الدالة انشاء الموجة او التردد الى احنا محتاجينة

وكما تعلم ان الزمن الدورى للتردد هو مقلوبة اى قسمة 1 علي التردد

وهكذا يمكننا ايجاد الزمن اللازم لعمل تردد نريدة

وللتحكم فى عرض النبضة فى اطار التردد الذى نريدة

هذا يعنى اننا مثلا فى المثال بتعنا هنا تردد 38 كيلوا هرتز

بالحسابات نجد ان الزمن الدورى هو 26 ميكرو ثانية

اذن يجب ان نقوم باخراج 5 فولت لزمن محدد ثم 0 فولت لزمن محدد ايضا
على الا يزيد مجموع الزمن للخرجين دول عن 26 مايكرو ثانية

ولهذا تجدنى اقوم باخراج 5 فولت فى الدالة ثم انتظار 13 ميكرو ثانية
ثم اخراج 0 فولت ثم انتظار 13 يمكرو ثانية

وهذا يعطينا تساوى فى عرض النبضات

اى فى مكتبة الميكروسى الخاصة بالمديول PWM

هذا يعنى انك وضعت الرقم 127 داخل الامر

كود:
PWM1_Set_Duty(127);
اى 50% من عرض النبضات

فاذا اردت مثلا ان تجعل عرض النبضات يساوى 100% او الرقم 255 فى المكتبة

فهذا يعنى انك سوف تقوم بتغير امر الانتظار الذى يلى الخرج 5 فولت
الى 24 مايكرو ثانية تقريبا

وتغير امر الانتظار الذى يلى الخرج 0 فولت الى 2 مايكرو ثانية
وهكذا

على الا يخرج الزمن عن 26 مايكرو ثانية وهو الرقم الخاص بالتردد 38 كيوا هرتز

وهكذاااا

ولكن هذه الطريقة تعطل حركة الميكرو اى ان الميكرو لن يفعل شىء سوا
التعامل مع الموجة

اما فى الميكروهات الموجود بها موديول فيمكنك فعل اشياء كثيرة اثناء تشغيل الموجة بشكل طبيعى

وهناك حل اخر
ولكن عن طريق التايمر
ابحث عنة للبشمهندس اشرف الخطيب

.................................................. .................................................. .........

اخى النعمي

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

..................................

نعم اقصد التنظيم فهناك طرق لتسهيل وتجميل شكل الكود وجعلة احترافى
وهذا مفيد لعدم الوقوع فى المشاكل التوهان وكثرة سطور الكود وهكذاا

.................................

بالنسبة لنسخة المايكرو سى فتفضل

http://www.qariya.info/vb/showthread.php?t=114277

وهى النسخة التى استخدمها

بالتوفيق لك ولنا جميعا نا شاء الله
.................................................. .................................................. ..........


التعديل الأخير تم بواسطة : ماجد عباس محمد بتاريخ 28-10-2018 الساعة 06:49 PM السبب: تعديل الرابط للموقع الجديد


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