気の向くままに辿るIT/ICT/IoT
webzoit.net
IoT・電子工作

Arduinoで『LEDテープライトによるベッド下照明』を作る

ウェブ造ホーム前へ次へ
サイト内検索
カスタム検索
Arduinoって?

Arduinoで『LEDテープライトによるベッド下照明』を作る

Arduinoで『LEDテープライトによるベッド下照明』を作る

2018/02/13

 Arduinoで『LEDテープライトによるベット下(間接)照明』を作るページ。

 既にブレッドボード上に回路を組み、動作確認済みだったのだが、今日、アルミアングル約60cmの切り出し、穴あけ、やすりがけ、LEDテープライト 60球 約50cmの貼り付け(両面テープは十分強力も、念の為、カプトンテープで補強)、0.5sq(AWG20相当)の配線コードのはんだ付け、端子付きDCジャック取り付けが完了した次第。

 尚、今回は、ベットの縦方向の一辺にのみ、LEDテープライト 50cm 60球+放熱兼固定用にアルミアングル 60cmの設置で事足りると判断した。

 スケッチは後述するが、回路は、タイマー付き自動ON/OFF LEDライトの回路からRTCモジュールを外し、人感センサモジュールHC-SR501、CdS搭載光センサモジュールを追加したものと同じ。

 電源については、電池駆動の場合、Arduino UnoならDCジャックから、Arduino Nanoなら[Vin]ピン、Pro Miniなら[RAW]から給電、AC電源やモバイルバッテリーからなら、USB充電器/モバイルバッテリー+USBケーブルから給電するだけ。

 手動ON/OFFスイッチ付きにしたい場合、電池駆動の場合、電池からのケーブルのプラスかマイナスの何れかのラインにロッカスイッチなどのスイッチを噛ませる、ACコンセントからならスイッチ付きコンセントに接続。

 今回は、以前購入したArduino Nano互換機(Amazon/HiLetgo 5個セット1750円、単価350円)、HC-SR501(Amazon/Rasbee 139円)、4ピン光センサー(Amazon/HiLetgo 99円)、LEDには、12V 5m SMD3238 600球 単色LEDストリップライト(Amazon/FashionableGNJPyoung 411円)、50cmなので約41円、昇圧モジュールにMT3608(Amazon/EasyWordMall 5個449円 単価約90円)、整流ダイオードに1N4004(Amazon/United TiffanyJP 50個147円 単価約3円)、ハイパワーMOSFETにIRFZ34N(Amazon/FashionableGNJPyoung 5個208円 単価約42円)、端子台付きDCジャック(Amazon/FashionableGNJPyoung DC 5.5mmx2.1mm プラグ・ジャック端子台出しアダプタ 各10個セット 320円 単価16円)、ブレッドボード、ジャンパワイヤ、1/4Wカーボン抵抗220Ωなど多めに見積もっても約300円をAmazonマーケットプレイスで、LED放熱兼固定用アルミアングル 0.8mmx1.2mmx1.2mmx2000m 343円、60cmで約104円を近所のホームセンターで買うとして、電源周りを除き、締めて約1146円。

 選定基準がわからない整流ダイオード、Amazonで安価で購入可能な数限られた中から選んだMOSFETの選定については、適当そのものなので、あしからず。

EasyWordMall Arduino UNO R3互換ボード(USBケーブル付属)

EasyWordMall Arduino Pro Mini互換ボード Atmega328 5V 16MHz

Rasbeeオリジナル FT232RL互換 3.3V/5V FTDI/USB/TTL変換アダプタ

KKHMF Arduino Nano Ver 3.0互換ボード ATmega328P CH340G 5V 16MHz

SODIAL(R) 5M 600 3528 SMD LEDストリップ 白 屋内屋外の装飾

KKHMF 5PCS MT3608 DC-DC 2A Boost ステップアップ 転換モジュール 2V-24V to 5V-28V 9V 12V 24V

SODIAL(R) 50×1N4004 400V 1A DO-41アキシャルリード整流ダイオード

SODIAL(R) 5個 IRFZ34N 30A 55V高速スイッチング電源 MOSFETトランジスタ

SODIAL(R) IRF530 100V 14ANチャネルパワーMOSFET TO-200AB 5個

Rasbee 400穴 ブレッドボード 8.5*5.5cm 1個

HiLetgo 400穴 ブレッドボード 8.5*5.5cm 5個セット

HiLetgo 400穴 ブレッドボード 8.5*5.5cm 10個セット

Rasbee SY-170 ミニブレッドボード カラフルブレッドボード 5個

HiLetgo ジャンパーワイヤー(オス-オス) 20cmx40本 5セット

Rasbee ジャンパーワイヤー(オス-オス) 各種長さx65本

KKmoon 炭素皮膜抵抗器 1/4W 1オーム~1Mオーム 各20個 50種 1000個入り

HiLetgo 金属皮膜抵抗 1/4W 41種類x20=820個

SODIAL(R)10ペアCCTVカメラ用DC電源オスメスのプラグジャックアダプタ、コネクタ

SODIAL(R) 耐熱性ポリイミド カプトンテープ 10mmx33m

 ちなみに近所のホームセンターには、LEDテープライト用で透明や半透明のカバー付きのアルミチャンネルはなく、専用でないアルミチャンネルはあったが、今回の用途には、サイズが小さいものしかなく、一方で幅、長さ、色など種類が豊富なアルミアングルで手を打ってみたのだが、結果、満足。

#include <avr/sleep.h>
 
const int cds = 2;
const int pir = 3;
const int led = 4;
 
void pirOn(){
 Serial.println("PIR ON!");
 delay(500);
}
 
void sleepNow(){
 digitalWrite(led, LOW);
 set_sleep_mode(SLEEP_MODE_PWR_DOWN); //スリープモード設定
 sleep_enable(); //スリープ有効化
 
 attachInterrupt(digitalPinToInterrupt(pir), pirOn, RISING);
 sleep_mode(); //指定したモードでスリープを開始
 sleep_disable(); //割り込みによるスリープからの復帰
 detachInterrupt(1); //割り込み処理の解除
}
void setup() {
 Serial.begin(9600);
 pinMode(led, OUTPUT);
 pinMode(cds, INPUT);
 pinMode(pir, INPUT);
 digitalWrite(cds, LOW);
 digitalWrite(pir, LOW);
}
 
void loop() {
 digitalWrite(pir, LOW);
 int cdsin = digitalRead(cds);
 int pirin = digitalRead(pir);
 Serial.print("cdsin : ");
 Serial.println(cdsin);
 Serial.print("pirin : ");
 Serial.println(pirin);
 if(cdsin && pirin) {
  Serial.println("Awake!");
  Serial.print("cdsin : ");
  Serial.println(cdsin);
  Serial.print("pirin : ");
  Serial.println(pirin);
   
  digitalWrite(led, HIGH);
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
 
  if(!cdsin) {
   digitalWrite(led, LOW);
   digitalWrite(LED_BUILTIN, LOW);
  }
 } else {
  digitalWrite(led, LOW);
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
  Serial.println("Sleep...");
  delay(20);
  sleepNow();
 }
}

 sleepも入れたラフスケッチがこれ。

 ledのD4はもちろん他でもよいし、cdsは割り込みに使っていないのでD2である必要なし、pirは割り込みに使うため、Uno系ならD2かD3を使用。

ウェブ造ホーム前へ次へ