
开源协议
:GPL 3.0
描述
题目要求
1.控制电机速度
2.控制电机正反转
3.把读取到的电机转速显示
题目分析
无,没有使用PID来控制,因为题目也没有要求
提示:电源设计
原理图设计说明
电机驱动
降压模块
主控核心板
PCB设计说明
把线走通,过大电流导线尽量给粗一点的线宽,编码器要接到定时器计数,尽量走近一点。
软件说明
因为是开环控制,所以比较简单使用定时器1输出pwm,使用定时器2的编码器模式进行电机的测速。然后使用IIC来驱动带IIC的1602显示速度即可
#include
void main()
{
一些初始化
while (1)
{
if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_7) == 0)
{
delay_ms(10);
while(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_7) == 0);
time++;
}
if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_6) == 0)
{
delay_ms(10);
while(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_6) == 0);
time--;
}
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1) == 0)
{
delay_ms(50);
while(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1) == 0);
time = -time;
}
if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_4) == 0)
{
delay_ms(10);
time = 0;
}
if( time > 7)
{
time = 7;
}
if(time < -7)
{
time = -7;
}
speed = time*1000;
Load(speed,0);
Read();
((float)Encoder_Left/(20.90/6000));
sprintf((char *)display_buf,"speed: %d ",-Encoder_Left );
lcd_put_cur(0, 0); // put cursor at the entered position rol(0 or 1), col(0 - 15)
lcd_send_string (display_buf); // send string to the lcd
}
实物展示说明
基于HAL库的开发
注意事项
其它附件上传
设计图

BOM


评论