chhfvjdxhjh 2024-06-25 14:11 采纳率: 57.9%
浏览 4
已结题

脚踏开关如何与串口屏一起控制步进电机

使用到设备:淘晶驰串口屏、arduino mage 2560开发板、步进电机、脚踏开关。
设想功能:串口屏上按下启动步进电机按钮后,步进电机不操作,脚踏开关踩下后,步进电机按串口屏显示的转速转动。脚踏开关抬起后,步进电机立刻停止。如果串口屏未按下,踩下脚踏开关后步进电机不操作。
问题:不能正常实现设想。
下面是有关部分程序

if (bujin == 8)  //如果串口屏按下对应速度,输出对应数字
    {
      if (digitalRead(bujinjiaota) == LOW)  //如果脚踏开关按下
    {
      digitalWrite(DIRPIN1, LOW);//方向
      digitalWrite(STEPPIN1, HIGH);//脉冲
      tone(STEPPIN1, 14600); //不同数字对应不停速度
    }
    else  //如果脚踏开关没有按下
    {
      bujin=20;   //步进电机停止运行
    }

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-06-25 14:11
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    要实现你所描述的功能,你的代码需要进行一些调整以确保逻辑正确。以下是一些可能的改进方向:

    1. 确保全局变量的使用:确保bujinbujinjiaota是全局变量,这样它们可以在不同的函数中被访问和修改。

    2. 使用标志位控制电机状态:使用一个标志位来表示电机是否应该运行,这个标志位可以在串口屏按下启动按钮时设置,并在脚踏开关抬起时重置。

    3. 使用延时或定时器来控制步进电机的速度tone函数通常用于生成声音,而不是控制步进电机的速度。你可能需要使用延时函数delay或更高级的定时器来控制脉冲的频率,从而控制步进电机的速度。

    4. 确保正确的逻辑顺序:在代码中,你需要先检查串口屏的按钮状态,然后再检查脚踏开关的状态。

    下面是一个简化的示例代码,展示了如何实现你的需求:

    // 假设DIRPIN1和STEPPIN1是控制步进电机方向和脉冲的引脚
    // 假设BUJINPIN是串口屏按钮的引脚,BUJINJIAOTA是脚踏开关的引脚
    
    bool motorRunning = false; // 电机运行标志位
    
    void setup() {
      pinMode(DIRPIN1, OUTPUT);
      pinMode(STEPPIN1, OUTPUT);
      pinMode(BUJINPIN, INPUT);
      pinMode(BUJINJIAOTA, INPUT);
    }
    
    void loop() {
      if (digitalRead(BUJINPIN) == HIGH) { // 串口屏按钮被按下
        motorRunning = true; // 设置电机运行标志位
      }
    
      if (motorRunning && digitalRead(BUJINJIAOTA) == LOW) { // 如果电机运行且脚踏开关被踩下
        digitalWrite(DIRPIN1, LOW); // 设置电机方向
        digitalWrite(STEPPIN1, HIGH); // 产生脉冲
        delayMicroseconds(1000 / bujin); // 根据bujin的值控制脉冲频率,从而控制速度
        digitalWrite(STEPPIN1, LOW); // 清除脉冲
      } else if (digitalRead(BUJINJIAOTA) == HIGH) {
        motorRunning = false; // 脚踏开关抬起,重置电机运行标志位
        digitalWrite(STEPPIN1, LOW); // 确保脉冲清除
      }
    }
    

    请注意,这个代码只是一个示例,你需要根据你的具体硬件和需求进行调整。此外,bujin变量的值应该根据你想要设置的转速来确定脉冲频率的延时。

    如果你需要更详细的帮助,或者想要了解如何使用定时器来更精确地控制步进电机的速度,我可以提供更多的信息。同时,如果你需要参考链接,我可以为你提供一些关于Arduino控制步进电机和使用脚踏开关的资源。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月28日
  • 创建了问题 6月25日

悬赏问题

  • ¥15 求解答一下是否可以修改一个软件运行时生成的文件内部内置的文件创建时间?
  • ¥15 求在R环境下用corrplot画一个相关图
  • ¥20 WIN10蓝屏问题!
  • ¥15 Mac经常自动关机,再次打开后提示“电脑因出现问题而重新启动”
  • ¥60 使用ovito软件怎么得到金属玻璃的自由体积
  • ¥15 急!如何实现根据汇编指令推测硬件功能?
  • ¥20 excel处理10000万条数据方法
  • ¥15 hc32串口接收数据
  • ¥15 阻抗控制阻尼参数过小报错
  • ¥15 在Unity开发环境中用NPOI插件输出Word文档可以,当我打包到Windows系统软件的时候输出Word文档就出现文件损坏