ステッピングモーター 動作プログラム@


動作 正転 → 1秒停止 → 逆転 → ずっと停止

駆動方式 1-2相励磁方式

int count = 0;

while( count !=300)
{

  porta = 0x08; //1000
  delay_ms(1);

  porta = 0x0c; //1100
  delay_ms(1);

  porta = 0x04; //0100
  delay_ms(1);

  porta = 0x06; //0110
  delay_ms(1);

  porta = 0x02; //0010
  delay_ms(1);

  porta = 0x03; //0011
  delay_ms(1);

  porta = 0x01; //0001
  delay_ms(1);

  porta = 0x09; //1001
  delay_ms(1);

  count++;

   if(count == 300)
   {
   porta = 0x00;
   break;
   }
}



delay_s(1);
count = 0;


while( count != 300)
{

  porta = 0x01; //0001
  delay_ms(1);

  porta = 0x03; //0011
  delay_ms(1);

  porta = 0x02; //0010
  delay_ms(1);

  porta = 0x06; //0110
  delay_ms(1);

  porta = 0x04; //0100
  delay_ms(1);

  porta = 0x0c; //1100
  delay_ms(1);

  porta = 0x08; //1000
  delay_ms(1);

  porta = 0x09; //1001
  delay_ms(1);

  count++;


   if(count == 300)
   {
   porta = 0x00;
   break;
   }





while(1)
{
porta = 0x00;
}

}


↓正転


























count に 1 を足す。300になるまでループ

count が300になったら porta を 出力0にする。
while 文から脱出







一秒待つ
カウント を 0 に戻す。


↓逆転


























count に 1 を足す。300になるまでループ


count が300になったら porta を 出力0にする。
while 文から脱出









porta をずっと出力 0 にする。

ステッピングモーター

プログラム@
プログラムA
プログラムB

プログラムC
プログラムC-2


ソースブースト6.0 での関数一覧


電子日記へ戻る


C言語初心者の為もっと良い方法もあると思います・・。

このプログラムは単に正転、逆転、ずっと停止という簡単なプログラム。
駆動方式は 1-2相励磁方式。

止まった後また回すには、PICのリセットボタンを押して動きを確認します。
最後のずっと出力を0にする理由はあれを入れておかないと、勝手にまた動き出すので、自分がプログラムした通りに動作しているかシッカリ判断するのに入れてあります。

ずっと 出力を0にしておけばプログラムした通りに動いて止まったと確認出来ます。
信号の間のディレイは 1ms にしてありますが、脱調して回らなければ ディレイ時間を増やすと良いです。

while( count != xx )
の xx の数字を変えれば任意の角度で動かす事が出来ます。