研究テーマ PICによるモーター制御 ≪目的≫ ・ステッピングモーターの制御と特性を知る ・メトロノームの作成 ≪作業内容≫ 1.ステッピングモーターの特性 スイッチ操作で回して見る スイッチを左から順に1つずつ押します。 X→Y→X¯→Y¯ これを繰り返すと、 X→Y→X¯→Y¯ →X→Y→X¯→Y¯ ・・・ 少しずつ回転しました。 逆から押すと、逆転しました。 このように、1つずつ励磁する方法を1相励磁 といいます。 次に、スイッチを2つずつ押して見ます。 表にすると右のようになります。 1が押す、0が押さない状態です。 このように、2つのコイルを順に励磁する方法を 2相励磁と呼びます。 順番 X Y X Y 1 1 1 0 0 2 0 1 1 0 3 0 0 1 1 4 1 0 0 1 1相励磁よりも、2相励磁のほうがトルクが強いです。 2.PIC で制御 いよいよPICでステッピングモータを制御します。 回路図は以下の通りです。 FETのゲートを、スイッチの代わりにPICのRB4~7に接続します。 PICのRB4~7が今までのスイッチ代わりになると言うことです。 逆に、スイッチは今までとは役割が異なり、PICに指示を与えるために使います。 3.プログラム メトロノームはテンポを確実に刻む物なので、BPM に応じて PIC へのプログラムを 変えて、BPM を変えます。 具体的には、パルスを送る間に入れる、ディレイ(休み時間)を設定していきます。 例えば、BPM60 の場合 1 秒間に1テンポ刻みます。1 テンポ1秒 4 パルスで 1 ループ。端っこまで 10 ループ必要なので 1/4=0.25 秒 これを 1 秒間に10ループさせたいのでさらに 0.25/10=0.025 秒 μ秒に変えて 25000μ秒 これを設定し PIC に書き込みます。 それに加えて左右に交互に動くため、カウントもプログラムで利用しループをかけます。 実際のプログラムの一部↓ while(1){ while(k<10){ PORTB=0b11001100; __delay_us(25000); PORTB=0b01100110; __delay_us(25000); PORTB=0b00110011; __delay_us(25000); PORTB=0b10011001; __delay_us(0.025); k++; } while(k<20){ PORTB=0b00110011; __delay_us(25000); PORTB=0b01100110; __delay_us(25000); PORTB=0b11001100; __delay_us(25000); PORTB=0b10011001; __delay_us(i); k++; さらに IF 文などを追加すると、スイッチを押すことで、 BPM を変えたりすることができます。 *感想* 最初は何をするかもあやふやなまま、ひたすら実験を繰り返す事から始まった 課題研究でした。 メトロノームを作ると決まった(決めれた?)のも 2 学期の最後で、 時間が迫られながらも、無事メトロノームを完成できてよかったと思います。 計画することの大切さ、モノづくりの大変さ、失敗したときの対処、など たくさんのことが学べる事ができた課題研究でした。 この課題研究が将来の自分に活かしていければいいな、と考えます。
© Copyright 2024 Paperzz