第10章 マイコン機器とマイコンプロ グラム ● マイコン回路とプログラミン グ ● サーボモータ,直流モータ制 御以外のプログラム マイコンでどのようなことができるのか? モータのマイコン制御を使いこなす!
10.1 ステッピングモータ ★メカトロニクス機械で重要なアクチュエータ ①パルス信号を与えるごとに,一定 の角度ずつ回転する。 ②正確な回転角度制御が可能である。 ③パルス周波数を変えることで,回 転速度が変わる。 ④パルスモータとも呼ばれる。 ⑤限界のトルクを超えると制御でき なくなる(脱調)。 ⑥回転数が高いほど,トルクが小さ い。 ステッピングモータ 第7章スライドより
● ステッピングモータの構造 ● ケース内に永久磁石を用いた回転子 ● 周囲に複数のコイル ● コイルに対して順番に電流を流す。
● ステッピングモータの動作原理
● ステッピングモータを動かすマイコン回路 ステッピングモー タ ダーリント ントランジ スタ
● ステッピングモータを動かすプログラム① ' ' Pulse Motor Drive Program ' pulsesample.bas ' Config Portb = Output Config Portd = Input ' Dim T As Byte ' Do T = 50 Portb.0 = 1 : Portb.1 = 0 : Portb.2 = 0 : Portb.3 = 1 Waitms T Portb.0 = 1 : Portb.1 = 1 : Portb.2 = 0 : Portb.3 = 0 Waitms T Portb.0 = 0 : Portb.1 = 1 : Portb.2 = 1 : Portb.3 = 0 Waitms T Portb.0 = 0 : Portb.1 = 0 : Portb.2 = 1 : Portb.3 = 1 Waitms T Loop End 最も簡単なプログラム
● ステッピングモータを動かすプログラム② ' ' Sample Program pulse2005c.bas ' Config Portb = Output Config Portd = Input Config Timer1 = Timer, Prescale = 1024 ' Dim I As Word Dim T As Word Dim A As Byte Dim X As Single ' T = 12 For I = 1 To 50: Portb.0 = 1 : Portb.1 = 0 : Portb.2 = 0 : Portb.3 = 1 Waitms T Portb.0 = 1 : Portb.1 = 1 : Portb.2 = 0 : Portb.3 = 0 Waitms T Portb.0 = 0 : Portb.1 = 1 : Portb.2 = 1 : Portb.3 = 0 Waitms T Portb.0 = 0 : Portb.1 = 0 : Portb.2 = 1 : Portb.3 = 1 Waitms T Next I タイマの利用
● ステッピングモータを動かすプログラム② Start Timer1 Do A = 0 Timer1 = 0 While A < 2 If A = 0 And Pind.0 = 0 Then A = 1 End If If A = 1 And Pind.0 = 1 Then A = 2 X = Timer1 End If Wend T = X / 100 ' For I = 1 To 50: Portb.0 = 1 : Portb.1 = 0 : Portb.2 = 0 : Portb.3 = 1 Waitms T Portb.0 = 1 : Portb.1 = 1 : Portb.2 = 0 : Portb.3 = 0 Waitms T Portb.0 = 0 : Portb.1 = 1 : Portb.2 = 1 : Portb.3 = 0 Waitms T Portb.0 = 0 : Portb.1 = 0 : Portb.2 = 1 : Portb.3 = 1 Waitms T Next I Loop End スイッチを押 す 時間を計測 スイッチをはな す
10.2 タイマを用いた周波数測定 器
● タイマを利用したプログラム ' ' Frequency Measuring Program ' Config Lcdpin = Pin, Db4 = Portb.4, Db5 = Portb.5, Db6 = Portb.6, Db7 = Portb.7, E = Portb.3, Rs = Portb.2 Config Lcd = 16 * 2 'configure lcd screen Config Timer1 = Timer, Prescale = 1024 'Timer1 Setup Dim A As Byte Dim B As String * 16 Dim X As Single ' Word Ddrb = &B Ddrd = &B ' ' Sencing (Loop) ' Start Timer1 'Start Timer1 Do A = 0 Timer1 = 0 While A < 4 If A = 0 And Pinb.0 = 1 Then A = 1 Portd.4 = 1 End If LCD(液晶 表示器)の利 用
● タイマを利用したプログラム If A = 1 And Pinb.0 = 0 Then A = 2 Timer1 = 0 Portd.4 = 0 End If If A = 2 And Pinb.0 = 1 Then A = 3 Portd.4 = 1 End If If A = 3 And Pinb.0 = 0 Then A = 4 X = Timer1 Portd.4 = 0 End If If Timer1 => Then 'Time Over=5 sec A = 4 X = Timer1 End If Wend
● タイマを利用したプログラム ' ' Calculation ' X = / X 'Frequency (Hz) X = X * 60 'Frequency (rpm) B = Str(x) B = Left(b, 5) ' ' Result screen ' Cls Home Upper Lcd "Engine speed: " Lowerline Lcd B Lcd " rpm" Wait 1 Loop End LCDの表示
10.3 A/D コンバータ アナログ電圧を取り込み,デジタル値に変換する。
●A/D コンバータを動かすプログラム ' ' A/D Converter Sample Program ' for AT90S8535-8PC ' Config Lcdpin = Pin, Db4 = Portb.4, Db5 = Portb.5, Db6 = Portb.6, Db7 = Portb.7, E = Portb.3, Rs = Portb.2 Config Lcd = 16 * 2 'configure lcd screen Config Adc = Single, Prescaler = Auto 'For A/D conv. Start Adc Dim A As Byte Dim Vv0 As Word Dim Vv1 As Word Dim V0 As Single Dim V1 As Single Dim B0 As String * 16 Dim B1 As String * 16 Ddrb = &B Ddrd = &B ' ' First screen ' Cls 'clear the LCD display Lcd "A/D Converter" 'display this at the top line Lowerline 'select the lower line Lcd "Sample Program" 'display this at the lower line Wait 1 A/D 変換機能の使用
●A/D コンバータを動かすプログラム ' ' Sencing (Loop) ‘ Do Vv0 = 0 Vv1 = 0 For A = 1 To 50 Vv0 = Vv0 + Getadc(0) 'read A/D value from channel 1 Vv1 = Vv1 + Getadc(1) 'read A/D value from channel 2 Waitms 5 Next A Vv0 = Vv0 / 50 Vv1 = Vv1 / 50 ' ' Calculation for A/D ' V0 = Vv0 * 5 V0 = V0 / 1024 'Voltage (V) V1 = Vv1 * 5 V1 = V1 / 1024 'Voltage (V) B0 = Str(V0) B0 = Left(b0, 4) B1 = Str(V1) B1 = Left(b1, 4) アナログ電圧の読み取り
●A/D コンバータを動かすプログラム ' ' Result screen ' Cls Home Upper Lcd "ch0= " Lcd B0 Lcd " V" Lowerline 'select the lower line Lcd "ch1= " Lcd B1 Lcd " V" Wait 1 Loop End
●A/D コンバータの応用例 ラジコン制御の魚ロボット
●A/D コンバータの応用例 ラジコン制御の魚ロボット
●A/D コンバータの応用例 ラジコン制御の魚ロボット
10.4 複数のマイコンの利用 模型車いすのマイコン回路
● 模型車いすへの応用例
【演習問題】 ★直流モータまたは R/C サーボモータを 使ったメカトロニクス機械の案を考え,ど のようなモータ制御が必要かまとめなさい。