微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > Qt小窗口控制步进电机

Qt小窗口控制步进电机

时间:10-02 整理:3721RD 点击:

        想先试验一下用Qt小窗口控制电机,所以做了一个demo。demo实现的功能是进行电机上下电、转速控制,方向控制。
       方向以及上下电用QPushButton实现,而速度通过一个QSlider实现。
        控制界面如下图所示。
      


         步进电机的控制和之前的一样,只是封装成了一个motor类。采用米尔提供的驱动,没有自己写驱动。控制界面的程序主要如下。
       初始化,主要是实现记录变量的初始化以及上电按钮、方向按钮以及电机速度控制滑动条信号和槽的连接。

  1. MotorControl::MotorControl(QWidget *parent)
  2. : QDialog(parent)
  3. {
  4. setupUi(this);
  5. direction = 1; //运转方向
  6. powerflag = 0; //是否上电
  7. //statetimer=new QTimer(this);
  8. motor = new Motor(this); //电机新建
  9. motor->InitMotor(5,9,5,7); //电机初始化,电机引脚为5_9及5_7

  10. connect(pushButton_power, SIGNAL(clicked()), this, SLOT(ChangePower()));
  11. connect(pushButton_direction, SIGNAL(clicked()), this, SLOT(ChangeDirection()));
  12. connect(motor_speed, SIGNAL(valueChanged(int)), this, SLOT(ChangeSpeed(int)));

  13. //slider->setMinimum(0);
  14. //设置滑动条控件的最大值
  15. //slider->setMaximum(100);
  16. //设置滑动条控件的值
  17. //slider->setValue(50);
  18. }

复制代码

        按钮按下控制槽实现现实和电机的开关的变化。      

  1. void MotorControl::ChangePower()
  2. {
  3. if(powerflag==0)
  4. {
  5. powerflag = 1;
  6. pushButton_direction->setEnabled(true);
  7. pushButton_power->setText("power OFF");
  8. motor_speed->setEnabled(true);
  9. motor->TurnOn();
  10. }else{
  11. powerflag = 0;
  12. pushButton_direction->setEnabled(false);
  13. pushButton_power->setText("power ON");
  14. motor_speed->setEnabled(false);
  15. motor->TurnOff();
  16. }
  17. qDebug() setText("direction 1");
  18. }else{
  19. direction = 0; //反转
  20. pushButton_direction->setText("direction 0");
  21. }
  22. motor->ChangeDirection(direction);
  23. }

复制代码

     而速度的改变是将“转/min”传给电机。

  1. void MotorControl::ChangeSpeed(int speed)
  2. {
  3. qDebug() ChangeSpeed(speed);
  4. }

复制代码

    以下是实现的视频。    http://v.youku.com/v_show/id_XMTg1ODgyMDg2NA==.html

40.52 KB, 下载次数: 17

谢谢小编的帖子, 学习了

小编,你的qt开发是在windows下还是linux下啊?

也是初学者,一起努力。

我是在Linux下开发的。Ubuntu16.04。

小编,你好,你这个在linux下运行的,代码怎么没有open设备驱动文件呢,还有有设备驱动的源码吗

我这个用的是米尔的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top