１時間に5分間、5V 通電するタイマーをdigispark(互換機?)を使って300円程で作りました


# はじめに
掲題の件、需要は結構ありそうな気がするのですがあまり安価な製品が市場になく、つきましては作ってみました次第でございますので僭越ながらその旨ご報告致します
当方の属性はハードに疎い（どころか触ると壊す、触らなくても壊す、とにかく壊してハード屋様の皆様に多大な御迷惑をおかけする）ピュアなソフト屋にございますれば、電気やデバイスに及ぶ話しの中、誤解や誤記など多々あるものかと恐れ存じ申し上げます。御忌憚のない御指摘をいただければ至福の至りにございます

# [前回](http://qiita.com/UedaTakeyuki/items/7096f428f098d329dc5a)のお話し

USBモバイルバッテリーやUSB充電器から 5V をジャンパ線で取り出せる安価で手軽なデバイスとして **送料込み 200円**という素敵なお値段の、こちらの [digisparkの互換機(?)](http://www.ebay.com/itm/Digispark-Kickstarter-ATTINY85-Arduino-General-Micro-USB-Development-Board/221889695650?_trksid=p2045573.c100033.m2042&_trkparms=aid%3D111001%26algo%3DREC.SEED%26ao%3D1%26asc%3D33864%26meid%3D5e11fcc853ac4f4a8d26351a92d4f52e%26pid%3D100033%26rk%3D1%26rkt%3D4%26sd%3D221889695650)を見つけました
![スクリーンショット 2015-10-29 23.07.13.png](https://qiita-image-store.s3.amazonaws.com/0/46544/9f88eb54-e8d4-b554-dc3c-9aa21cb5754f.png "スクリーンショット 2015-10-29 23.07.13.png")

左の **ATTINY85** よりも **真ん中に鎮座している３端子レギュレータ**がなんとも「電源代わりにつかっていいよ」という声がきこえてくるような **頼もしさ** を感じます


↓こんな感じで、普段は5V電源として問題なく使えています
([100mA 〜 200mA 以上とる時はヒートシンクがいるかも](http://digistump.com/wiki/digispark/quickref)、との事ですが 500mA 程とっても熱く感じたことはないです)
※2016.01.26 追記：そう思ってたのですが、改めてちゃんと触ってみるとそこそこ熱かったです

![スクリーンショット 2015-12-15 12.28.46.png](https://qiita-image-store.s3.amazonaws.com/0/46544/a7433385-7814-f90a-63f4-21ff82420146.png "スクリーンショット 2015-12-15 12.28.46.png")

ところで、安いとはいえ、ATTINY85 とはいえ、[digispark](http://digistump.com/products/1) だって立派な Arduinoです。
たんに電源として使うだけでも価格的に満足ではあるのですが、スケッチを書いてたとえば **１時間に5分だけ電源 on、残り 55分は off になるタイマー** とかが安価に簡単に出来てしまえば本当に素晴らしい世の中が実現しそうです。

# 作ったタイマーを使ってやろうとすること
例えば、こんな感じでやっぱり安価な[3-6V 駆動の小型水中ポンプ](http://www.ebay.com/itm/381291682917?_trksid=p2060353.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT)を１時間に5分だけまわしたりできると以下のような物がもの凄く **安く** つくれそうです

- 魚や水草のエアレーション
- 🐢の池とかの曝気
- 植物工場の培養液の循環、DFT とか NFT とかいう奴ですね
- LED の冷却水の循環等
- etc

[動画はこちら](https://youtu.be/mXCGwd8OS70)です。カチッというリレーの切り替わる音がして水がとまります

![スクリーンショット 2015-12-15 13.13.46.png](https://qiita-image-store.s3.amazonaws.com/0/46544/0deeb551-fa89-9eb8-8d91-33f51df774d0.png "スクリーンショット 2015-12-15 13.13.46.png")



例えば、 **SORACOM の SIM の刺さった L-02A のついた、センサーがゴテゴテとついた Raspberry Pi** を１時間に5分だけ起動して、 **起動時にセンサデータを拾って投げたらまた電源 off にする** ようにするとバッテリーの持ちがよさそうです。こういう目的の市販の Hat はあるのですがとても高価です 
[動画はこちら](https://youtu.be/L1ZMKaKVLnE)です。カチッというリレーの切り替わる音と共に Raspberry Pi が起動をはじめます
![スクリーンショット 2015-12-15 13.19.49.png](https://qiita-image-store.s3.amazonaws.com/0/46544/f9cd1a62-73bc-682c-5c53-bc2d5522c03a.png "スクリーンショット 2015-12-15 13.19.49.png")


# 課題

以下は私と同様ソフト屋で電気が苦手な人のための解説としてご用意させていただきました。電気屋さんな方々にとっては冗長な内容しかふくまれておりませんので、読み飛ばして頂ければ幸いです

さて、digispark の GPIO を定期的に on/off 繰り返すスケッチはこんな感じで簡単です

```c:ds_long_blink.ino
// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(0, OUTPUT); //LED on Model B
  pinMode(1, OUTPUT); //LED on Model A   
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(0, HIGH);   // turn the LED on (HIGH is the voltage level)
  digitalWrite(1, HIGH);
  delay(1000UL*60*5);      // wait for 5 minuts.
  digitalWrite(0, LOW);    // turn the LED off by making the voltage LOW
  digitalWrite(1, LOW); 
  delay(1000UL*60*55);      // wait for 55 minuts.
}
```

ここで、0番ピン、1番ピンの両方を 5分 on にして 55分 off にするのを繰り返しています

では、digisparkの **0番ピンか1番ピンをポンプや RPi の5Vに、GND をGND につないであげると完成** でしょうか？
これでもポンプはもの凄くチョロチョロチョロ〜という感じでしたがなんとか動きました。チョロ松とはいえ5V, 20mA で駆動できる Submersible Pump って驚愕です。が、ちゃんとした高さまで水をくみ上げることができませんでしたし、  **Raspberry Pi の起動は無理** です。 **電流が足りません。**

# 解決策
 **digispark の GPIO でドライブできる電流は[20mA](http://digistump.com/wiki/digispark/quickref)まで** なので **これを電源とするのでは無理です。そこで、これを前述のdigispark の 5V pin をon/off 制御するスイッチ**としてつかいます

スイッチってどうやってつくるのかな？っと思っていたら
[先々月のMagPi](https://www.raspberrypi.org/magpi/issues/38/)の **"WEB-ENABLED Above Watering
PLANT WATERER"** という記事がまさにそれ！記事では RPi の GPIO でポンプの電源の on/off をしていたのですが、要は **ダーリントン・トランジスタ** というものを使って作るようです。

記事に出ていたフェアチャイルド社（グレッグ大佐のA10攻撃機を作ってる会社ですね）の **[MPSA14](http://www.ebay.com/itm/391290161521?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT)**(こんなのも中国ではまだ売ってるんですね...) と、秋葉で見かけてこれでも動くかなと思った **[KSP13](http://akizukidenshi.com/catalog/g/gI-09599/)**(神奈川サイエンスパークみたいで嫌な名前ですね ^^;;;) と、ついでに 3Vリレーの[Y14H-1C-3DS](http://akizukidenshi.com/catalog/g/gP-01347/)と[946H-1C-3D](http://akizukidenshi.com/catalog/g/gP-07651/)も試してみました。

#接続例
接続はこんな感じです。

![スクリーンショット 2015-12-15 15.26.36.png](https://qiita-image-store.s3.amazonaws.com/0/46544/75bbca40-2911-897b-112c-b59a036de241.png "スクリーンショット 2015-12-15 15.26.36.png")

リレーを使う場合、ドライブするデバイス（ポンプとか RPi とか）はスイッチの電源側、GND側どちらにつけてもいいです

![スクリーンショット 2015-12-15 15.26.45.png](https://qiita-image-store.s3.amazonaws.com/0/46544/cf7b4bb5-81ac-2ba1-a639-fbe8764528ca.png "スクリーンショット 2015-12-15 15.26.45.png")

トランジスタを使う場合、デバイスは必ずスイッチの電源側にもってくる必用があります。GND 側にデバイスを持ってくると **ベースに対して抵抗になってしまいバイアス電流が妨げられる** 為に結果としてコレクタ電流も流れないからです


# 結果
結果は以下です

| デバイス | RPi の起動 | 考察 |
|:-----------|:------------:|:------------:|
| MPSA14 |        ○ |     かなり発熱しました     |
| KSP13    |      × | 電流不足 |
|Y14H-1C-3DS |        ○ |     問題なし     |
|946H-1C-3D |           ○ |     問題なし     |

KSP13 は 400mA ぐらいまでIC電流があがる、100mA ぐらいまで落ちる、というのを繰り返し、RPi を起動させるにはいたりませんでした
MPSA14 は問題なく動いたのですが触ってみるとやけどするぐらい熱いです。もっと余裕のあるトランジスタのほうがよいのかもしれません。
3Vリレーはどちらも問題なしでカチカチ動きました

※2016.01.08 追記
下記のトランジスタについても試してみました

| デバイス | RPi の起動 | 考察 |
|:-----------|:------------:|:------------:|
| [2SD2560 150V15A](http://akizukidenshi.com/catalog/g/gI-03011/) |        ○ |     あったかいなと感じる     |
| [2DD2014 120V4A](http://akizukidenshi.com/catalog/g/gI-07683/)    |      ○ | 摘んでいられる程度の熱さ |
| [TTD1509B 80V2A](http://akizukidenshi.com/catalog/g/gI-10006/)    |      ○ | 摘んでいられる程度の熱さ |


#失敗談
前述のとおり、トランジスタをスイッチとして使う時は[コレクタと電源の間に](http://startelc.com/elc/elc_3_7Tr5rlynTr.html)ドライブするデバイスを入れます。はじめ、エミッタとGND の間にいれてしまい、動かないなーという失敗をやってしまいました ^^;

# future works
ほとんどのモバイルバッテリーがスマフォの充電を目的とした設計になっています。この目的の場合、スマフォの充電が終了（流れる電流が0になった）後、しばらく時間がたってスマフォが放電して、また少し充電して,,, を繰り返すとスマフォのバッテリーの寿命が縮みます（チョロ充とか言います）。これを避ける為にいったん電流が 0 になってしまうとそこでモバイルバッテリー自体の電源が切れる構造になっているようです。このタイプのモバイルバッテリーの場合、タイマーとして使えませんので（一度電源がきれたらもう立ち上がらない）、そういう制御の入っていない安物のバッテリを探す必用があります

digispark は USB からの給電だけでなく外部の 7V - 12V の電源から給電を受けることもできますが、こちらはまだ試していません
※2016.01.26追記：12Vのバイク用バッテリーから給電をうけて5Vを出力して Raspberry Pi が起動するところまで確認できました。

# references

digispark

+ 橋本商会さんの[ブログ](http://shokai.org/blog/archives/8665)： [V-USB](https://www.obdev.at/products/vusb/index.html)等、大変勉強になりました
+ 本家、DigiStamp の[サイト](http://digistump.com/products/1)とDigispark の [wiki](http://digistump.com/wiki/digispark) まずはこの Tutorial で Digispark の全貌がなんとなく掴めます
+ 上記の wiki の一部ですが [Quick Reference](http://digistump.com/wiki/digispark/quickref)は多分、なんども参照することに。I2C のピンは何番とか、VIN から何アンペアとれるかとか
+ DigiUSB の[サンプルプログラム集](https://github.com/digistump/DigisparkExamplePrograms)： 紹介しませんでしたがこちらの python プログラムも Raspberry Pi で動作しました
+ ebay の[サイト](http://www.ebay.com/itm/Digispark-Kickstarter-ATTINY85-Arduino-General-Micro-USB-Development-Board-/221889695650?hash=item33a9a80fa2:g:GdoAAOSwiLdV~BaV) ：送料無料でこの安さ。コンピュータって200円で買えるものだったんですね
+ mt08さんの[Windows7でのLチカ記](http://qiita.com/mt08/items/df4ed8c659b205d1fa1e)

トランジスタとリレー

- [リレーの使い方](http://startelc.com/elc/elc_3_6Lr.html)
- [リレーをスイッチにする場合とトランジスタをスイッチにする場合の違い](http://startelc.com/elc/elc_3_7Tr5rlynTr.html)