السلام عليكم ورحمة الله وبركاته
انا اقوم بمشروع بالتحكم فى سرعة موتور 12v DC باستخدام pic16f877a باستخدام طريقة PWM
فكرة البرنامج انى عندما اضغط على push button تزيد السرعة الى 25% واذا ضغطت مرة اخرى تزيد الى 50% واذا ضغطت مرة اخرى 75% ثم 100% ثم اذا ضغطت مرة اخرى يتوقف الموتور ثم تتكرر الدورة
ومع كل سرعة تضئ معها لمبة بيان وهذا هو الكود
كود:
void main(){
// variables
int x[5]={0, 1, 2, 4, 8};
int i = 1 ;
trisa = 0; trisb = 0; trisc = 0; trisd = 255; trise = 0;
porta = 0; portb = 0; portc = 0; portd = 0; porte = 0;
PWM1_Init(5000); //initialise PWM1 at 5KHz
PWM1_Start(); //start PWM1
while(1) { // start infinit loop
portb.f7=1; //signal to motor forward direction
if (portd.f2 == 1) // if the push button is pushed
{
portb = x[i]; // indicator led according to motor speed
PWM1_Set_Duty(i*255/4); // set duty cycle from 25% to 100%
i++;
delay_ms(200);
}
if (i > 4) i = 0 ;
} //end loop
} //end main
البرنامج بيشتغل تمام على ال protues
لكن فى تنفيذ الدائرة مش بيشتغل
فهل فى مشكلة فى الكود نفسه والا فى مشكلة فى حرق البرنامج والا ايه؟؟