STM32F103C8T6第7天:智能小车项目

1. 智能小车:让小车动起来(360.64)

硬件接线

  • B-2A – PB0
  • B-1A – PB1
  • A-1B – PB2
  • A-1A – PB10
  • 其余接线参考上官一号小车项目。

cubemx配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 代码(28.smartCar_project1/MDK-ARM)

2. 智能小车:串口控制小车(361.65)

  • 在 smartCar_project1 的基础上:
    在这里插入图片描述
  • 代码(28.smartCar_project2/MDK-ARM)(拷贝 4g_led_project 中串口接收数据相关的代码)

3. 智能小车:点动控制小车(362.66)

  • 提升滴答定时器的优先级,降低串口的优先级
    在这里插入图片描述
    在这里插入图片描述
  • 代码(28.smartCar_project3/MDK-ARM)(添加延时函数)
    在这里插入图片描述

4. 智能小车:硬件PWM调速(363.67)

硬件接线

  • B-1A – PA0
  • A-1A – PA1
  • B-1A – PB1
  • A-1A – PB10
    在这里插入图片描述

在这里插入图片描述

  • 代码(28.smartCar_project4/MDK-ARM)(修改arr即可调速)
    在这里插入图片描述
  • 将控制车轮的4个 GPIO 口配置修改如下,否则小车动不起来。
  • 原因:L9110每个控制口需要一高一低才可以动起来,如果PWM有效电平为高电平,则另一个GPIO口则需要输出低电平才可以驱动轮子。
    在这里插入图片描述

5. 智能小车:左右轮各自调速(364.68)

  • 代码(28.smartCar_project5/MDK-ARM)
//main.c
while (1)
  {
   
		__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1,80);
		__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_2,150);
		HAL_Delay(1000);
		__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1,150);
		__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_2,80);
		HAL_Delay(1000);
  }

6. 智能小车:循迹小车基本实现(365.69)

硬件接线

  • B-2A – PB0
  • B-1A – PB1
  • A-1B – PB2
  • A-1A – PB10
  • 循迹模块(左)DO – PB3
  • 循迹模块(右)DO – PB4

代码实现

  • 基于 smartCar_project1
  • 代码(28.smartCar_project6/MDK-ARM)
//main.c
#define LeftWheel_Value HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_3)
#define RightWheel_Value HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_4)

while (1)
{
   
	if (LeftWheel_Value == GPIO_PIN_RESET && RightWheel_Value ==  GPIO_PIN_RESET)
    	goForward();
	if (LeftWheel_Value == GPIO_PIN_SET && RightWheel_Value ==  GPIO_PIN_RESET)
    	goLeft();
    if (LeftWheel_Value == GPIO_PIN_RESET && RightWheel_Value ==  GPIO_PIN_SET)
    	goRight();
	if (LeftWheel_Value == GPIO_PIN_SET && RightWheel_Value ==  GPIO_PIN_SET)
  		stop();
}

7. 智能小车:循迹小车解决转弯不平滑问题(366.70)

硬件接线

  • B-1A – PA0
  • A-1A – PA1
  • B-1A – PB1
  • A-1A – PB10

代码实现

  • 基于smartCar_project5(因为用到pwm)
    在这里插入图片描述
  • 代码(28.smartCar_project7/MDK-ARM)
//main.c
#define LeftWheel_Value HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_3)
#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值