ソロでたのしむ

DIY、電子工作、キャンプ用品などの趣味を紹介します

Arduino の実用的な使用例と作品紹介〜車とバイク用で自作できたこと(作ったもの)

 

 

Arduino の実用的な使用例と作品紹介〜車とバイク

はじめに

Arduinoとサンプルスケッチを使い、ブレッドボード上で作動させるだけでも楽しいのですが、ある程度扱えるようになってくると実用的なものに応用したい!との想いが強くなってきます。

ここでは、まずはサンプルスケッチでの基本的な動かし方、そして車とバイクのみですが私が実用している作品例を紹介します。

「Arduino を日常生活に活かしたい!」と考えている方に、少しでも参考にして頂ければいいなと思います。

なお、記事内の回路図作成にはFritzingを使いました。

ArduinoでLEDを光らせる 

 サンプルスケッチでLEDを光らせてみる

Arduino IDEのサンプルスケッチ(ファイル→スケッチ例→01.Basics→Blink)を使いますが、どうせならArduinoのオンボードLEDではなく外付けのLEDを光らせてみます。

配線

Arduino Lチカ 回路のつなぎかた

上の絵はArduino UNOで、右側の番号がふられているピンがデジタルピンです。光らせるLEDはどのデジタルピンにつないでもいいのですが、今回は7番を使う場合で進めます。

LEDをArduinoに直結すると、LEDに5V電圧が直接かかってしまうので、抵抗を直列でつないでおきます。

5V電圧において一般的な20mAのLEDであれば抵抗は150オーム、不安であれば少し大きめの抵抗値のものでも使えます。

サンプルスケッチに手を加える 

LEDを7番のデジタルピンにつないでいるので、サンプルスケッチの中に3か所登場する「LED_BUILTIN」を「7」に書き換えて使います。

無事に点滅したら、次は点滅周期を変えてarduinoにスケッチを送りなおして光らせてみるなどのプチ改造を繰り返すと、スケッチを作ってから実際に動かすという一連の操作に慣れてきます。

 実用的な使用例

64個のカラーLEDを使って、いろいろな光り方を選択できるようにして車に装着しました。

実用的とは言えませんが、雰囲気は盛り上げてくれます。制作記事のリンクを貼っておきますので、興味があれば見てみてください。

www.solocamptouring.com

 ナイトライダーのボイスインジケータのように光るサウンドインジケータも作ってみました。

www.solocamptouring.com

 

Arduinoでステップモーターを動かす 

 ステップモーターは、安価で入手しやすい28BYJ-48とドライバー基板のセットを使います。

安価で入手しやすい28BYJ-48とドライバー基板のセットを使いArduinoで動かす

使い方

28BYJ-48はユニポーラのステップモーターのため、Arduino IDEのバイポーラモーター用のサンプルスケッチを使う場合は、工夫が必要になります。

そんな苦労をするくらいなら、サンプルスケッチを使わずに動かしてみます。

ステップモーターをものすごく簡単に説明すると、内部の電磁石に順番に電気を流すことで、永久磁石がついている出力軸が回転します。

順番に電気を流す命令を送るのが、ドライバーのIN1~4に接続する4本の信号線です。

一例ですが、この4本の信号線を横に並べて,HIGH(5V)を1、LOW(0V)を0として、順番に 

1,0,0,0

1,1,0,0

0,1,0,0

0,1,1,0

0,0,1,0

0,0,1,1

0,0,0,1

1,0,0,1

 の8パターンの信号を順番に、そしてループして出し続ければ、ステップモーターの出力軸が回ります。

4本の信号線をArduinoのデジタルピン4~7につないでモーターを回すだけのスケッチを紹介します。

void setup()
{
  pinMode(4, OUTPUT);  
  pinMode(5, OUTPUT);  
  pinMode(6, OUTPUT);  
  pinMode(7, OUTPUT);  

  int speedL = 10;
}

