STM32单片机步进电机控制系统设计案例

一、功能简介
本项目使用proteus8.12仿真stm32单片机控制器,使用uln2003电机模块、lcd1602模块、按键模块等。
主要功能:
系统运行后,lcd1602显示电机当前运行档位、方向、状态。可通过按键k4启动与停止,按键k1加速、按键k2减速,按键k3换向;档位可在1-5档。
主要功能如下:
(1)按键功能:具有加速、减速、正转、反转、启动和停止;
(2)显示功能:lcd1602显示档位、方向、运行状态;
(3)电机驱动:uln2003驱动步进电机;
二、软件设计
//系统参数设定
void sys_parm_set(void)
{
u8 key=0;
key=key_scan(0);
//启动/停止
if(key==key4_press)
{
sys_ctrl.run=!sys_ctrl.run;
if(sys_ctrl.run)
lcd1602_show_string(4,1,run );
else
lcd1602_show_string(4,1,stop);
}
//运行中
if(sys_ctrl.run)
{
//方向切换
if(key==key3_press)
{
sys_ctrl.dir=!sys_ctrl.dir;
}
//加速
else if(key==key1_press)
{
sys_ctrl.gear++;
if(sys_ctrl.gear>5)sys_ctrl.gear=1;
}
//减速
else if(key==key2_press)
{
sys_ctrl.gear--;
if(sys_ctrl.gear<1)sys_ctrl.gear=5;
}
step_motor_28byj48_send_pulse(4,sys_ctrl.dir,gspeed[sys_ctrl.gear-1],1,sys_ctrl.run);
}
}
//系统参数显示
void sys_parm_show(void)
{
//运行状态
if(sys_ctrl.run)
{
if(sys_ctrl.dir)lcd1602_show_string(14,0,zz);
else lcd1602_show_string(14,0,fz);
//档位显示
lcd1602_show_num(5,0,sys_ctrl.gear,1);
}
}
//应用控制系统
void appdemo_show(void)
{
sys_parm_init();//系统参数初始化
step_motor_gpio_init();
key_init();
lcd1602_init();//lcd1602初始化
sys_open_show();//系统初始界面显示
while(1)
{
sys_parm_set();
sys_parm_show();
}
}
三、实验现象

虹科案例| Notus无损检测系统用于风电涡轮机叶片涂层厚度与内部缺陷检测
有三种可能的原因会导致信号丢失
区块链电子签章在钛合约在医院电子处方场景中的应用介绍
三星助攻智慧农场 推植物照明LED产品
物通博联提供Modbus TCP设备连接到物联网云平台的解决方案
STM32单片机步进电机控制系统设计案例
半导体行业的未来——太赫兹技术
高通以24亿美元收购CSR布局物联网
物联网技术在建筑行业中的应用介绍
什么是3C锂离子电池?锂离子电池的四个安全隐患,要注意了
工业电视监控系统和激光对射周界防范系统的应用分析
汽车与手机融合的帷幕现已拉开 智能终端效应越发明显
一文彻底了解时间复杂度
高压电缆绝缘料国产化进程加速, 国产高压电缆绝缘料促进电缆行业质量提升
通用和LG共同投资的电池公司你怎么看?
通过生成式模型驱动开发车辆中的电子E/E系统问题
超小型可穿戴医疗保健设计平台
华为Mate9遇劲敌 魅族PRO6Plus性能更强大
双十一NANK南卡耳机支付金额突破1000万,比去年同比增长150%!
vivo APEX 2020手机预告,摄像变焦将具有连续性