220 likes | 370 Views
第10章 マイコン機器とマイコンプログラム. ● マイコン回路とプログラミング ●サーボモータ,直流モータ制御以外のプログラム. マイコンでどのようなことができるのか?. モータのマイコン制御を使いこなす!. 10.1 ステッピングモータ. ★ メカトロニクス機械で重要なアクチュエータ. ① パルス信号を与えるごとに,一定の角度ずつ回転する。 ②正確な回転角度制御が可能である。 ③パルス周波数を変えることで,回転速度が変わる。 ④パルスモータとも呼ばれる。 ⑤限界のトルクを超えると制御できなくなる(脱調)。 ⑥回転数が高いほど,トルクが小さい。.
E N D
第10章 マイコン機器とマイコンプログラム第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 ●ステッピングモータを動かすプログラム② スイッチを押す スイッチをはなす 時間を計測
' ' 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 = &B11111100 Ddrd = &B00110000 ' ' 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 => 50000 Then 'Time Over=5 sec A = 4 X = Timer1 End If Wend ●タイマを利用したプログラム
' ' Calculation ' X = 10000 / 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 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 = &B11111100 Ddrd = &B00110000 ' ' 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変換機能の使用
●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サーボモータを使ったメカトロニクス機械の案を考え,どのようなモータ制御が必要かまとめなさい。