اطلاعیه

Collapse
No announcement yet.

pid

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    pid

    سلام از اساتید تقاضا دارم نگاهی به این کد که واسه تععقیب خطه و تیریپه الگوریتمه(کد کامل نیست فقط روشه ) یه نگاهی بیندازن و مشکلات رو بگن ممنون (من فقط از p استفاده کردم ) :wow: :wow: :wow: :wow: :applause: :applause: :applause: :applause:
    کد:
    void adc_all(void)
    	{
    	front=read_adc(0);
    	right=read_adc(1);
    	left_up=read_adc(2);
    	right_up=read_adc(3);
    	right_mohafez=read_adc(4);
    	left=read_adc(5);
    	left_mohafez=read_adc(6);
    	}
    void eror_calculator(void)
    	{
    	if(front>=black)eror+=0;
    	if(right>=black)eror+=20;
    	if(right_up>=black)eror+=30;
    	if(right_mohafez>=black)eror+=70;
    	if(left>=black)eror+=-20;
    	if(left_up>=black)eror+=-30;
    	if(left_mohafez>=black)eror=-70;
    	}
    void motor(void)
    	{
    	if(eror>=0&&eror<=120)
    		{
    		motor_right_pwm=1015;
    		motot_left_pwm=1015-p;
    		if(motot_left_pwm<0)
    			{
    			motor_left=back;
    			motor_right=front;
    			}
    		else
    			{
    			motor_right=front;
    			motor_left=front;
    			}
    		}
    	else if(eror<0&&error<=-120)
    		{
    		motot_left_pwm=1015;
    		motor_right_pwm=1015-p;
    		if(motot_right_pwm<0)
    			{
    			motor_right=back;
    			motor_left=front;
    			}
    		else
    			{
    			motor_left=front;
    			motor_right=front;
    			}
    		}
    	}
    void kp(void)
    	{
    	p=kp*eror;
    	}
    void line(void)
    	{
    	adc_all();
    	eror_calculator();
    	kp();
    	motor();
    	}
لطفا صبر کنید...
X