目次
前
次
パルスモータドライブ
パルスモータは、ユニポーラ式であれば
励磁回路を接続するだけで回せます。
写真の基板では、励磁回路にトランジスタアレイを
利用した簡易ドライバにしています。
IchigoJamの担当は、励磁パルスを生成することなので
1相、2相、1−2相をOUTの4ピンに出力します。
各励磁方法を考えます。
1相
タイミングチャートは、以下。
タイミングチャートから、正転の組み合わせを書き出してみると、以下。
- 0001
- 0010
- 0100
- 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
逆転の組み合わせは、以下。
- 1000
- 0100
- 0010
- 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相
タイミングチャートは、以下。
タイミングチャートから、正転の組み合わせを書き出してみると、以下。
- 1001
- 0011
- 0110
- 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
逆転の場合のパターンを見てみます。
- 1001
- 1100
- 0110
- 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相
タイミングチャートは、以下。
タイミングチャートから、正転の組み合わせを書き出してみると、以下。
- 1001
- 0001
- 0011
- 0010
- 0110
- 0100
- 1100
- 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
逆転の組み合わせは、以下。
- 1001
- 1000
- 1100
- 0100
- 0110
- 0010
- 0011
- 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
目次
前
次