前回製作したマーキーライトを点滅点灯できるようにしてみました。点滅順序やはプログラムで変更できるよう、Arduinoで制御を行っています。ドライブ回路は半導体で組むと少し計算が必要なので、リレーモジュールで行いました。あと、どうせマイコンを使うので、赤外線焦電センサーモジュールを利用して人を検出できるようにしました。
材料
部品名 | 必要 個数 | 個数 | 備考 |
Arduino(互換機) HiLetgo® 3個セット pro mini ATMEGA328P 5V | 1 | 1150円 | 3個セット 調達元:アマゾン |
7805D(JRC) 互換品のNJM7805FAはこちら | 1 | 50円 | 調達元:秋月電子 |
μPC2933A 互換品のTA48033Sはこちら | 1 | 100円 | 現在入手不可でした・・・ 調達元:秋月電子 |
リレーモジュール HiLetgo® 3個セット 5V 2チャンネル リレー モジュール | 2 | 890円 | 3個セット 調達元:アマゾン |
赤外線モジュール HiLetgo® 3個セット HC-SR501 人体赤外線感応モジュール | 1 | 800円 | 3個セット 調達元:アマゾン |
電解コンデンサ 16V以上、150μF以上 16V以上、100μF以上 →アマゾンにセット品があります。 | 各2 | 1750円 | セット品 調達元:アマゾン |
ブレッドボード HiLetgo® 5個セット 400穴 ミニブレッドボード | 1 | 750円 | 5個セット 調達元:アマゾン |
ACアダプター 12V 1.5A スイッチングACアダプター | 1 | 950円 | 調達元:秋月電子 |
前回作ったマーキーライトボックス | 1 | Priceless |
※上記価格は2019年5月時の価格 です。
工具
名称 | 個数 | 価格 | 備考 |
パソコン (Arduinoのプログラミング と書き込み用) | 1 | まちまち | Windows7か10 |
Arduino書き込み装置 FT-232RQ USBシリアル変換 モジュール | 1 | 980円 | 持っていない人のみ 調達元:秋月電子 |
USBケーブル (micro USB Type-B) | 1 | まちまち |
※ 上記価格は2019年5月時の価格 です。
マイコンの選定
今回のマイコンは、以前も使用した「HiLetgo® 3個セット pro mini ATMEGA328P 5V」を利用します。アマゾンで購入した物がまだ余っているのが理由です。
![](https://morisova-tanma.com/wp-content/themes/simplicity2/images/1x1.trans.gif)
プログラミング
プログラムを組みます。プログラムは変数等は使わず、だた羅列した内容で組みました。スマートでは無いですね。
const int Abtn = 2;
const int Bbtn = 3;
const int Cbtn = 4;
const int SW = 6;
const int R1 = 10;
const int R2 = 11;
const int R3 = 12;
const int R4 = 13;
int countA;
int countB;
void setup() {
pinMode( Abtn, INPUT_PULLUP);
pinMode( Bbtn, INPUT_PULLUP);
pinMode( Cbtn, INPUT_PULLUP);
pinMode( SW, INPUT);
pinMode( R1, OUTPUT);
pinMode( R2, OUTPUT);
pinMode( R3, OUTPUT);
pinMode( R4, OUTPUT);
Serial.begin( 9600 );
digitalWrite(R1, LOW);
digitalWrite(R2, LOW);
digitalWrite(R3, LOW);
digitalWrite(R4, LOW);
delay ( 100 );
}
void loop() {
if(digitalRead( SW ) == HIGH){
if(digitalRead( Abtn ) == LOW){
digitalWrite( R1, LOW);
digitalWrite( R2, LOW);
digitalWrite( R3, LOW);
digitalWrite( R4, LOW);
delay( 1500 );
digitalWrite( R1, HIGH);
digitalWrite( R2, HIGH);
digitalWrite( R3, HIGH);
digitalWrite( R4, HIGH);
delay( 1000 );
Serial.print( "A mode");
}
else if( digitalRead( Bbtn ) == LOW){
digitalWrite( R1, HIGH);
digitalWrite( R2, HIGH);
digitalWrite( R3, HIGH);
digitalWrite( R4, HIGH);
delay( 1000 );
digitalWrite( R1, LOW);
delay( 1000 );
digitalWrite( R2, LOW);
delay( 1000 );
digitalWrite( R3, LOW);
delay( 1000 );
digitalWrite( R4, LOW);
delay( 1000 );
digitalWrite( R1, HIGH);
digitalWrite( R2, HIGH);
digitalWrite( R3, HIGH);
digitalWrite( R4, HIGH);
delay( 1000 );
digitalWrite( R4, LOW);
delay( 1000 );
digitalWrite( R3, LOW);
delay( 1000 );
digitalWrite( R2, LOW);
delay( 1000 );
digitalWrite( R1, LOW);
delay( 1000 );
Serial.print( "B mode");
}
else if( digitalRead( Cbtn ) == LOW){
digitalWrite( R1, HIGH);
digitalWrite( R2, HIGH);
digitalWrite( R3, HIGH);
digitalWrite( R4, LOW);
delay( 1000 );
digitalWrite( R1, LOW);
delay( 1000 );
digitalWrite( R2, LOW);
delay( 1000 );
digitalWrite( R3, LOW);
delay( 1000 );
Serial.print( "C mode");
}
else{
digitalWrite( R1, HIGH);
digitalWrite( R2, HIGH);
digitalWrite( R3, HIGH);
digitalWrite( R4, HIGH);
Serial.print( "N/C mode");
}
}
if(digitalRead( SW ) == LOW){
digitalWrite( R1, HIGH);
digitalWrite( R2, HIGH);
digitalWrite( R3, HIGH);
digitalWrite( R4, HIGH);
Serial.print( "OFF mode");
}
}
プログラムの書き込み
プログラムをArduinoに書き込みます。書き込みはPC経由で書き込みを行います。シリアルポート等の諸設定はそれぞれで異なりますので、設定を合わせる必要があります。
![](https://morisova-tanma.com/wp-content/themes/simplicity2/images/1x1.trans.gif)
リレーモジュールへの配線
リレーの配線は下の表の通りになります。VCCとGNDはそれぞれ、5Vの電源ラインに接続します。
Arduino端子 | リレーの番号 |
10ピン | リレー1 |
11ピン | リレー2 |
12ピン | リレー3 |
13ピン | リレー4 |
![](https://morisova-tanma.com/wp-content/themes/simplicity2/images/1x1.trans.gif)
センサーへの配線
センサーモジュールへ配線します。真ん中の「OUT」の配線はArduinoの6ピンに接続します。センサーモジュールのボリュームや端子は下の写真の通りです。
![](https://morisova-tanma.com/wp-content/themes/simplicity2/images/1x1.trans.gif)
![](https://morisova-tanma.com/wp-content/themes/simplicity2/images/1x1.trans.gif)
電源回路と全体配線について
お詫び:回路見直しのため、電源回路と全体配線の公開を控えております。
理由:長時間動作していると3端子レギュレーターからヒートシンクが必要な程度の発熱が発生しています。それほど電流を必要としないので、発熱しないと思っていましたが、もしかすると逆起電力等が発生して異常に電流を消耗している可能性があるため、原因が判明するまで公開を控えようと思います。
動作確認
配線が完成したら、マーキーライトの箱の中に組み付ける前に動作確認を行います。
![](https://morisova-tanma.com/wp-content/themes/simplicity2/images/1x1.trans.gif)
![](https://morisova-tanma.com/wp-content/themes/simplicity2/images/1x1.trans.gif)
![](https://morisova-tanma.com/wp-content/themes/simplicity2/images/1x1.trans.gif)
![](https://morisova-tanma.com/wp-content/themes/simplicity2/images/1x1.trans.gif)
センサーの取り付け
センサーは箱の中では検出できないため、外に出しておく必要があります。今回は箱の下側にグルーガンで固定しました。(手抜きです。ごめんなさい)
あと、ACアダプターのDCジャックについても同様に箱の内側にグルーガンで固定しました。
![](https://morisova-tanma.com/wp-content/themes/simplicity2/images/1x1.trans.gif)
完成
一部、回路の不具合(?)なのか、発熱の問題があるので課題が残っている状況ではありますが、マーキーライトに関して、今回予定している分はこれで完成となります。
![](https://morisova-tanma.com/wp-content/themes/simplicity2/images/1x1.trans.gif)