스테퍼 모터 발열을 줄이는 방법

2018. 6. 5. 08:30Hobby/아두이노

반응형

스템모터 테스트좀 했더니 발열이 생각보다 아주 뜨겁습니다. 스테퍼 발열이 검색어에 있을 정도여서 제품 불량은 아닌 것 같아 발열 해소 고민좀 해봤습니다.

제조사들 말을 들어보면

  • 컨트롤러 자체에서 전원 관리리가 되어야 된다.
  • 스펙 믿지 말고 발열 없는 상태까지 전원 바꿔가며 테스트 한 후 적정 전압을 연결해야 한다.
  • 더 높은 전원을 사용한다. (이건 좀 아닌듯)

현재 작업이 비싼 모터도 필요없고 더군다나 비싼 컨트롤러는 필요 없어 프로그램 상에서 해결 해보려고 뒤적거려보다 DC모터 전원을 꺼준다는 팁을 보았습니다.

그래서 컨트롤러와 연결된 아두이노의 핀 전원 4개다 off 시켜보는 방법을 생각했는데 효과가 있습니다. 스텝 모터의 시퀀스를 이용해서 멈추면 전기 힘으로 모터 축을 붙잡고 컨트롤러의 led 불도 켜져 있습니다. 이 상태에서 모터는 작동 안하지만 발열은 계속 발생합니다. 프로그램에서 해결 하는 방법은 아래와 같습니다.

라이브러리 사용을 안하면

digitalWrite(pinNumber, LOW);

또는 사용하는 라이브러리에 따라 다르겠지만

stepper.disableOutputs();

이렇게 해주면 발열이 확 줄어듭니다. 라이브러리에서 지원해주지 않으면 함수 하나 만들어서 사용하면 됩니다.

예를 들어 위와 같은 배선에서는 

  1. stepperDisconnect() {
  2. digitalWrite(8, LOW);
  3. digitalWrite(9, LOW);
  4. digitalWrite(10, LOW);
  5. digitalWrite(11, LOW);
  6. }

이렇게 사용하면 스테퍼 모터 드라이버에 있는 LED 불이 꺼지는 것을 볼 수 있습니다. 다시 작동 할 때는 켜는 기능은 만들지 않아도 됩니다. 스테퍼 모터의 시퀀스가 작동하면 자동으로 켜집니다. 시퀀스 자체가 핀에 HIGH, LOW 신호를 주는 기능이니까요.

반응형