STM32 2轮PID智能小车第一章驱动电机让小车动起来

简介: STM32 2轮PID智能小车第一章驱动电机让小车动起来

前言

本篇文章正式带大家学习STM32智能小车。这篇文章先带大家了解一下如何让小车动起来。


一、LM298N

1.LM298N模块接线原理图。

根据下图可知一个LM298N可以控制两个电机模块。

12V输入需要接入电源,电源地接GND。单片机IO口接到STM32的GPIO口。

image.png

2.LM298N和STM32接线图及LM298N和电机接线图

将电机接到LM298N上,LM298N接到STM32上,通过STM32控制控制GPIO引脚的电平高低驱动电机转动。

image.png

二、驱动电机模块

//硬件连接说明:

//PB0----PWMA 右电机PWM

//PB12----AIN2 控制右电机正反

//PB13----AIN1 控制右电机正反

//PB14----BIN1 控制左电机正反

//PB15----BIN2 控制左电机正反

//PB1----PWMB 左电机PWM

LM298N上面的ENA,ENB控制小车PWM调速,IN1,IN2,IN3,IN4控制电机的正转和反转。


电机的正转、反转、停转

1.首先实现电机的停转是最简单的只要将电机的两个GPIO口都设置为相同的电平。

代码:

停转

  HAL_GPIO_WritePin(AIN1_GPIO_Port,AIN1_Pin,GPIO_PIN_RESET);  
  HAL_GPIO_WritePin(AIN2_GPIO_Port,AIN2_Pin,GPIO_PIN_RESET);

2.电机正转和反转将两个GPIO口设置为不同电平即可

正转

  HAL_GPIO_WritePin(AIN1_GPIO_Port,AIN1_Pin,GPIO_PIN_SET);  
  HAL_GPIO_WritePin(AIN2_GPIO_Port,AIN2_Pin,GPIO_PIN_RESET);

反转

  HAL_GPIO_WritePin(AIN1_GPIO_Port,AIN1_Pin,GPIO_PIN_RESET);  
  HAL_GPIO_WritePin(AIN2_GPIO_Port,AIN2_Pin,GPIO_PIN_SET);

二、cubeMX配置

让小车动起来只需配置如下引脚。

image.png

三、程序代码编写

Moto.c

#include "Moto.h"
//小车模式定义
#define GO 0
#define Back 1
#define Stop 2
/*
函数功能:小车电机初始化
*/
void Moto_Iint(void)
{
    car_move(Stop);
}
/*
函数功能:左电机模式设置
Mode:模式选择 GO:前进 Back:后退 Stop:停止
*/
void Left_mode(char Mode)
{
  switch(Mode)
  {
    case GO:
    {
        BIN1_RESET();
        BIN2_SET();
    }
    break;
    case Back:
    {
        BIN2_RESET();
        BIN1_SET();        
    }
    break;
    case Stop:
    {
        BIN1_RESET();
        BIN2_RESET();
    }
    break;
  }
}
/*
函数功能:右电机模式设置
Mode:模式选择 GO:前进 Back:后退 Stop:停止
*/
void Rright_mode(char Mode)
{
  switch(Mode)
  {
    case GO:
    {
        AIN1_RESET();
        AIN2_SET();        
    }
    break;
    case Back:
    {
        AIN1_RESET();
        AIN2_SET();        
    }
    break;
    case Stop:
    {
        AIN1_RESET();
        AIN2_RESET();
    }
    break;
  }
}
/*
函数功能:小车移动
Mode:模式选择 GO:前进 Back:后退 Stop:停止
*/
void car_move(char Mode)
{
  switch(Mode)
  {
    case GO:
    {
        Left_mode(GO);
        Rright_mode(GO);
    }
    break;
    case Back:
    {
        Left_mode(Back);
        Rright_mode(Back);        
    }
    break;
    case Stop:
    {
        Left_mode(Stop);
        Rright_mode(Stop);        
    }
    break;
  }
}

