
話ばかりで、全然設計をしていなかったので、取り敢えず作ってしまえということで、「猫防止 あっちいっちゃダメ」を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);     } } |