0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

USB電源で駆動!ATTiny13AとbitDuino13を使ったLEDテープ調光回路

Last updated at Posted at 2024-06-20

夜の廊下は意外と怖い

夜、電気を点けずに廊下を歩いていると思わぬ方向に歩いて転倒しそうになるのでLEDテープで廊下を照らすことを考えました。

5V USB電源で12V LEDテープを光らせる

LEDテープは暗闇に慣れた目にまぶしくない程度の光に抑える必要があるので、LED調光ドライバを作ることにしました。小型省電力を目指して回路にはATTiny13Aを用い、プログラムにはArduino(bitDuino13)を使いました。電源は汎用品が簡単に手に入るUSB電源を使い、昇圧チョッパー回路で5Vを昇圧して駆動することにしました。クロック19.6MHzを想定しています(1MHzでは正しく動きませんでした。)。

動作原理

動作としてはソフトウエアPWMを使ってパルス電流を作って昇圧チョッパー回路に流し、LEDを光らせます。夜の廊下をうっすら照らせれば十分という考えで作っているので電圧制御や電流制御はかけていませんが、押しボタンスイッチでPWMのデューティ比を変えることで明るさを5段階で調整できるようにしました。

回路中のC1, C2について

C1はスイッチングスピードを上げるための0.1μFセラミックコンデンサで、こういう役割のコンデンサはスピードアップコンデンサと呼ばれています。以前似たような昇圧回路を組んだ時にスピードアップコンデンサがあったほうがトランジスタのスイッチング速度が上がってトランジスタによる熱損失が減って効率が良くなったのでここでもつけています。
C2は電源の安定化のための100μFの電解コンデンサです。
C1, C2はなくても多分動作します。

LED_driver_回路図.png

LED_driver.ino
// コンパイラbitDuino13
// クロック9.6MHzを想定
#define PWM_PIN 0
#define SW_PIN 1
#define COUNTMAX 10
int mode=4;
int swval=LOW;
int preval=LOW;
int pcount=0;
int ncount=0;

void setup() {
  // put your setup code here, to run once:
 pinMode(PWM_PIN, OUTPUT);
 pinMode(SW_PIN, INPUT_PULLUP);
}

void loop() {
  digitalWrite(PWM_PIN, 1);
  //delayMicroseconds(1);
  digitalWrite(PWM_PIN, 0);
  read_switch();
  wait_for_a_while();
}

void read_switch(){
  swval = digitalRead(SW_PIN);
  if(swval==LOW){
    if(pcount>COUNTMAX){ // チャタリング防止のため一定期間スイッチが押されたままになるのを待つ
      if(preval==HIGH){
        mode-=1;
        if(mode<0){
          mode=4;
        }
        preval=LOW;
      }
    }
    pcount++;
    ncount=0;
  }else{
    pcount=0;
    ncount++;
    if(ncount>COUNTMAX){ // チャタリング防止のため一定期間スイッチが離されたままになるのを待つ
      preval=HIGH;
    }
  }
}

void wait_for_a_while(){
  switch(mode){
    case 0:
      delayMicroseconds(10);
      break;
    case 1:
      delayMicroseconds(100);
      break;
    case 2:
      delayMicroseconds(1000);
      break;
    case 3:
      delayMicroseconds(5000);
      break;
    default:
      delayMicroseconds(10000);
  }
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?