Moto.h

#ifndef _MOTO_H_
#define _MOTO_H_
#include "main.h"
#define u8 unsigned char
#define u16 unsigned short
#define u32 unsigned int
//电机IO定义
//右电机
#define AIN1_RESET() HAL_GPIO_WritePin(AIN1_GPIO_Port,AIN1_Pin,GPIO_PIN_RESET)
#define AIN1_SET() HAL_GPIO_WritePin(AIN1_GPIO_Port,AIN1_Pin,GPIO_PIN_SET)
#define AIN2_RESET() HAL_GPIO_WritePin(AIN2_GPIO_Port,AIN2_Pin,GPIO_PIN_RESET)
#define AIN2_SET() HAL_GPIO_WritePin(AIN2_GPIO_Port,AIN2_Pin,GPIO_PIN_SET)
//左电机
#define BIN1_RESET() HAL_GPIO_WritePin(BIN1_GPIO_Port,BIN1_Pin,GPIO_PIN_RESET)
#define BIN1_SET() HAL_GPIO_WritePin(BIN1_GPIO_Port,BIN1_Pin,GPIO_PIN_SET)
#define BIN2_RESET() HAL_GPIO_WritePin(BIN2_GPIO_Port,BIN2_Pin,GPIO_PIN_RESET)
#define BIN2_SET() HAL_GPIO_WritePin(BIN2_GPIO_Port,BIN2_Pin,GPIO_PIN_SET)
void Moto_Iint(void);
void car_move(char Mode);
void Left_mode(char Mode);
void Rright_mode(char Mode);
#endif

总结

本篇文章就介绍到这里,大家有什么问题可以留言或者私信。

相关文章
|
2月前
|
传感器 监控 BI
基于STM32的智能垃圾分类系统设计与实现
基于STM32的智能垃圾分类系统设计与实现
231 0
|
2月前
|
传感器 监控
基于STM32的智能公交站牌系统设计与实现
基于STM32的智能公交站牌系统设计与实现
47 0
|
2月前
|
传感器 监控
基于STM32的智能农业环境监测系统设计与实现
基于STM32的智能农业环境监测系统设计与实现
232 0
|
2月前
|
传感器 监控 数据挖掘
基于STM32的智能停车场导航系统设计与实现
基于STM32的智能停车场导航系统设计与实现
60 0
小巴陪你搞技术-STM32驱动1602时钟
小巴陪你搞技术-STM32驱动1602时钟
|
2月前
|
传感器 监控 API
基于STM32的智能灌溉系统设计与实现
基于STM32的智能灌溉系统设计与实现
279 1
|
13天前
|
传感器 数据采集 监控
基于阿里云MQTT服务,设计一个STM32的智能光伏控制系统
这篇文章详细介绍了利用STM32F103C8T6单片机实现光伏发电系统的关键技术。全文分为四章:第一章阐述了光伏发电的背景、意义及应用场景,强调其在绿色能源领域的重要性。第二章介绍了如何通过STM32F103C8T6及光敏电阻和伺服电机实现光线追踪系统,详细描述了硬件选择、连接及使用HAL库编写的单片机程序。第三章讲解了最大功率点追踪(MPPT)的原理,并展示了如何利用STM32F103C8T6和相关传感器、DC-DC转换器实现MPPT功能。第四章描述了如何通过STM32F103C8T6与SIM7600CE 4G模块连接到阿里云MQTT服务,实现设备状态数据的远程传输和控制。本文提供了全面的硬
17492 2
|
2月前
|
传感器 监控 安全
基于STM32的智能公交车辆管理系统设计与实现
基于STM32的智能公交车辆管理系统设计与实现
41 1
|
2月前
|
物联网 程序员 语音技术
STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结-3
STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结
STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结-3
|
2月前
|
传感器 语音技术
STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结-1
STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结
STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结-1