其他分享
首页 > 其他分享> > 大创:小车运动实验

大创:小车运动实验

作者:互联网

小车前进实验

1、主要目的

该部分为小车所有运动的根源。

2、PWM控速

电机不能直接又数字信号1和0接两端而产生运动,需要通过PWM对电机进行控速。我需要PWMA和PWMB对每一侧电机进行控制。
PWM速度控制系统通过脉宽调制器对大功率晶体管的开关时间进行控制,将直流电压转换成某种频率的方波电压,并通过对脉冲宽度的控制,改变输出直流平均电压的自动调速系统。
生成PWM信号在我的理解就是生成正弦信号,让电机产生交流电,从而导致电机运动,如下图所示:
在这里插入图片描述
而小车前进是由一个死循环控制的,然后在main函数中打开中断,让一个函数控制PWM信号产生。
1、打开中断并初始化

	P2=0XC0;    
	TMOD=0X01; 
    TH0=0XFC; 
    TL0=0X66;
    TR0=1;		
    ET0=1;		
	EA =1;	   

2、产生PWM信号(左右相同,只展示其中之一)

void pwm_out_right_motor(void)
{ 
    if(Right_PWM_ON)
    { 
        if(pwm_val_right<=push_val_right)	
	    {
	        Right_motor_pwm=1; 							
        }
	    else 
	    {
	        Right_motor_pwm=0;
        }
	    if(pwm_val_right>=20) 
	    pwm_val_right=0;
    }
    else    
    {
        Right_motor_pwm=0;	 
    }
}

3、主运动控制

void run(void)
{
	//×óµç»úÇ°½ø
	Left_motor_go = 1;     
	Left_motor_back = 0;   
	push_val_left=10;

	Right_motor_go=1;    
	Right_motor_back=0;  
    push_val_right=10;
    return;
}

其中,单片机端口位置如下:
在这里插入图片描述
这次实验主要同的中断,所以如果有串口通信应该还得再多几个中断,接下来我会再把中断学深一点,然后回校测试代码,看看能不能在原来程序上走稳,不能的话就得学PID控制,又是很长一条路啊!!!!!!!!!!!!!!!!

参考文献

[1]脉冲宽度调制
[2]PWM速度控制工作原理

raymond32 发布了2 篇原创文章 · 获赞 0 · 访问量 12 私信 关注

标签:Right,val,小车,void,大创,right,实验,motor,PWM
来源: https://blog.csdn.net/raymond32/article/details/104174849