趣味開発、実装をまとめるブログ

興味のあるものをとりあえず動かしてみた、実装してみたシリーズをガンガン上げていきたいと思います。あくまでも自身の備忘録としてですが、誰かの助けになったらうれしいです。

【低価格マイコン】【実装】 Arduino NanoでDCモータを動かす

f:id:bamboomush:20210103170513p:plain

 Arduino Nanoを用いてDCモータを実装したので、そのやり方について紹介したいと思います。

この記事を読むことで、超安価なマイコンであるArduino NanoでDCモータが動かせるようになります。

ーーーーーーーーーーーーーー

追記

今回使用しているモータドライバL298NとモータFA-130RAは相性が悪く、動作が不安定です。(下手したら壊れる可能性もあります)

なので、正常に動作するバージョンの記事を急ぎ作成しますので、そちらを参考にしていただければと思います。

おまけ

L298N:駆動電圧5V-

FA-130RA:駆動電圧1.5V-3.0V

駆動電圧が一致しないので問題ありと判断しました。

ーーーーーーーーーーーーーーー

 

動かしている動画が以下のものです。

youtu.be

DCモータを動かせることで、ロボット、IoT、DIYなど幅広い分野を自作できるようになり、趣味でも業務でも自由度が広がること間違いなしです!

 

ESP32版はこちら 

www.takeshi-1222.com

 

◆Arduino Nano関係の実装記事◆ 
  • サーボモータ実装

www.takeshi-1222.com

  • OLED実装

www.takeshi-1222.com

  •  超音波センサ

www.takeshi-1222.com

  • 温湿度センサ (低コスト)

www.takeshi-1222.com

  • 温湿度センサ (ハイスペック)

www.takeshi-1222.com

  • 温湿度センサ (複数)

www.takeshi-1222.com

  • CO2センサ 

www.takeshi-1222.com

  • ほこりセンサ

www.takeshi-1222.com

 

Arduino Nano, DCモータの簡単な説明

Arduino Nano

Arduino Nanoは超安価で購入ができるマイコンで、電気やプログラミングの深い知識を持っていない電子工作初心者でも扱いやすい、オープンソースマイコンです。

Arduinoと比較すると、性能は劣るものの、安価で広い用途で使用可能なので初心者に適しています。

ちなみに、上記が純正品ですが、互換品である以下も性能面では変わらないので強いこだわりがない限りは、互換品の方がおすすめです。

DCモータ

DCモータは世間的によく言うモータです。中には角度を制御可能なサーボモータなどもありますが、基本的にはDCモータです。
今回使用するのは以下の安価なDCモータです。

 これがあることでルンバのような移動ロボットや、扇風機のような家電機器なども自作可能になります。また、移動ロボットを作る場合には、ギアボックスというものを併用することで、モータの回転速度を下げてトルク (力)を強くするといったことも重要になります。ギアボックスも一緒に紹介しておきます。

上記であればDCモータも付属しているので、すぐにロボット開発に取り組めます。

実験構成

 今回の実験に使用する部品は以下のものです。
  • Arduino Nano (互換品)
  • DCモータ (FA-130RA)
  • モータドライバ (L298N)
  • DC/DCコンバータ (LM2596)
  • 電池ボックス (1.5V × 4本)
  • ジャンパ線多数

Arduino Nano、DCモータは上記のものを使用しています。

モータドライバ、DC/DCコンバータ、電池ボックス、ジャンパ線は以下のものを使用しています。
 

 

 

 モータドライバは将来2つのモータを1つの基板で制御したいと思い、安めのもので探した結果L298Nになりました。

DC/DCコンバータはモータドライバを駆動させるために使用します。12Vの入力電圧が必要であるため、今回の入力電圧4.8Vを昇圧する必要があります。

今回の入力電圧4.8Vは将来これでArduino Nanoも動作させたいと思ったため、こちらを使用しました。

また、4.8Vである理由はエネループを使用しているからです。通常は電池4本で6Vです。

ジャンパ線は何を使用してもいいですが、一応リンクを張っておきます。(オスメス、メスメスが必要なので両方張っておきます)

 

実験

配線

Arduino Nanoのピンアサインは以下の通りとなっています。

Arduino NANO Pinout
@Arduino NANO Pinout Diagram | Microcontroller Tutorials

上記をもとに配線をします。

配線は以下のようにします。

f:id:bamboomush:20210127090152p:plain

配線ができると以下のような画像のようになります。

 

f:id:bamboomush:20210103163204j:plain

実行コード

ここまで出来たら以下のコードを実行することで動作確認ができます。

 #define PIN_IN1  A0
    #define PIN_IN2  A1
    #define PIN_VREF 11 // PWM
     
    void setup(){
      pinMode(PIN_VREF,OUTPUT);
      pinMode(PIN_IN1,OUTPUT); 
      pinMode(PIN_IN2,OUTPUT); 
    }
     
    void loop(){
          
        // モーターの回転速度を中間にする
        analogWrite(PIN_VREF,125); 
     
        // 回転
        digitalWrite(PIN_IN1,HIGH);
        digitalWrite(PIN_IN2,LOW);
        delay(5000);
        // ブレーキ
        digitalWrite(PIN_IN1,HIGH);
        digitalWrite(PIN_IN2,HIGH);
        delay(2000);
        // 逆回転
        analogWrite(PIN_VREF,250); 
        digitalWrite(PIN_IN1,LOW);
        digitalWrite(PIN_IN2,HIGH);    
        delay(5000);
     
        // ブレーキ
        digitalWrite(PIN_IN1,HIGH);
        digitalWrite(PIN_IN2,HIGH);
        delay(2000);
        
    }

上記のソースコードでは、モータの正転と逆転を繰り返すプログラムを実装しています。実際には、ここにエンコーダ等をつけて回転数を計測し、移動量を計算したりして、ロボットの制御をしたりします。

まとめ

今回は、Arduino NanoでDCモータを動かすために必要なものの紹介と、サンプルプログラムの紹介をしました。

 

ーーーーーーーーーーーーー

追記

上記の写真ではPIN_VREFがPWMのピンに入っていなかったので、PWM制御ができていませんでした。プログラム、配線画像はPWM制御可能なものにしてありますので、ご容赦ください。

ーーーーーーーーーーーーー

 

参考資料

Arduino Nano | Arduino Official Store