打印
[AVR单片机]

步进电机控制

[复制链接]
1862|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liuhuonihao|  楼主 | 2014-11-18 10:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AVR通过IO口直接连接步进驱动器的三根信号线,脉冲、方向、使能,脉冲是由定时器来产生的相频修正的PWM,脉冲信号是正常的,现在的问题是,当电机上电后,在加速过程中会出现复位现象,不知道是什么原因???液晶屏在显示电机信息的时候也会出现混乱,使用不同的IO口,也会出现这干扰??


相关帖子

沙发
wangch_sh| | 2014-11-19 11:40 | 只看该作者
电磁干扰。电机转速多大?

使用特权

评论回复
板凳
liuhuonihao|  楼主 | 2014-11-19 13:12 | 只看该作者
wangch_sh 发表于 2014-11-19 11:40
电磁干扰。电机转速多大?

电机转速并不是很大,频率也在10k以内,现在是电机上电转的乱七八糟的,转一两圈就停,用示波器观察脉冲也不正常,液晶显示也不稳定。但是不给电机上电,一切又都正常了。也不知道问题在哪

使用特权

评论回复
地板
pass1876| | 2014-11-19 13:20 | 只看该作者
也许是程序问题

使用特权

评论回复
5
pengxiangbo00| | 2014-11-19 13:25 | 只看该作者
都没程序,不知道错误!

使用特权

评论回复
6
liuhuonihao|  楼主 | 2014-11-19 13:26 | 只看该作者
pass1876 发表于 2014-11-19 13:20
也许是程序问题

脉冲发对了,程序不知道怎么弄了,就三个信号,使能,脉冲,方向,时序问题也不至于这么大干扰啊

使用特权

评论回复
7
liuhuonihao|  楼主 | 2014-11-19 13:31 | 只看该作者
pengxiangbo00 发表于 2014-11-19 13:25
都没程序,不知道错误!

#include<iom16v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int
#define PUL_1  PORTD|=BIT(4)
#define PUL_0  PORTD&=~BIT(4)
#define DIR_1  PORTD|=BIT(5)
#define DIR_0  PORTD&=~BIT(5)
#define ENA_1  PORTD|=BIT(6)
#define ENA_0  PORTD&=~BIT(6)
//ms延时函数
void delay(uint i)
{
    while(i--)
    {                          
            uint j;               
        for(j=1;j<=1332;j++)   
                           ;               
    }
}

void port_int(void)
{
    PORTA=0XFF;
    DDRA=0Xff;
    PORTB=0XFF;
    DDRB=0Xff;
    PORTC=0XFf;  
    DDRC=0X00;
    PORTD=0Xff;  
    DDRD=0Xff;
}

void init(void)
{
   TIMSK=TIMSK|0x10;  
   TCCR1B=0x11;
   TCNT1H=0x00;                  //清除定时器值
   TCNT1L=0x00;
   TCCR1A=0x01;
  OCR1A=4000;
   SEI();  //全局中断使能
}

void main(void)
{
  port_int();
  init();
  while(1);
}

//T/C1的输出比较 A 匹配中断程序入口
#pragma interrupt_handler Compare:7
void Compare(void)
{
   PORTD^=(1<<PORTD4);
}


使用特权

评论回复
8
liuhuonihao|  楼主 | 2014-11-19 13:33 | 只看该作者
liuhuonihao 发表于 2014-11-19 13:31
#include
#include
#define uchar unsigned char

这个500hz频率脉冲,你能帮我看看什么问题么,手头有驱动器,不用芯片

使用特权

评论回复
9
fp123123| | 2014-11-19 23:50 | 只看该作者
找个arduino 328 nano,用grbl驱动看看,参考grbl的程序

使用特权

评论回复
10
liuhuonihao|  楼主 | 2014-11-21 14:03 | 只看该作者
结贴了,是驱动器与电机不匹配问题

使用特权

评论回复
11
hu2y| | 2014-12-18 08:40 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

31

帖子

0

粉丝