سلامو عليكم
ارجو المساعدة بشدة من اي شخص وخصوصا من
funky112233
لان هو اللي عمل الموضوع اللي بسأل فيه
وجزاك الله خيرا علي العلم الوفير اللي بتقدمهولنا من غير مقابل
انا باختصار شديد شفت الموضوعين اللي حضرتك عملتهم عن التحكم عن بعد
باستخدام ال
IR
وباستخدام ال
RF
وفهمتهم الي حد كبير بفضل الله
بس كنت بحاول أعمل تبسيط ياريت تساعدني فيه
اني اعمل تحكم عن بعد باستخدام ال IR
بس عن طريق الفكرة اللي معمولة في كود ال RF
اللي هي تخصيص عدد نبضات معين لكل سويتش
بدلا من الفكرة المتبعة في كود المستقبل الخاص بال IR
بس مش عارف ليه الدائرة عالبروتس مش شغالة
مش عارف السبب في ان الفكرة اصلا غلط(يارب لأ)؟؟؟
ولا الفكرة صح بس الكود غلط ؟؟؟
ولو كده فانا مش فاهم ليه ال TIMER مش شغال
رغم اني بعمل دالة سويتش عليه زي ماحضرتك عامل
ولا البروتس بقي هو اللي غلط؟؟؟
رغم ان هو هو بالظبط بتاع حضرتك في حالة ال IR
بس انا حطيت ملفات الهكس للمستقبل والمرسل
بعد تطبيق الفكرة دي
وده كود المرسل
char x=0;
void main() {CMCON=0x07;TRISa=255;trisb=0;portb=0;
PWM1_Init(38000);
PWM1_Set_Duty(255);
while(1){
if (PORTA.f0==0){
for(x=0;x<5;x++){PWM1_Start();delay_us(600);PWM1_S top();delay_us(600);}
delay_ms(250);}
if (PORTA.f1==0){
for(x=0;x<6;x++){PWM1_Start();delay_us(600);PWM1_S top();delay_us(600);}
delay_ms(250);}
if (PORTA.f2==0){
for(x=0;x<7;x++){PWM1_Start();delay_us(600);PWM1_S top();delay_us(600);}
delay_ms(250);}
if (PORTA.f3==0){
for(x=0;x<8;x++){PWM1_Start();delay_us(600);PWM1_S top();delay_us(600);}
delay_ms(250);}
}
}
وده كود المستقبل
void interrupt()
{
intcon.f2=0;
TMR0=0;
}
void main() {
TRISA=255;TRISB=0;PORTB=0;PORTA=0;cmcon=7;
option_reg=40;intcon=160;TMR0 = 0;
while(1){
while(TMR0==0){}
delay_ms(250);
switch (TMR0){
case 8: Portb.F3 = ~Portb.F3;TMR0=0;break;
case 7: Portb.F2 = ~Portb.F2;TMR0=0;break;
case 6: Portb.F1 = ~Portb.F1;TMR0=0;break;
case 5: Portb.F0 = ~Portb.F0;TMR0=0;break;
default:TMR0=0;break;
}
}
while(1);
}
واي حد عنده اجابة ياريت يقولي