マイコンボードArduinoを使って、プログラムでDCモータを回す方法を説明します。
DCモータは、電池などの直流電源を接続すると回転する機械です。回転の速さは、電源の電圧に比例するという特徴があります。図1は、スイッチを付けたDCモータの様子です。スイッチをオンにすると、電流がDCモータに流れ込んで、DCモータは回転します。
図1 DCモータの回路
今回は、トランジスタをスイッチとして使います。
図2に示すように、トランジスタの端子のうち、エミッタ端子をグラウンドにつなぎ、コレクタ端子を電圧源につなぎます。ここで、ベース端子に電圧をかけて電流を流すと、コレクタ端子からエミッタ端子に電流が流れるようになります。このとき、ベース電流は小さい値ですが、コレクタ端子から流れ込むコレクタ電流は大きいものになります。つまり、小さいベース電流で、大きいコレクタ電流をオンオフできる、スイッチになります。
図2 トランジスタのエミッタ接地回路
図3 今回使用したトランジスタ2SC2120
マイコンボードはArduinoマイコンボードを使用します。このマイコンボードは、パソコンでプログラムを作成し、それをマイコンボード側に焼くことで動作させることができます。今回、9番ピンをトランジスタのベース端子に接続します。このとき、間に1kΩの抵抗を挟みます。9番ピンをHighレベル(5V)にすると、約5mAの電流がベース端子に流れ込みます。これにより、コレクタ電流が流れるようになります。モータ側の回路とは、グラウンドを接続します。
図4 Arduinoマイコンボード
マイコンからの信号でトランジスタを操作して、DCモータに電流を流して回転させる回路を図5に示します。DCモータの電線の一方を電池の+極に接続し、もう一方をトランジスタのコレクタ端子に接続します。トランジスタのベース端子は抵抗(1kΩ)を通してマイコンボード(Arduino)に接続します。トランジスタのエミッタ端子をグラウンドにつなぎます。トランジスタのベース端子にマイコンボードから電圧をかけて電流を流すことで、オンオフします。図6に実際の装置を示します。
図5 マイコンによるDCモータ駆動回路
図6 結線した装置
簡単なプログラムを用意しました。まず、9番ピンからベース端子への電流を流すために、9番ピンを出力に設定しました。次に、9番ピンをHighレベル(5V)にして待ち、そのあとLowレベル(0V)にして1秒待つように関数loop()の中を記述しました。これを繰り返すことで、1秒だけモータが回転し、そのあと1秒間停止したのち再びモータが回転する、という動作を繰り返します。
HighレベルとLowレベルを共に一秒にすると、Lowレベルになったときにもモータは回転を続けます。これは、慣性によりモータの回転が止まりにくいためです。Highレベルを0.25秒、Lowレベルを1秒続けるようにすると、回転と停止が約一秒になります。
また、この慣性で回転が完全には止まらないことを利用し、Hjghの時間とLowの時間を調整することで、モータの回転数を変えることができます。このとき、9番ピンの出力は矩形波信号となります。この矩形波信号の周期を一定(0.1秒くらい)にし、HighレベルとLowレベルの比を変化させることで、モータの回転数を変更することができます。この方式をPWM方式といいます。
Arduinoマイコンボードのピンは、出力や入力を行うことができます。この場合の出力は、Highレベル(5V)またはLowレベル(0V)の電圧を出すことです。また入力は、ピンに印加された電圧が5VならHighレベルとして、0VならLowレベル、として認識します。
さて、ピンからHighレベルを出力するということは、5Vの電圧信号を出すということになります。ピンを負荷(LEDやDCモータなど)につなぐと、負荷の抵抗値に応じた電流がながれることになります。ただ、この時の電流値はそんなに大きくありません。せいぜいLEDを点灯させるくらいの大きさです。
今回使用したDCモータは消費電力が約500mAでした。そのためDCモータを直接ピンに接続しても、必要な電流を流すことができません。そこで、DCモータを回転させる電源としてバッテリを使い、トランジスタをスイッチとして使いました。マイコンボード側でトランジスタのベース端子に電流を流すことで乾電池の電流をDCモータに流し、DCモータを回転させることができます。
掲載大学 学部 |
徳島大学 理工学部 | 徳島大学 理工学部のページへ>> |
私たちが考える未来/地球を救う科学技術の定義 | 現在、環境問題や枯渇資源問題など、さまざまな問題に直面しています。 これまでもわたしたちの生活を身近に支えてきた”工学” が、これから直面する問題を解決するために重要な役割を担っていると考えます。 |