基于ATmega8的直流电机PWM调速控制系统设计与实现

工控自动化 时间:2011-05-27来源:网络

3、控制程序
以下是ATmega8单片机实现电机控制的部分程序:
PWM控制器的初始化:
voidtimer1_init(void)
{ OCR1A=0; //初始化为0,电机停止
OCR1B=0; //初始化为0,电机停止
TCCR1A=(1TCCR1B=(1  TCNT1=1;
  CLR_IN1;
  SET_IN2;
  CLR_IN3;
  SET_IN4;
}
定时器0中断服务函数,用于控制PWM1A的时间:
SIGNAL(SIG_OVERFLOW0)
{ if(Timer0_TickPWM1A_counter)
  { Timer0_Tick++;}
  else{printf(ACK:);
  SET_IN3;
SET_IN4;
  OCR1A=0;
  TIMSK=~_BV(TOIE0);
  }
}
电机正转,speed为速度(0-255可调),choose为电机通道选择(R为右、L为左):
voidfor_ward(ucharspeed,charchoose)
{ if(ch=='R')
{ OCR1B=speed; //PWM1B_EN;
  SET_IN1;
  CLR_IN2; }
  Else
  { OCR1A=speed;//PWM1A_EN;
  SET_IN3;
  CLR_IN4; }
}

五、结语

利用ATmega8单片机产生的PWM信号,加入数字PID算法实现对电机速度的控制,提高了系统的控制精度,保证了电机转速的稳定性;电机的启动、停止、左右转和速度都由程序定义,调试时只需修改PWM信号占空比即可实现速度控制,改变输出口电平即可实现电机正反转,无须改变系统硬件电路,即可实现各种控制,能有效缩短开发周期,提高效率;结合了受限倍频单极性可逆PWM电机驱动电路,增强了系统的驱动能力,提高了系统的可靠性和性价比。电路设计简单,电机控制方便,有利于广泛推广。

1 2

关键词: 控制系统 设计 实现 调速 PWM ATmega8 直流 电机 基于

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版