【Arduino入門】トランジスタを使用して小型DCモーターを制御する

Arduino Elegoo MEGA2560 R3ボードとトランジスタを使用して小型DCモーターを制御してみます。

■用意したもの

・Arduinoバージョン1.8.13がインストールされているPC(Windows10)

・Elegoo MEGA2560 R3ボード、1個

・BREADBOARD(ブレットボード) MB-102、1個

・ブレッドボード用電源モジュール(Breadboard Power Supply)、1個

・モータードライバー IC(L293D)、1個

一見すると、74hc595 IC(シフトレジスタ)と違いがわかりにくいですが、チップ本体には「L293D」という記載があります。

・DCモーター、ファン・ブレード。各1個。

・ACアダプター 9V 1A、1個

・オス – オス ジャンパー線(ジャンパーワイヤ)(M-M wires (Male to Male jumper wires))、5つ

それぞれ(ELEGOO Arduino用のMega2560スタータキット最終版)に付属しているものです。

■ブレッドボード用電源モジュールへの理解

小型のDCモーターは、MEGA2560 R3ボードのデジタル出力よりも多くの電力が必要となります。モーターをMEGA2560 R3ボードのピンに接続しようとすると、MEGA2560 R3 ボードが損傷してしまう恐れがあります。

そのため、ブレッドボード用電源モジュールを使用します。

■L293Dへの理解

L293Dは、2つのDCモーターを任意の方向に同時に制御できる16ピンのモータードライバーICです。L293Dは、4.5 V〜36 Vの電圧で最大600 mAの双方向駆動電流を提供するように設計されています。

■ブレッドボードに、ブレッドボード用電源モジュールを接続する

それでは、MEGA2560 R3ボードとトランジスタを使用して小型DCモーターを制御してみますので、まずブレッドボードに、ブレッドボード用電源モジュールを接続します。

接続する際は、ブレッドボードの「+」と「-」が、ブレッドボード用電源モジュールの「+」と「-」にそろうように接続します。

■DCモーター、L293D IC、ジャンパー線をブレッドボードに接続する

接続後、DCモーター、L293D IC、ジャンパー線をブレッドボードに接続します。

DCモーターの線、ジャンパー線の配線を間違えないようにします。

■ブレッドボードとMEGA2560 R3ボードをジャンパー線で接続する

接続後、ブレッドボードとMEGA2560 R3ボードをジャンパー線で接続します。

配線を間違えないようにします。

■MEGA2560 R3ボードをPC(パソコン)に接続する

接続後、MEGA2560 R3ボードをUSBケーブルを使って、PC(パソコン)に接続する。

■ブレッドボード用電源モジュールにACアダプターを取り付ける

接続後、ブレッドボード用電源モジュールにACアダプターを取り付けます。

接続すると、モジュール本体の緑色LEDが点灯します。

■コードをアップロードし、マイコンボードに書き込む

接続後、ELEGOO Arduino用のMega2560スタータキット最終版に付属したCD-ROMをパソコンで読み取ります。

CD-ROMから「日本語」をクリックする。

「code」をクリックする。

「Lesson 29 DC Motors」をクリックする。

「DC_Motor」をクリックする。

「DC_Motor.ino」をクリックする。

クリックすると、「Arduino」が起動し、ウインドウ内に「DC_Motor」のコードが表示されます。

このコードをMEGA2560 R3ボードに書き込みます。

書き込む際は、「Arduino」の上部にある「マイコンボードに書き込む・書込装置を使って書き込み」ボタンをクリックします。クリックする際は、接続したPC(パソコン)でMEGA2560 R3ボードが認識されているかを確認し、クリックします。

クリックすると、「ボードへの書き込みが完了しました。」と表示され、書き込みが成功しました。

■【トラブルその1】DCモーターが動かないが発生

書き込み後、シリアルモニタを開いてDCモーターの制御を確認しましたが、DCモーターが動きませんでした。配線などの見直し、または変更を行いましたが、何度やっても動きません。

いろいろ調べてみると、海外のArduinoサイトで、ELEGOO スターターキットを購入し、同じようにDCモーターが動かないトラブルが発生している方がいました。(https://forum.arduino.cc/index.php?topic=567965.0

ELEGOO Arduino用のMega2560スターターキット最終版に付属したCD-ROMに収録されているLessonマニュアルでは動かないようなので、YoutubeでArduinoスターターキットを使って、DCモーターを制御している動画をアップロードしている海外ユーザーがいましたので、こちらを参考にしてみました。(https://www.youtube.com/watch?v=mZ666xmKzi0

こちらの動画をアップロードされている方は、今回用意したもの以外に「104PFセラミックコンデンサ(セラミックディスクコンデンサ)」を2つ用意します。

こちらはELEGOO Arduino用のMega2560スターターキット最終版に付属しています。

配線図は、ソフトウェア開発のプラットフォーム「GitHub」にて、Ricardo Morenoさんという方が、公開されています。(https://github.com/rmorenojr/ElegooTutorial/blob/master/Lesson%2029%20-%20DC%20Motors/DC_Motor_bb.png

■【トラブルその2】DCモーターに半田つけされた線が外れる

書き込み後、DCモーターが動かないトラブルが発生。発生した後に試行錯誤している中、DCモーターの線が外れてしまうトラブルが発生してしまいました。付属していたDCモーターのハンダ付けが甘かったのか原因はわかりませんが、線が外れてしまったので、ペンチで心線被覆を剥きました(被覆線のストリップ作業)。

その後、電子工作用のはんだと、電気半田こてで、再度半田つけしました。

なんとかDCモーターの線を修復完了。

■配線などを修正、新しくコードを書き込んでDCモーターを制御する

トラブルその1、その2を解決し、MEGA2560 R3ボードとパソコンをUSBケーブルで接続し、ブレッドボード用電源モジュールに取り付けACアダプターに電源供給します。そして、Arduinoを起動。

起動後、ソフトウェア開発のプラットフォーム「GitHub」にて、Ricardo Morenoさんという方が、DCモーターを制御するプログラムを公開されていますので、こちらをお借りします(https://github.com/rmorenojr/ElegooTutorial/blob/master/Lesson%2029%20-%20DC%20Motors/DC_Motor/DC_Motor.ino)。

「Arduino」の上部にある「マイコンボードに書き込む・書込装置を使って書き込み」ボタンをクリックし、コードを書き込んでみます。

書き込み後、「Arduino」の上部にある「シリアルモニタ」をクリックします。

クリックすると、シリアルモニタが表示され、DCモーターに取り付けたファン・ブレードが、プログラムされた通りに制御されて回転します。

■トランジスタを使用して小型DCモーターを制御することができるのか検証

書き込み後、MEGA2560 R3ボードとトランジスタを使用して小型DCモーターを制御することができるのか検証を行いました。

検証を行いましたが、書き込んだプログラムの通りに制御され小型DCモーターに取り付けたファン・ブレードが回転されることを確認できました。

コメント

タイトルとURLをコピーしました