打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
大创:小车运动实验

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速度控制工作原理

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
基于51单片机的手机蓝牙遥控小车设计(程序 元件清单 实物图)
基于单片机89C51产生PWM信号来控制直流电机调速程序
手把手教你做蓝牙小车
Arduino小车
省电子设计竞赛一等奖作品分享(四)
51单片机怎么驱动直流电机c语言
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服