极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 万马奔腾

arduino产生脉冲控制工业用的步进电机?

[复制链接]
发表于 2014-8-5 20:38:16 | 显示全部楼层
rick_hou 发表于 2013-6-23 23:05
我现在找到的是相对较早写的一版两轴控制的程序。貌似当初有些问题后来就重写了。但是具体是啥问题已经忘记 ...

#include <LiquidCrystal_I2C.h>
#include <TimerOne.h>
请问这两个库在那里可以找到?
回复 支持 反对

使用道具 举报

发表于 2014-8-9 23:05:26 | 显示全部楼层
楼主这是做自动进给吗,还是直接数控控制啊,数控控制有GRBL啊,不需要自己这样写啊
回复 支持 反对

使用道具 举报

发表于 2014-8-20 22:56:29 | 显示全部楼层
rick_hou 发表于 2013-6-18 10:47
前后折腾了大约有半个月,现在已经用上了,准备再做些调整。

你这铣床是自己做的还是买现成的
回复 支持 反对

使用道具 举报

发表于 2014-10-22 15:19:46 | 显示全部楼层
gongtingyi 发表于 2014-8-20 22:56
你这铣床是自己做的还是买现成的

买的现成的。super 16v 可以在网上搜到。我就是觉得小不占地方,其实大点的好用。扔进去超过一万块了,也没见到什么成果。
回复 支持 反对

使用道具 举报

发表于 2015-1-4 19:34:04 | 显示全部楼层
现在正在玩,Mark下 ,等详细研究
回复 支持 反对

使用道具 举报

发表于 2015-5-3 22:10:12 | 显示全部楼层
rick_hou 发表于 2013-6-23 23:05
我现在找到的是相对较早写的一版两轴控制的程序。貌似当初有些问题后来就重写了。但是具体是啥问题已经忘记 ...

仁兄 这个程序编译时提醒找不到“TimerOne.h” 文件 可否共享一下。我也正学习用arduino控制步进电机的转速和圈数并用LCD1602显示,不过电机运行时,数字总闪,程序属于流水线式的,只能干一个事,请问你是如何解决这个问题的,在此谢过了!
回复 支持 反对

使用道具 举报

发表于 2015-5-31 11:22:59 | 显示全部楼层
枫叶 发表于 2015-5-3 22:10
仁兄 这个程序编译时提醒找不到“TimerOne.h” 文件 可否共享一下。我也正学习用arduino控制步进电机的转 ...

步进电机如果不做变速的话,转速是确定的,就是你给他的脉冲频率即可算出他的转速,主要的是步进电机是开环控制,就是说它实际的速度其实你是不知道的,只能知道你希望他实现的速度。圈数的话其实可以在定时器内搞一个计数器,当电机正转的时候累加,反转的时候减少,达到一圈的脉冲数的时候就改一下现在的圈数,一般步进电机一秒也就是三圈,只要你不总刷新屏幕上的数字,就不会总是闪烁

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2015-6-4 10:54:05 | 显示全部楼层
能否让GRBL读取SD卡里的G代码?
回复 支持 反对

使用道具 举报

发表于 2015-6-8 11:14:44 | 显示全部楼层
谢谢!!需要同样的问题!!
回复 支持 反对

使用道具 举报

发表于 2015-6-26 02:59:03 | 显示全部楼层
这几天在做类似的控制器
用延迟方式产生方波
回复 支持 反对

使用道具 举报

发表于 2015-7-31 19:24:50 | 显示全部楼层
rick_hou 发表于 2015-5-31 11:22
步进电机如果不做变速的话,转速是确定的,就是你给他的脉冲频率即可算出他的转速,主要的是步进电机是开 ...

好的  谢谢您
回复 支持 反对

使用道具 举报

发表于 2015-8-8 00:20:38 | 显示全部楼层
chengzi 发表于 2015-6-4 10:54
能否让GRBL读取SD卡里的G代码?

没搞过GRBL,arduino不是有读取SD卡的案例么,参考下吧。回头有空我也看看。
回复 支持 反对

使用道具 举报

发表于 2015-8-8 00:24:49 | 显示全部楼层
erik0 发表于 2015-6-26 02:59
这几天在做类似的控制器
用延迟方式产生方波

micros() 这个函数可以返回微秒数,millis()返回毫秒数,用这个做比延迟函数要好些吧。我现在产生方波用的是定时器两次中断产生一个完整周期,一次上升一次下降。
回复 支持 反对

使用道具 举报

发表于 2015-8-11 23:17:11 | 显示全部楼层
控制单路的比较简单,目前的驱动器都是只要输入脉冲就可以了,当然,直接用PWM输出也可以,频率在500HZ,但是要控制多路,程序就得想想办法了,我们是要控制脉冲的个数,频率不是最关心的,用PWM输出的脉冲只能是连续的,不好控制
回复 支持 0 反对 1

使用道具 举报

发表于 2015-12-1 09:14:56 | 显示全部楼层
不会就不会说什么费话,我上一段程序。
int PUL_1=7;
int DIR_1=6;
int K0=0;

void setup()
{
   
    pinMode(DIR_1,OUTPUT);
    pinMode(PUL_1,OUTPUT);
    pinMode(K0,INPUT);
}

void loop()
{

  digitalWrite(K0,HIGH);//启动开关
  if (digitalRead(K0)==HIGH)//0脚如果为低,则执行
  {
   
    digitalWrite(DIR_1,LOW);
    unsigned int number=1000; unsigned int time=100;  //numbe为脉冲个数,time为脉冲宽度。
  
    while (number>0)
    {
           digitalWrite(PUL_1,HIGH);
           delayMicroseconds(time);
           digitalWrite(PUL_1,LOW);
           delayMicroseconds(time);
           
   
     }
      number--;
  }
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-10 00:42 , Processed in 0.065425 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表