1.3.2小车跑起来

引言

上节课我们进行了对电机的初始化,今天我们开始构建电机的使用函数。

电机代码

产生速度

对于小车来说,所有函数都是服务于让小车按照我们的要求移动,所以我们在初始化完就需要写出一个使小车动手起来的函数。

这个函数最好可以给小车的两个电机配速,达到我们变速的要求!!!

先理一下思路!以左面的电机为例·。当我们的IN1为逻辑正IN2为逻辑负时我们的电机正转。所以本质上就是控制IN1与IN2的电压值。我们使用的是PWM模式,所以对电压的控制就是对电压占空比的控制,那么库函数有没有对占空比函数的设置呢!

看这里:

这不就是吗,所以直接操作我们的比较寄存器!但是注意看这是通道一的比较寄存器。我们有的四个通道!

所以我写一个速度函数,让他们配置四个变量!

 完善一下吧!这样子我们就可以自己设置通道了。

void speed(uint8_t speed1 ,uint8_t speed2 ,uint8_t speed3 ,uint8_t speed4)
{
      TIM_SetCompare1(TIM4,speed1);
      TIM_SetCompare2(TIM4,speed2);
      TIM_SetCompare3(TIM4,speed3);
      TIM_SetCompare4(TIM4,speed4);
}

 小车前进

知道产生速度了你就一定会如何控制小车前进了!我这里不做推理直接附上代码。

void qianjin (uint8_t pwm)
{
if(pwm>100)
  {
	pwm=100;
	}
speed(pwm,0,pwm,0);

}

注意我们这里的pwm一定要控制大小,这里的if函数是为了移植后大家给值给大了!

小车后退

void houtui(pwm)
{
	if(pwm>100)
	{
	pwm=100;
	
	}
speed(0,pwm,0,pwm);
	
}

接下来小车的左转右转,左旋转右旋转你自己会写了吧我就不列举了!

主函数

到了使用部分了,我们一步一步过来的所以你一定不会晕的!

while(1)
{
qianjin(50);
delay_s(5);
tingzhi();
zuozhuan(60);
delay_s(2);
tingzhi();
}

当然在实际使用中一定要加延时!不断的调试!很多问题都是因为延时问题导致代码无法被读取而造成的!!!!

明天就到了我们的布线了!其等待一下吧! 

 

 

 

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值