さて、この前の記事で秋月の調光キットを組み立てたのですが、今回はそれをarduinoで制御して扇風機のリズム機能を作ります。
さて、ではボリュームを繋がないでおいた調光キットがこちらにあります。
ちなみに前回つくったやつは百均で買った容器に入れてはんだゴテ用になりました。
http://instagram.com/p/bI8JpAjZQ7/
ではどうやって抵抗値を制御するのかというと、アナログフォトカプラというやつをつかいます。以下の記事を参考にしました。
アナログフォトカプラは、普通はフォトダイオードとLEDを組み合わせたもので、光の強さに応じてフォトダイオードに電流が流れるというものですが、今回は抵抗を制御したいので、上記の記事と同様にCdS+LEDのフォトカプラを使います。これによって入力電流に応じた抵抗値を得ることができます。
これをArduinoのアナログピンからの出力で制御するというわけです。
簡単ですけど繋ぎ方とコードは以下。
/*** analogue sin out ***/ const int OUT_PIN = 3; const int CYCLE = 15; float mapf(float x, float a, float b, float c, float d) { return (d - c) * (x - a) / (b - a) + c; } void setup() { } void loop() { // calcurate current phase in interval CYCLE float rasian = (2 * PI * millis() / 1000.0) / CYCLE; if(sin(rasian) < 0) rasian = 1.5 * PI; // write as 0-255 analogWrite( OUT_PIN, mapf(sin(rasian), -1, 1, 0, 255) ); }
最初はサイン関数でいけるかなーと思ったんですが、それだと電気が弱い時間が短すぎてそれっぽくなかったので、サイン関数がマイナスの間は抵抗マックスにしています。周期は15秒ぐらいがそれっぽいです。
これで風邪の心配はなくなったわけですが、まだなんかイケてる感じではないので、次はandroidからarduinoを制御するのをやってみたいと思います。いつになるやら。
この構成ですと 唯のオンオフ制御と変わりませんよね・・・
私も色々と試しているのですが上手く欲しいだけの電力が得られないでいます
連続的に抵抗値を変化させているので微風運転などもできますよ。
analogWriteの値をいじってみてください。