2018/07/14

ATmega8 のスリープ&復帰

 ATmega8 の、スリープ&復帰の試み。省電力動作には欠かせない。
参考リンク
 Atmel ATmega8 データシート
 Arduino Playground - ArduinoSleepCode スリープ&復帰のソース

 スリープは問題ないが、そこから再始動、つまり動作の復帰をさせるためには、割り込みを使う。ATmega8 にも、INT0 と INT1 があるので、スリープ中に、このピンに信号を送れば目覚めさせる事ができる。
プルアップ回路

 スリープ中に、タクトスイッチを押すと復帰する。pinMode(interruptPin, INPUT_PULLUP); の指定で、内部の抵抗を使ってくれるらしい。

プルダウン回路

 青い部品が、振動センサ。プルアップ回路のタクトスイッチを、振動センサに交換しただけでは動かない。テスタで振動センサ単体の導電を調べてみると、通常時はON、振動があるとOFFになる仕様のようだ。つまり、普通のスイッチとは、オン・オフが逆になるのが、置き換えてもダメな理由。

 で、写真のように VCC-INT0間に、振動センサ。INT0-GND間には、抵抗をつけたプルダウン回路とする。スリープ中に振動を感知すると復帰する。

0 件のコメント:

コメントを投稿