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?

ATTiny13Aで遅延スイッチ

Last updated at Posted at 2024-12-13

私は電気工事士なので廊下の電灯は人感センサーに変えたのですが、その前で電灯を消すと暗がりを歩く事になるので、LEDライトに遅延スイッチを付けたものを作ってみました。

要求仕様はスイッチを押したら30秒くらいの間点灯して、消灯するもとのします。

遅延回路は古式ゆかしい555でも出来ますが、いろいろいじれるようにマイコンを使うことにしました。

マイコンはPlatformIOでビルドできる8ピンのATTiny13Aにします。

千石のジャンク袋に入っていたLEDライトを使いそれが12Vなので、12Vアダプタで給電して、78L05でATTiny13Aの電源を作ります。

20241214085243276 (2).jpg

回路とコードはだいだい1日でできたのですが、次の日に欲を出して省電力化しようと思いいろいろ調べました。

CPUクロックを128kHzにするといいということで、fuseを焼いたところUSBTinyISPでATTiny13Aが見えなくなりました。

ATTiny13Aの128kHz設定についてはいろいろなところに情報がありますが、大変危険なのでお勧めしません。

私は以前でんし研(ページが無くなってました)さんのATTiny用のリセッターを作ってあったのでどうにか復活できましたが、なんらかのミスがあると高電圧ライターやリセッターがないと使えないチップになります。

今は2Fでコード書いて1Fで焼いてるので効率が悪く、暖かくなったらまたいじりたいと思います。

IMG_20241214_105915.jpg

#include <avr/sleep.h>

#define LED PB0         // Pin 5
#define RELAY PB4       // Pin 3
#define VOLUME A3       // Pin 2
#define SW PB1          // Pin 6 (INT0)

ISR(INT0_vect)
{
}

void setup()
{
        pinMode(LED,OUTPUT);
        digitalWrite(LED, LOW);
        pinMode(RELAY,OUTPUT);
        digitalWrite(RELAY, LOW);
        pinMode(SW, INPUT_PULLUP);
        GIMSK |= (1 << 6);
        sei();
        set_sleep_mode(SLEEP_MODE_PWR_DOWN);
}
 
void loop()
{
        int vol;

        sleep_mode();

        digitalWrite(LED, HIGH);
        digitalWrite(RELAY, HIGH);
        vol = analogRead(VOLUME);
        delay(vol * 2 + 200);
        digitalWrite(LED, LOW);
        digitalWrite(RELAY, LOW);
}

LEDライトを筒に貼ったのは、光が360度の方向に届くようにするためです。

実際に使ってみたところ、蛍光灯のオンオフでsleepが解除してしまう事があります。誤動作なのですが、ちょっと便利です。

逆転の発想でAC電源のノイズを感知して安定的に動作する仕組みが作れてたら面白いと思います。

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?