一、前期準備
單片機:STM32F407VET6
開發環境:MDK5.14
庫函數:STM32Cube_FW_F4_V1.16.0
直流電機模塊:淘寶有售
二、實驗效果
1)按鍵KEY1按下,電機正轉;
2)按鍵KEY2按下,電機反轉;
3)按鍵KEY3按下,電機停轉。
三、驅動原理
直流有刷電機的驅動十分簡單,通電即可轉動。運用H橋可以直接驅動電機正反轉。
當Q1、Q4導通,電機正轉;Q2、Q3導通電機反轉。驅動電路使用淘寶上的H橋模塊
邏輯輸入的IN1、IN2爲OUT1與OUT2的控制腳。IN1、IN2電平相反時候,電機實現正反轉;IN1、IN2電平相同時,電機停轉。
需要完整工程的請加QQ:1002521871,驗證:呵呵!
四、驅動代碼
motor.h
#ifndef __MOTOR_H__
#define __MOTOR_H__
#include "stm32f4xx_hal.h"
#include "user_gpio.h"
#define IN1 PAout(0)
#define IN2 PAout(1)
#define KEY1 PEin(10)
#define KEY2 PEin(11)
#define KEY3 PEin(12)
extern void Motor_Test(void);
#endif
motor.c
#include "motor.h"
void Motor_Normal(void)
{
IN1 = 0;
IN2 = 1;
}
void Motor_Reverse(void)
{
IN1 = 1;
IN2 = 0;
}
void Motor_Stop(void)
{
IN1 = 1;
IN2 = 1;
}
void Motor_Test(void)
{
if (KEY1 == 0) //正轉
{
HAL_Delay(5);
if (KEY1 == 0)
{
Motor_Normal();
}
}
if (KEY2 == 0) //反轉
{
HAL_Delay(5);
if (KEY2 == 0)
{
Motor_Reverse();
}
}
if (KEY3 == 0) //停止
{
HAL_Delay(5);
if (KEY3 == 0)
{
Motor_Stop();
}
}
}
由於作者能力有限,有不妥之處歡迎指正,郵箱[email protected]