DIY 电调的问题,求教。
因为电调做好了,但电机老是不动……所以就拆开程序调试。在启动电机启动那部分,就是一步一步的换AB->AC->BC->BA->CA->CB的程序,我单独提出来后用中断将相位加1,主程序循环判断。(其实我就是想让电机动动就好了……)但是,无论我怎么按中断,电机就是不动……我去测3个P,N管得交点电位,全是12V。开始以为是下臂开得比上臂慢……后来先开下臂,然后给了小延时,再开上臂。发现,还是不动……电路用表测过通路了,没有问题。求教前辈们…… 呃……贴下程序吧……
#include "test0_1.h"
void Slave(void) //从机全初始化
{
DDRB=0x0F;
DDRC=0x00;
DDRD=0x87;
PORTB=0x00;
PORTC=0x00;
PORTD=0x00;
}
void Origin(void) //转动程序
{
switch (State)
{
case AB:
CHU_OFF;
CHD_OFF;
LB_EN;
for(flag=0;flag<100;flag++);
HA_EN;
break;
case AC:
CHU_OFF;
CHD_OFF;
LC_EN;
for(flag=0;flag<100;flag++);
HA_EN;
break;
case BC:
CHU_OFF;
CHD_OFF;
LC_EN;
for(flag=0;flag<100;flag++);
HB_EN;
break;
case BA:
CHU_OFF;
CHD_OFF;
LA_EN;
for(flag=0;flag<100;flag++);
HB_EN;
break;
case CA:
CHU_OFF;
CHD_OFF;
LA_EN;
for(flag=0;flag<100;flag++);
HC_EN;
break;
case CB:
CHU_OFF;
CHD_OFF;
LB_EN;
for(flag=0;flag<100;flag++);
HC_EN;
break;
}
}
void int1_init(void)
{
MCUCR|=0x08;
GICR |=0x80;
}
SIGNAL(SIG_INTERRUPT1)
{
flag=255;
RL_ON;
while(flag--) ;
State++;
State%=6;
RL_OFF;
}
int main(void)
{ sei();
Slave();
int1_init();
while(1)
{
Origin();
}
} 貌似找到问题了……下臂的s极电压2.9V,g极电压4.5V……貌似不够管子导通……不知道对不对?准备明天将连接地线的电阻由4.7k改到1k左右试试……请前辈们指点下~~! 改了电路,还是不行……不过通电的那瞬间,电机会动那么一下……求教啊……呼叫前辈啊~~! 对了,电路图用的是无感无刷直流电机全攻略里面的电路图……
页:
[1]