Arduino自動カーテンオープン目覚まし時計

「Arduino自動カーテンオープン目覚まし時計」の編集履歴(バックアップ)一覧はこちら

Arduino自動カーテンオープン目覚まし時計 - (2009/04/18 (土) 23:22:03) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

*計画 朝になったら自動でカーテンを開ける目覚まし時計を作りたい。 カーテンの端っこにひもを引っかけて朝になったらタイマーが作動してひもを巻き取りカーテンが開くという仕組み。 **材料 -[[Arduino2009>http://www.amazon.co.jp/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.co.jp%2Fs%3Fie%3DUTF8%26x%3D12%26ref%255F%3Dnb%255Fss%255Fgw%26y%3D28%26field-keywords%3Darduino%26url%3Dsearch-alias%253Daps&tag=arduino-22&linkCode=ur2&camp=247&creative=7399]] -[[モータードライバ BD6211F>http://www.switch-science.com/trac/wiki/BD62xx-Basic]] ←いただきもの -[[6速ギヤボックスHE>http://www.amazon.co.jp/gp/product/B00061HIEY?tag=arduino-22]] -リアルタイムクロック -ブレッドボード -ひも&フック(カーテンを引っ張る) -円柱ゴム(ひもを巻き取る) -木の板&ねじ -抵抗とかコンデンサとか配線材とか **消費電流 RE-260 http://www.mabuchi-motor.co.jp/motorize/branch/b_0100.html 適正電圧適正負荷で700mA 負荷によって変わるだろうから動作させながら実測する! **[[6速ギヤボックスHE>http://www.amazon.co.jp/gp/product/B00061HIEY?tag=arduino-22]] 広いギヤ比に組み替えられるのでとりあえずこれにした。 クラッチギアが付いているので大きい負荷がかかっても少し安心。 **完成品は -mega88 Arduino内蔵クロックで動かす。 -過電流で電源を止めるやつをつける。ポリスイッチ? **電源 -開発時はUSB 5V -ACアダプタ -5V or 3V http://www.switch-science.com/trac/wiki/BD62xx-Basic モーターの定格電圧が信号系(マイコン)の電源電圧よりも低い場合は困ってしまいます。 モーターによっては、PWMで一定のデューティよりも上げないように注意すれば大丈夫な場合があります。 arduinoは3Vで動くのか? -モータとArduinoの電源が同じでOK? **リアルタイムクロック -秋月の時計IC -バッテリバックアップしたい。 **ユーザインターフェイス -正回転/逆回転ボタン -タイマー時刻の設定/ロータリエンコーダ? -7セグ時計表示 **巻き取り終了の検出 マイクでクラッチの音? 一定の秒数の作動でよい? *(1)ざっと組み立て -ギアボックス -巻き取り部取り付け -ギアボックス&ブレッドボードを板に固定 -Arduinoを固定 -モータドライバにピン取り付け *(2)モータードライバの実験(2009/4/18) -正転/逆転を実験 -スピード&パワーを確認 -消費電流を確認 スイッチサイエンスさんのスケッチで動作OK。 http://www.switch-science.com/trac/wiki/BD62xx-Basic int FIN = 5; int RIN = 6; int LED = 13; int OFFSET = 1.0 * 256 / 5; // Vref=5Vとして1.0V int MAX = 1.5 * 256 / 5 - OFFSET; // Vref=5Vとして1.5V-1.0V(=OFFSET) = 0.5V int degree10 = 0; int i; void setup() { Serial.begin(9600); pinMode(FIN, OUTPUT); pinMode(RIN, OUTPUT); pinMode(LED, OUTPUT); for(i=0; i<5; i++){ digitalWrite(LED, HIGH); delay(200); digitalWrite(LED, LOW); delay(200); } } void loop() { delay(100); degree10 += 10; degree10 %= 3600; long v = int(sin(degree10 * 2 * PI / 360 /10) * MAX); Serial.println(v); if (v > 0) { analogWrite(FIN, v + OFFSET); // vは0..MAX(=0.5V) => 1.0V..1.5V analogWrite(RIN, 0); } else if (v < 0) { analogWrite(FIN, 0); analogWrite(RIN, OFFSET - v); // vは0..-MAX(-0.5V) => 1.0V..1.5V } else { analogWrite(FIN, 255); analogWrite(RIN, 255); } } 正回転・逆回転をなめらかに繰り返す。 OFFSET1.0Vは回転開始の最低電圧かな。 正:1.0V => 1.1V => ... => 1.5V => 1.4V => ... 1.0V 逆:1.0V => 1.1V => ... => 1.5V => 1.4V => ... 1.0V を繰り返す。 **ノイズ? http://www.picfun.com/motorframe.html *(3)リアルタイムクロック *(4)7セグ時計 *(5)ロータリエンコーダ *(6)バッテリバックアップ *(7)Arduino mega88
*計画 朝になったら自動でカーテンを開ける目覚まし時計を作りたい。 カーテンの端っこにひもを引っかけて朝になったらタイマーが作動してひもを巻き取りカーテンが開くという仕組み。 **材料 -[[Arduino2009>http://www.amazon.co.jp/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.co.jp%2Fs%3Fie%3DUTF8%26x%3D12%26ref%255F%3Dnb%255Fss%255Fgw%26y%3D28%26field-keywords%3Darduino%26url%3Dsearch-alias%253Daps&tag=arduino-22&linkCode=ur2&camp=247&creative=7399]] -[[モータードライバ BD6211F>http://www.switch-science.com/trac/wiki/BD62xx-Basic]] ←いただきもの -[[6速ギヤボックスHE>http://www.amazon.co.jp/gp/product/B00061HIEY?tag=arduino-22]] -リアルタイムクロック -ブレッドボード -ひも&フック(カーテンを引っ張る) -円柱ゴム(ひもを巻き取る) -木の板&ねじ -抵抗とかコンデンサとか配線材とか **消費電流 RE-260 http://www.mabuchi-motor.co.jp/motorize/branch/b_0100.html 適正電圧適正負荷で700mA 負荷によって変わるだろうから動作させながら実測する! **[[6速ギヤボックスHE>http://www.amazon.co.jp/gp/product/B00061HIEY?tag=arduino-22]] 広いギヤ比に組み替えられるのでとりあえずこれにした。 クラッチギアが付いているので大きい負荷がかかっても少し安心。 **完成品は -mega88 Arduino内蔵クロックで動かす。 -過電流で電源を止めるやつをつける。ポリスイッチ? **電源 -開発時はUSB 5V -ACアダプタ -5V or 3V http://www.switch-science.com/trac/wiki/BD62xx-Basic モーターの定格電圧が信号系(マイコン)の電源電圧よりも低い場合は困ってしまいます。 モーターによっては、PWMで一定のデューティよりも上げないように注意すれば大丈夫な場合があります。 arduinoは3Vで動くのか? -モータとArduinoの電源が同じでOK? **リアルタイムクロック -秋月の時計IC -バッテリバックアップしたい。 **ユーザインターフェイス -正回転/逆回転ボタン -タイマー時刻の設定/ロータリエンコーダ? -7セグ時計表示 **巻き取り終了の検出 マイクでクラッチの音? 一定の秒数の作動でよい? *(1)ざっと組み立て -ギアボックス -巻き取り部取り付け -ギアボックス&ブレッドボードを板に固定 -Arduinoを固定 -モータドライバにピン取り付け *(2)モータードライバの実験(2009/4/18) -正転/逆転を実験 -スピード&パワーを確認 -消費電流を確認 スイッチサイエンスさんのスケッチをちょっと改造で動作OK。 http://www.switch-science.com/trac/wiki/BD62xx-Basic int FIN = 5; int RIN = 6; int LED = 13; int OFFSET = 0.7 * 256 / 5; // analogに255を出したら5V => 0.7V int MAX = 3.0 * 256 / 5 - OFFSET; // RE-260なので3V 3.0V-0.7V = 2.7V int degree10 = 0; int i; void setup() { Serial.begin(300); pinMode(FIN, OUTPUT); pinMode(RIN, OUTPUT); pinMode(LED, OUTPUT); for(i=0; i<5; i++){ digitalWrite(LED, HIGH); delay(200); digitalWrite(LED, LOW); delay(200); } } void loop() { delay(10); degree10 += 3; degree10 %= 3600; long v = int(sin(degree10 * 2 * PI / 360 /10) * MAX); Serial.println(v); if (v > 0) { analogWrite(FIN, v + OFFSET); // v(0V..2.7V) OFFSET(=0.7V) なので 0.7V..3.0V analogWrite(RIN, 0); } else if (v < 0) { analogWrite(FIN, 0); analogWrite(RIN, OFFSET - v); // v(-0V..-2.7V) OFFSET(=0.7V) なので 0.7V..3.0V } else { analogWrite(FIN, 255); analogWrite(RIN, 255); } } 正回転・逆回転をなめらかに繰り返す。 OFFSETは回転開始の最低電圧。 正:0.7V => 0.8V => ... => 2.9V => 3.0V => 2.9V => ... 0.7V 逆:0.7V => 0.8V => ... => 2.9V => 3.0V => 2.9V => ... 0.7V を繰り返す。 **ノイズ? たぶんモーターからのノイズのせいでシリアル通信が途中でとぎれてしまう。 まともにデバッグできないと困るので対策が必要かもしれない。 http://www.picfun.com/motorframe.html モーターの端子と金属ケースの間にコンデンサをいれるといいらしい。 *(3)リアルタイムクロック *(4)7セグ時計 *(5)ロータリエンコーダ *(6)バッテリバックアップ *(7)Arduino mega88

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。