最近在做一个简单的小项目,用stm32做一个智能小车,我用的32板子是正点原子stm32mini的。以后我会持续更新项目动态会和大家积极分享经验和程序。
这次是小车的初步——电机驱动
我的小车将左边的一排电机并联,将右边的电机并联,发现并联电机会更加的方便和简单。
首先电机驱动模块用的是L9110这个模块,L9110驱动直流电机的话比较简单,输出等于电源电压。
此次小车电机方面用到的PWM方面比较简单。
我用的是定时器3的通道1和通道3,设置 TIM3_CH1和TIM3_CH3 的 PWM 模式。
因为我一开始驱动时用的是定时器TIM1发现很复杂,配置起来不太容易。
并且keil5编译器固体库也不是很清楚,我建议大家配置电机高低电平时,不要在电机的.c文件中直接宏定义,系统不认同。
在主函数中直接定义驱动函数会更好。
以及我出现了报错Undefined symbol time (referred from dianji.o).
程序:
void ahead(void)//定义前进函数
{
A1=1;
A2=0;
B1=1;
B2=0;
}
void back(void)//定义后退函数
{
A1=0;
A2=1;
B1=0;
B2=1;
}
void STOP(void)//定义停车函数
{
A1=0;
A2=0;
B1=1;
B2=1;
}
void right(void)//定义右转函数
{
A1=1;
A2=0;
B1=1;
B2=1;
}
void left(void)//定义左转函数
{
A1=0;
A2=0;
B1=1;
B2=0;
}
int main(void)
{
system_Clock_Init(); //系统时钟设置
uart_init(115200); //串口初始化为115200
delay_init(); //延时初始化
TIM3_PWM_Init();
dianji_Init();
while(1)
{
ahead();
}
}
最近在做一个简单的小项目,用stm32做一个智能小车,我用的32板子是正点原子stm32mini的。以后我会持续更新项目动态会和大家积极分享经验和程序。
这次是小车的初步——电机驱动
我的小车将左边的一排电机并联,将右边的电机并联,发现并联电机会更加的方便和简单。
首先电机驱动模块用的是L9110这个模块,L9110驱动直流电机的话比较简单,输出等于电源电压。
此次小车电机方面用到的PWM方面比较简单。
我用的是定时器3的通道1和通道3,设置 TIM3_CH1和TIM3_CH3 的 PWM 模式。
因为我一开始驱动时用的是定时器TIM1发现很复杂,配置起来不太容易。
并且keil5编译器固体库也不是很清楚,我建议大家配置电机高低电平时,不要在电机的.c文件中直接宏定义,系统不认同。
在主函数中直接定义驱动函数会更好。
以及我出现了报错Undefined symbol time (referred from dianji.o).
程序:
void ahead(void)//定义前进函数
{
A1=1;
A2=0;
B1=1;
B2=0;
}
void back(void)//定义后退函数
{
A1=0;
A2=1;
B1=0;
B2=1;
}
void STOP(void)//定义停车函数
{
A1=0;
A2=0;
B1=1;
B2=1;
}
void right(void)//定义右转函数
{
A1=1;
A2=0;
B1=1;
B2=1;
}
void left(void)//定义左转函数
{
A1=0;
A2=0;
B1=1;
B2=0;
}
int main(void)
{
system_Clock_Init(); //系统时钟设置
uart_init(115200); //串口初始化为115200
delay_init(); //延时初始化
TIM3_PWM_Init();
dianji_Init();
while(1)
{
ahead();
}
}
举报