void loop()
{
  digitalWrite(4, 1);    
  digitalWrite(5, 0);
  digitalWrite(6, 0);
  digitalWrite(7, 0);
  delay(speedL); 

  digitalWrite(4, 1);    
  digitalWrite(5, 1);
  digitalWrite(6, 0);
  digitalWrite(7, 0);
  delay(speedL); 

  digitalWrite(4, 0);    
  digitalWrite(5, 1);
  digitalWrite(6, 0);
  digitalWrite(7, 0);
  delay(speedL); 

  digitalWrite(4, 0);    
  digitalWrite(5, 1);
  digitalWrite(6, 1);
  digitalWrite(7, 0);
  delay(speedL); 

  digitalWrite(4, 0);    
  digitalWrite(5, 0);
  digitalWrite(6, 1);
  digitalWrite(7, 0);
  delay(speedL); 

  digitalWrite(4, 0);    
  digitalWrite(5, 0);
  digitalWrite(6, 1);
  digitalWrite(7, 1);
  delay(speedL); 

  digitalWrite(4, 0);    
  digitalWrite(5, 0);
  digitalWrite(6, 0);
  digitalWrite(7, 01);
  delay(speedL); 

  digitalWrite(4, 1);    
  digitalWrite(5, 0);
  digitalWrite(6, 0);
  digitalWrite(7, 1);
  delay(speedL); 
}

ステップモーターを動かすスケッチは様々な書き方(種類)があります。後で紹介する過去記事のスケッチでは、少し違った書き方になっています。

 

配線について詳しく紹介しませんでしたが、一つ注意点があります。

普段から、モータードライバーの電源はArduinoの5V出力から取るのではなく外部電源から取るようにしておくと、Arduinoの許容電流を超えて動きがおかしくなったり故障したりする可能性を減らせます。

実用的な使用例

12V用のステップモーター28BYJ-48を使って、リバースギアに連動する電動開閉バックモニターを作成して、車に装着しました。

www.solocamptouring.com

 

ArduinoでLCDに表示する

サンプルスケッチでLCDに表示する

液晶ディスプレイ(Liquid Crystal Display、LCD)を初めて試してみる場合、「hello world」が有名です。

 Arduino IDEの、たいへん短いサンプルスケッチ(ファイル→スケッチ例→LiquidCrystal→HelloWorld)で動かすだけですが、LCDとの配線に少し手間がかかります。

f:id:solocamptouring:20171218192148j:plain

配線イメージ(サンプルスケッチのピン選択とは異なります)

 

 実用的な使用例

表示したい文字数に応じて、これまでに2種類の大きさのLCDを使っています。それぞれの使用例を過去記事で紹介します。

f:id:solocamptouring:20171218161817j:plain

上が16x2文字、下が20x4文字のLCD

16x2文字のLCDの実用例

 最初に車に装着したのが16x2文字のLCDで、Arduinoへの入力はGPSモジュールからだけでした。

f:id:solocamptouring:20180211222201j:plain

GPSモジュール

GPSモジュールは、緯度経度だけ扱うのであれば比較的に簡単ですが、高度などの計算に時間がかかる情報を取り出す場合は、少し工夫が必要です。

まずは16x2文字LCDと組み合わせた試作品で、試行錯誤しながらスケッチを修正して、GPSモジュールの使い方について勉強しました。

<車に装着した例>

www.solocamptouring.com

 

<バイクに装着した例>

www.solocamptouring.com

 

20x4文字のLCDの実用例

 現在車に装着しているLCDです。可能な限り多くの情報を20x4文字LCDに表示する目的で、GPSモジュール、Gセンサーモジュール、温湿度センサーから情報を得ています。

www.solocamptouring.com

 

 Arduinoの電源について

 最後に、車でArduino を使う場合の電源についての紹介です。

車のアクセサー電源(普通はおおよそ12~14V)でもArduinoUNOやNanoは動く事になっていますが、高い電圧をかけ続けるとArduinoが熱を持つので、極力5~6V付近(種類によっては3.3V)で使用したいと思います。

私は、電圧安定化もかねて降圧回路を使い、さらに+側(12V側)の上流にはヒューズを入れて、Arduinoやモジュール類の電源として使っています。

自作した電子回路を車で使うための安定化電源