PWMでマブチモーターを制御する:Arduinoで学ぶ基礎からのモーター制御(5)(5/5 ページ)
「マブチモーター」でもおなじみ「直流ブラシ付きモーター」は安価で入手性もよいモーターですが、マイコンからの制御を考えると一工夫必要になります。今回は「PWM」を使った回転制御を紹介します。
PWM制御のArduinoプログラム
次はArduino側での制御プログラムを用意します。Sketchの「BASIC」タグから「Fade」を選択してください。これはLEDの光り方を変化させるプログラムですが、原理としてはPWMを用いたLEDの制御なのです。今回はこのプログラムを用いて直流ブラシ付きモーターの回転数を制御します。
int led = 9; // the pin that the LED is attached to int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by void setup() { pinMode(led, OUTPUT); } void loop() { analogWrite(led, brightness); brightness = brightness + fadeAmount; if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; } delay(30); }
Arduino Nanoボードではデジタルピンの3、5、6、9、10、11にてPWM出力ができますが、ここでは9を用いています。void loopの中のanalogWrite関数で、9番ピンに対してPWM出力を行っています。PWM信号の周波数(周期)は約490Hzです。なおピンによって周波数は異なり5番と6番ピンは977Hz、それ以外は490Hzです。
PWM出力のデューティー比は、第二引数のbrightnessにて指定します。255でデューティー比100%、0で0%となります。PWM出力は30ミリ秒ごとにbrightnessの値が5ずつ変化します。brightnessが上限あるいは下限に達したら、その時点でPWM出力の変化が折り返すようにプログラミングしています。結果、三角波のようにPWMの出力が変化します。
それではプログラムをArduinoに書き込んでモーターを回転させてみましょう。モーターの振動音などから、回転数が変化しているのが分かると思います。回転数の変化による振動音がちょうど消防車のサイレンのように聞こえませんか。
おわりに
今回はPWMという技術を使って直流ブラシ付きモーターのパワー制御についてお話しました。今回でいったん直流ブラシ付きモーターについてはおわりにして、次回は同じPWMを使った、サーボモーターの制御に付いてお話したいと思います。お楽しみに。(次回へ続く)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 困ったら読みたいマブチモーター制御のTips
この連載ではここ数回、「マブチモーター」に代表される直流ブラシ付きモーターをマイコンから制御する話をしていますが、今回は困ったときに読みたい、知っておくと便利なTipsを幾つか紹介したいと思います。 - マブチモーターのノイズ対策
「マブチモーター」に代表される直流ブラシ付きモーターは安価で入手性も良好ですが、Arduinoなどと組み合わせる際には発生するノイズが問題となることがあります。そこで今回は、「直流ブラシ付きモーターのノイズ対策」について解説します。 - マブチモーターをArduinoで制御する
「マブチモーター」でもおなじみ「直流ブラシ付きモーター」は安価で入手性もよいモーターです。これをArduinoで制御するとしたら、何を理解して何を用意して、どんなプログラミンが必要でしょうか。実験します。 - 「マイコンによるモーター制御」を学ぶ前に知っておくべきこと
「動くモノ」の制御ができると手を動かした実感がわくものです。この連載では、マイコンを用いたモーター制御の基礎を学んでいきます。 - モータ制御に欠かせない技術“PWM”って何?
マイコンから電圧を変化させてモータの速度を変えるのは非常に効率が悪い。そこで周期的なパルス信号を発生させるPWMの登場となる。 - お手軽モノづくり体験――「あったらいいな」をArduinoでカタチにしてみよう!
「こんなモノがあったらいいのに……」をArduino(アルドゥイーノ)で実現。電子工作初心者や回路の知識のない人だって大丈夫。筆者と一緒に、頭の中のアイデアをカタチにし、モノづくりの喜びや難しさを体験・体感してみよう! 第1回では、開発環境の準備と電子工作の“Hello World”こと、「エルチカ」に挑戦するぞ!!