目次

パルスモータドライブ

 パルスモータは、ユニポーラ式であれば
 励磁回路を接続するだけで回せます。



 写真の基板では、励磁回路にトランジスタアレイを
 利用した簡易ドライバにしています。




 IchigoJamの担当は、励磁パルスを生成することなので
 1相、2相、1−2相をOUTの4ピンに出力します。

 各励磁方法を考えます。

 1相

  タイミングチャートは、以下。



  タイミングチャートから、正転の組み合わせを書き出してみると、以下。
  1. 0001
  2. 0010
  3. 0100
  4. 1000
  右から左に1をシフトしているだけ。   状態変数Sを0から3まで動かして、対応するパターンを   出力すれば、回転を実現できそう。   状態変数を動かすブロックとパターンを出力するブロックに   分けてBASICで実現。 10 ' test pulse motor 20 LET S,0 30 GOSUB 100:WAIT 60 40 LET S,S+1 50 IF S=4 LET S,0 60 GOTO 30 70 END 100 ' 110 LET [0],S 120 FOR I=1 TO 4 130 LET [I],[0] & 1:LET [0],[0] >> 1 140 NEXT 150 FOR I=1 TO 4:OUT I,[I]:NEXT 160 RTN   逆転の組み合わせは、以下。
  1. 1000
  2. 0100
  3. 0010
  4. 0001
  正転では、1から左にシフトしていったものを   8から右にシフトしていけばよいとわかります。   右にシフトするのと、初期値を8にするとます。 10 ' test pulse motor 20 LET S,8 30 GOSUB 100:WAIT 60 40 LET S,S >> 1 50 IF S=0 LET S,8 60 GOTO 30 70 END 100 ' 110 LET [0],S 120 FOR I=1 TO 4 130 LET [I],[0] & 1:LET [0],[0] >> 1 140 NEXT 150 FOR I=1 TO 4:OUT I,[I]:NEXT 160 RTN  2相   タイミングチャートは、以下。   タイミングチャートから、正転の組み合わせを書き出してみると、以下。
  1. 1001
  2. 0011
  3. 0110
  4. 1100
  配列に、パターンを入れておき、状態変数Sを0から3   まで動かし、配列に格納済みの値を出力すればよさそう。 10 ' test pulse motor 2 phase 20 LET S,0:LET [10],9,3,6,12 30 GOSUB 100:WAIT 60 40 LET S,S+1 50 IF S=4 LET S,0 60 GOTO 30 70 END 100 ' 110 LET [0],[10+S] 120 FOR I=1 TO 4 130 LET [I],[0] & 1:LET [0],[0] >> 1 140 NEXT 150 FOR I=1 TO 4:OUT I,[I]:NEXT 160 RTN   逆転の場合のパターンを見てみます。
  1. 1001
  2. 1100
  3. 0110
  4. 0011
  配列に、格納するパターンが異なるだけで   サブルーチンはそのままで良いとわかります。 10 ' test pulse motor 2 phase 20 LET S,0:LET [10],9,12,6,3 30 GOSUB 100:WAIT 60 40 LET S,S+1 50 IF S=4 LET S,0 60 GOTO 30 70 END 100 ' 110 LET [0],[10+S] 120 FOR I=1 TO 4 130 LET [I],[0] & 1:LET [0],[0] >> 1 140 NEXT 150 FOR I=1 TO 4:OUT I,[I]:NEXT 160 RTN  1−2相   タイミングチャートは、以下。   タイミングチャートから、正転の組み合わせを書き出してみると、以下。
  1. 1001
  2. 0001
  3. 0011
  4. 0010
  5. 0110
  6. 0100
  7. 1100
  8. 1000
  配列に、パターンを入れておき、状態変数Sを0から7   まで動かし、配列に格納済みの値を出力します。 10 ' test pulse motor 1-2 phase 20 LET S,0:LET [10],9,1,6,2,3,4,12,8 30 GOSUB 100:WAIT 60 40 LET S,S+1 50 IF S=8 LET S,0 60 GOTO 30 70 END 100 ' 110 LET [0],[10+S] 120 FOR I=1 TO 4 130 LET [I],[0] & 1:LET [0],[0] >> 1 140 NEXT 150 FOR I=1 TO 4:OUT I,[I]:NEXT 160 RTN   逆転の組み合わせは、以下。
  1. 1001
  2. 1000
  3. 1100
  4. 0100
  5. 0110
  6. 0010
  7. 0011
  8. 0001
  配列に格納するパターンが違うだけなので   パターン値だけを変更。 10 ' test pulse motor 1-2 phase 20 LET S,0:LET [10],9,8,12,4,6,2,3,1 30 GOSUB 100:WAIT 60 40 LET S,S+1 50 IF S=8 LET S,0 60 GOTO 30 70 END 100 ' 110 LET [0],[10+S] 120 FOR I=1 TO 4 130 LET [I],[0] & 1:LET [0],[0] >> 1 140 NEXT 150 FOR I=1 TO 4:OUT I,[I]:NEXT 160 RTN  ラベル利用で書き換えることも可能。 10 ' test pulse motor 1-2 phase 20 LET S,0:LET [10],9,8,12,4,6,2,3,1 30 @CSUB 40 GSB @HND:WAIT 60 50 LET S,S+1 60 IF S=8 LET S,0 70 GOTO @CSUB 80 END 100 @HND 110 LET [0],[10+S] 120 FOR I=1 TO 4 130 LET [I],[0] & 1:LET [0],[0] >> 1 140 NEXT 150 FOR I=1 TO 4:OUT I,[I]:NEXT 160 RTN

目次

inserted by FC2 system