L298N是目前智能小车应用很广泛的价格也比较便宜的电机驱动,用来驱动直流电机。
L298N
输出A 输出B 分别接两个直流电机,电机两根线随便接,如果发现两电机方向是反着的,就调换下接线就ok了。
12V供电 这个是外部电源为驱动板供电的接口,一般驱动电压实际可以接受的输入范围是7~12V,此时可以使能板载的5V逻辑供电。当使用大于12V的驱动电压时,为了避免稳压芯片损坏,首先要拔掉板载5V输出使能的跳线帽,然后在5V输出端口外部接入5V电压对L298N内部逻辑供电。
5V供电 引出5V电压接到Arduino板,给Arduino板供电(驱动电压7~12V)连接到UNO板的5V,同时Arduino板也要引出一条GND线,连接到L298N的GND与外部电源共地。
ENA ENB通道A使能,通道B使能,当你不用PWM时不需要拔掉跳线帽,当你需要PWM时,将需要拔掉跳线帽,接到arduino上的模拟输入输出接口。
IN1 IN2 IN3 IN4逻辑输出口,其中IN1 IN2 控制一个电机的转动,IN3 IN4 控制另一个电机的转动,只要一个置高 一个置低,就可以让电机转动起来。
单片机源程序如下:
- #include "motor.h" //??led???
- #include "stm32f10x.h" //??STM32???
- #include "stm32f10x_rcc.h" //??STM32?RCC???
- #include "delay.h" //???
-
- void Motor_12_Config(void) //???????
- {
- GPIO_InitTypeDef GPIO_InitStructure; //??GPIO_InitTypeDef???
- RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE); //??????
- RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5; //??IN??
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //??????
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //??????
- GPIO_Init(GPIOA, &GPIO_InitStructure); //???GPIOA?????,??
-
- GPIO_ResetBits(GPIOB,GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6); //??????
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6; //??IN??
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //??????
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //??????
- GPIO_Init(GPIOB, &GPIO_InitStructure); //???GPIOA?????,??
- }
-
- void Motor_1_STOP(void)
- {
- IN1(High);
- IN2(High);
- }
-
- void Motor_1_PRun(void)
- {
- IN1(Low);
- IN2(High);
- }
-
- void Motor_1_NRun(void)
- {
- IN1(High);
- IN2(Low);
- }
-
- void Motor_2_STOP(void)
- {
- IN3(High);
- IN4(High);
- }
-
- void Motor_2_PRun(void)
- {
- IN3(Low);
- IN4(High);
- }
-
- void Motor_2_NRun(void)
- {
- IN3(High);
- IN4(Low);
- }
- void Motor_3_STOP(void)
- {
- IN5(High);
- IN6(High);
- }
-
- void Motor_3_PRun(void)
- {
- IN5(Low);
- IN6(High);
- }
-
- void Motor_3_NRun(void)
- {
- IN5(High);
- IN6(Low);
- }
-
- void Motor_4_STOP(void)
- {
- IN7(High);
- IN8(High);
- }
-
- void Motor_4_PRun(void)
- {
- IN7(Low);
- IN8(High);
- }
-
- void Motor_4_NRun(void)
- {
- IN7(High);
- IN8(Low);
- }
复制代码
所有资料51hei提供下载:
stm32控制L298N源代码.rar
(277.91 KB, 下载次数: 277)
|