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

   

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 22-09-2014, 05:36 PM المشاركة 57   
افتراضي



كود:
void send_data(char num_load,char state_load_run)
{
 GIE_bit=0;
 EEPROM_Write(0,100);
 for(x=0;x<8;x++)EEPROM_Write(x+1,state_flag[x]);

 if(num_load!=255)ic_74hc595(num_load,state_load_run,&load);
 dat[0]=1;
 dat[1]=0;
 dat[2]= all_load;
 delay_ms(250);
 RS485Slave_Send(dat,3);
 RS485Slave_Send(dat,3);

 GIE_bit=1;
}
هذه داله تقوم بعده مهام
1- يتم خزن حاله الاحمال في ايبروم وحيث يخزن في العنوان 0 رقم 100 طبعا رقم عشوائي لدلاله على انه توجد بيانات مخزونه في ايبروم
2- تقوم بتشغيل الاحمال وهذا هو كود
كود:
 if(num_load!=255)ic_74hc595(num_load,state_load_run,&load);
3- تجهيز بيانات مصفوفه dat تمهيدا لاعاده ارسالها الى ماستر الذي بدوره يرسلها الى كل slaves المرتبطه معه لغرض التحديث حاله الاحمال
تلاحظ
كود:
dat[0]=1;
 dat[1]=0;
رقم 1 يمثل كود [dat[1] , dat[0 يمثلان كود خاصه بالغرفه رقم 1 حيث أستفاد من هذا الكود في ماستر
اما [dat[2 يتم وضع فيه قيمه حاله الحمل وبالطبع هو يتكون من 8 بت لكل بت يمثل حمل

هذا كود هو لكود الغرفه رقم 1 وهو نفسه لغرفه رقم 2 و ....
الاختلاف الوحيد في
1- أعطاء عنوان مختلف لكل الغرفه لاننا نتعامل مع البروتوكل RS485
2- [dat[1] , dat[0 هذه قيم تتغير لاننا نعطي لكل غرفه شفره معينه
تحياتي

اعلانات

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 22-09-2014, 05:51 PM المشاركة 58   
افتراضي كود ريموت كونترول المرسل


تعريف سويجات
كود:
sbit IR_send at RB3_bit;
sbit IR_send_dir at TRISB3_bit;

sbit sh_cp at RB5_bit;
sbit sh_cp_dir at TRISB5_bit;
sbit ds at RB6_bit;
sbit ds_dir at TRISB6_bit;
sbit st_cp at RB7_bit;
sbit st_cp_dir at TRISB7_bit;

sbit sw_load1 at RA0_bit;
sbit sw_load2 at RA1_bit;
sbit sw_load3 at RA2_bit;
sbit sw_load4 at RA3_bit;
sbit sw_load5 at RA4_bit;
sbit sw_load6 at RA5_bit;
sbit sw_load7 at RA6_bit;
sbit sw_load8 at RA7_bit;
sbit sw_All_load_on at RB0_bit;
sbit sw_All_load_off at RB1_bit;
sbit sw_no_room at RB2_bit;

=========================================
تهيئه مايكروكنترولر وتعريف مداخل ومخارج وضبط تردد pwm على 38khz
كود:
 CMCON=0x07;
   TRISA=255;
   TRISB=7;
   portb=0;
   IR_send_dir=0;
   IR_send=0;
   PWM1_Init(38000);
   PWM1_Set_Duty(127);
==========================================
اختيار اي غرفه نريد التحكم بها حيث لدينا متغيرين الاول cont وهو مهم في توليد الشفره لكل الغرفه والثاني rooms وهو متغير لغرض عرض رقم الغرفه على سفن سكمنت


كود:
if (sw_no_room==0)
                             {
                              cont +=10;
                              rooms++;
                              if(cont==30){cont=0;rooms=0;}
                              for (x=0;x<8;x++)
                                             {
                                              if(Check_bit(segment[rooms],7-x))DS=1;
                                               else DS=0;
                                               sh_cp = 0;  sh_cp = 1;
                                             }
                              st_cp=0; st_cp=1;
                              delay_ms(250);
                              
                             }
=========================================
عند الضغط على اي سويج فانه سوف يولد شفره معينه ترسل الى مستقبل ليتم فكها
كود:
if (sw_load1==0)
                            {
                              send_data(address_dvice,1+cont);//11 21 31 ..

                            }
            if (sw_load2==0)
                            {
                              send_data(address_dvice,2+cont);//12 22 32 ..
                            }
            if (sw_load3==0)
                            {
                              send_data(address_dvice,3+cont);//13 23 33 ..
                            }
            if (sw_load4==0)
                            {
                              send_data(address_dvice,4+cont);//14 24 34 ..
                            }
            if (sw_load5==0)
                            {
                              send_data(address_dvice,5+cont);//15 25 35 ..
                            }
            if (sw_load6==0)
                            {
                              send_data(address_dvice,6+cont);//16 26 36..
                            }
            if (sw_load7==0)
                            {
                              send_data(address_dvice,7+cont);//17 27 37  ..
                            }
            if (sw_load8==0)
                            {
                              send_data(address_dvice,8+cont);//18 28 38..
                            }
            if (sw_All_load_on==0)
                            {
                              send_data(address_dvice,101+cont);//111 121 131 ..
                            }
            if (sw_All_load_off==0)
                            {
                              send_data(address_dvice,100+cont);//110 120 130 ..
                            }
على سبيل مثال
كود:
 if (sw_load1==0)
                            {
                              send_data(address_dvice,1+cont);//11 21 31 ..

                            }
حيث اذا كنا مختارين غرفه رقم 1 فأن متغير count=10 وبتالي راح يرسل 11 واذا كانت غرفه رقم 2 فأن count=20 وبتالي راح يرسل 21 واذا كانت غرفه رقم 3 راح يرسل 31 وهكذ
طبعا يمكنك خلق اي كود ولكن عليك وضع جدول معين تعرف كل كود بماذا يقابله وبتالي تلاحظ قللت الكود عن طريق متغير count فكل 10 تمثل غرفه معينه لان كل غرفه لها 8 مخارج اذن احتاج 8 اكواد لغرفه واحده

ومن ثم نقوم بأرسال الشفره وفق البرتوكول سوني وحسب داله
كود:
send_data

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

ادريس محمد عزيز
:: مهندس ::
تاريخ التسجيل: Oct 2011
المشاركات: 3
نشاط [ ادريس محمد عزيز ]
قوة السمعة:
قديم 30-09-2014, 10:03 PM المشاركة 59   
افتراضي


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


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 01-10-2014, 04:13 PM المشاركة 60   
افتراضي


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


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 09-04-2015, 05:55 PM المشاركة 61   
افتراضي


السلام عليكم
تم أضافه ملفات الهاردوير ...
http://www.qariya.info/vb/showthread...828#post947828
تحياتي



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