littlebot
Published on 2025-04-11 / 0 Visits
0

【源码】基于C语言的DC电机速度控制器

项目简介

本项目实现了对DC电机的开环控制,可实时设置电机的速度和方向。借助一个MCU和一个H桥来完成控制功能,PC与MCU之间通过自定义数据包进行通信。PC能向MCU发送设置电机参数的指令,MCU会向PC反馈电机的状态信息。

项目的主要特性和功能

  1. 通信功能:PC与MCU通过串行通信交互,PC可设置电机参数,MCU能反馈电机状态。
  2. MCU功能:可生成PWM信号,通过定时器中断定期发送状态包,利用UART中断接收设置包。
  3. PC功能:使用Unix API进行串行通信的打开、设置和关闭操作,采用多线程(一个发送线程和一个监听线程),具备基于ncurses的图形用户界面,可处理选项标志。
  4. 平滑控制:支持线性插值,能使电机方向平滑改变。

安装使用步骤

安装

  1. 确保安装了ncurses库,若未安装,执行以下命令: bash sudo apt-get install libncurses5-dev libncursesw5-dev
  2. 安装AVR编程所需工具: bash sudo apt-get install gcc-avr binutils-avr gdb-avr avr-libc avrdude
  3. 编译并上传AVR代码: bash cd avr make make dc_control.hex sudo addgroup <your username> dialout cd..
  4. 编译PC端代码: bash cd serial make

使用

在“serial”目录下运行PC端程序: bash ./main 可使用以下可选标志: - -l:启用AVR的线性插值,使电机方向平滑改变。 bash ./main -l - -f:强制AVR重新上传/重启。 bash ./main -f - -d:调试模式(已弃用),用于通信测试,禁用GUI。 bash ./main -d

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】