
話ばかりで、全然設計をしていなかったので、取り敢えず作ってしまえということで、「猫防止 あっちいっちゃダメ」を2時間程でつくりました。
元々、ゴミ収集所にくるカラス防止用に、どうすれば良いかとずっと考えていました。
「Arduino」があるじゃないかと、でこんな設計をしていました。
この設計だと、バッテリーチェック、明るさチェック等が入っています。
元々、この設計を目指していました。が、色々考えている間に、消費電流とか考え始めなかなか進まなくなりました。
で、このままだと、なかなかプログラムができない!! と取り敢えず作ってみました。
3Vで動かすとか、低消費電流とか無視です。作ってから改良します。やる気が無くなっては元も子もありません。
○設計手法に、スパイラルモデルというのがあって、どんどん積み上げて作り上げるというのもありあす。今回はこれにしました。
人感センサーに反応すると、左右のLEDが交互に点滅して猫の鳴き声がするという、とても簡単なものです。
簡単でも、作ると面白いですね ^^;
これが今回の回路図です。
片方ずつ目が点滅します。
今後、このプログラムを改良していきます。
リストです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
int ledPin = 13; // LEDを13番ピンに int led_right = 12; // 左目LEDを12番ピンに int led_left = 11; // 右目LEDを11番ピンに int cat = 10; //猫声 int inPin = 2; // 人感センサー2番ピンに 割り込み0 int val = 0; // 読み取った値を保持する変数 int old_val =0; int counter = 0; void setup() { pinMode(ledPin, OUTPUT); // LED用に出力に設定 pinMode(led_right, OUTPUT); // LED用に出力に設定 pinMode(led_left, OUTPUT); // LED用に出力に設定 pinMode(cat, OUTPUT); // LED用に出力に設定 digitalWrite (cat, LOW); // 音声出力 pinMode(inPin, INPUT); // スイッチ用に入力に設定 } void loop() { old_val = val; val = digitalRead(inPin); // 入力ピンを読む digitalWrite(ledPin, val); // LEDのピンを読み取った値に変更 if(old_val == val){ }else{ counter = 5; //5秒セット digitalWrite (cat, HIGH); // 音声出力HIGH delay (100); digitalWrite (cat, LOW); // 音声出力 } if(counter ==0){ // digitalWrite (led_right, LOW); // LEDを消灯する digitalWrite (led_left, LOW); // LEDを消灯する delay (1000); // 1秒待機する(1000ミリ秒) }else{ counter--; if(counter ==0){ digitalWrite (led_right, LOW); // LEDを消灯する digitalWrite (led_left, LOW); // LEDを消灯する } digitalWrite (led_right, HIGH); // LEDを点灯する digitalWrite (led_left, LOW); // LEDを消灯する delay (500); // 1秒待機する(1000ミリ秒) digitalWrite (led_right, LOW); // LEDを消灯する digitalWrite (led_left, HIGH); // LEDを点灯する delay (500); } } |