ステッピングモータ

移転しました。


ステッピングモータを回しました。
ゆくゆくは、とてつもなくゆっくり回したいので、1-2相励磁のテストです。


秋月取り扱いの安いモータで、spg20-332。
4相(2相)ユニポーラ、10極で、24:1ギア付きで、480ステップ/回転です。
最大トルクは19.6mN.m連続値。


コイル抵抗が68Ωと、それなりにあるので、5Vのavr出力直結でテストしました。
(消費電流は電圧降下しないとして100mA弱で定格を超えていますし、モータコイルの逆起電力やらなんやらで、avrが壊れる恐れがあります。が、保護回路を配線する手間より100円のAVRの方が安いのです。)


200rpmくらいで、負荷なしで脱調しました。ギアも重そうです。もっと電流を流せば改善されるでしょう。
思っていたよりもなめらかに動きます。ギアの恩恵かな。

#include <avr/io.h>
#include <util/delay.h>
#include <avr/pgmspace.h>

#define LEN 8

void wait(uint16_t w){
	while(w--) _delay_ms(1);
}

//1-2 phase low active
//0x0000 InA, In-A, InB, In-B
PROGMEM prog_char one_two_phase[LEN] =
{
  0b00000111,
  0b00000101,
  0b00001101,
  0b00001001,
  0b00001011,
  0b00001010,
  0b00001110,
  0b00000110,
};

int main(void){
  //high-low
  //PORTB = 0x00;
  PORTD = 0x00;

  //in-out direction
  //DDRB = 0xFF;
  DDRD = 0xFF;


  char i = 0;
  while(1){
    if ( i >= LEN)
      i = 0;

    PORTD = pgm_read_byte_near(one_two_phase + i);

    wait(10);
    i++;
  }

  return 0;
}