Arduino Elegoo MEGA2560 R3ボードとトランジスタを使用して小型DCモーターを制御してみます。
- ■用意したもの
- ■ブレッドボード用電源モジュールへの理解
- ■L293Dへの理解
- ■ブレッドボードに、ブレッドボード用電源モジュールを接続する
- ■DCモーター、L293D IC、ジャンパー線をブレッドボードに接続する
- ■ブレッドボードとMEGA2560 R3ボードをジャンパー線で接続する
- ■MEGA2560 R3ボードをPC(パソコン)に接続する
- ■ブレッドボード用電源モジュールにACアダプターを取り付ける
- ■コードをアップロードし、マイコンボードに書き込む
- ■【トラブルその1】DCモーターが動かないが発生
- ■【トラブルその2】DCモーターに半田つけされた線が外れる
- ■配線などを修正、新しくコードを書き込んでDCモーターを制御する
- ■トランジスタを使用して小型DCモーターを制御することができるのか検証
■用意したもの
・Arduinoバージョン1.8.13がインストールされているPC(Windows10)
・Elegoo MEGA2560 R3ボード、1個(https://amzn.to/3quSI98)
・BREADBOARD(ブレットボード) MB-102、1個(https://amzn.to/2VAs5Bg)
・ブレッドボード用電源モジュール(Breadboard Power Supply)、1個(https://amzn.to/33CSgvB)
・モータードライバー IC(L293D)、1個(https://amzn.to/2JytGoN)
一見すると、74hc595 IC(シフトレジスタ)と違いがわかりにくいですが、チップ本体には「L293D」という記載があります。
・DCモーター、ファン・ブレード、各1個(https://amzn.to/3g4xIkE)
・ACアダプター 9V 1A、1個(https://amzn.to/3g7ZTyX)
・オス – オス ジャンパー線(ジャンパーワイヤ)(M-M wires (Male to Male jumper wires))、5つ(https://amzn.to/36EjxQk)
それぞれ(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モーターに取り付けたファン・ブレードが回転されることを確認できました。
コメント