arduino初心者です。 プログラムをネットで調べて組んでみたのですが動きません。

arduino初心者です。 プログラムをネットで調べて組んでみたのですが動きません。 サーボモーター2つとスイッチ3つ、LEDを3つつけて ボタン2を押すとLED2が光り続けてサーボ1が0度と180度を行ったり来たりサーボ2は0ど固定 ボタン3を押すとLED3が光り続けてサーボ1は0から180度のランダムサーボ2は0から90度のランダム ボタン1を押すとLED1が光りすべて停止するプログラムを組んでみたのですが分からないところも多く完成したのですが動きません。 #include <Servo.h> Servo servo1; Servo servo2; int pos = 0; int b1 = 2; int b2 = 4; int b3 = 7; int led1 = 11; int led2 = 12; int led3 = 13; void setup() { servo1.attach( 9 ); servo2.attach( 10 ); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(b1,INPUT); pinMode(b2,INPUT); pinMode(b3,INPUT); int angle = 0; int angle2 = 0; } void loop() { if (digitalRead(b2) == HIGH){ digitalWrite(led1, LOW ); digitalWrite(led2, HIGH); digitalWrite(led3, LOW ); servo2.write(0); servo1.write(180); delay(1000); servo1.write(0); delay(1000); } if (digitalRead(b3) == HIGH){ digitalWrite(led1, LOW ); digitalWrite(led2, LOW); digitalWrite(led3, HIGH ); for (int i = 0 ; i < 180 ; i++) { servo1.write(i); servo2.write(i); delay(500); } } if (digitalRead(b1) == HIGH){ servo1.write(0); servo2.write(0); digitalWrite(led1, HIGH ); digitalWrite(led2, LOW ); digitalWrite(led3, LOW ); } どこを間違えをているのかまた、間違えたところを直して頂きたいです。 よろしくお願いいたします。m(__)m

C言語関連24閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

1

動かない、とは全く動かないのでしょうか? その場合は回路とスケッチが合っていません。 このスケッチに合った回路にしている場合には、「それなり」に動く筈です。 全く動かないのなら、多分、スイッチ周りの回路が間違えているのでしょう。 このスケッチなら、プルダウン抵抗を付けたうえで、PIN-SW-5Vです。 それなりに動いているのなら、1つ1つの動作をもう少し具体的に言ってください。 ※現在の動き自体はスケッチを見ればわかります。

1人がナイス!しています

・ボタン2を押したときに、サーボ1は「0度と180度を行ったり来たり」としているようだけど、  実際には1往復するように書かれています。これを連続で行いたいのかどうか? ・ボタン3を押したときに(現在は同期して0度→180度だけども)、「サーボ1は0から180度のランダム」とは  一体どのような動きを想定しているのかが判りません。サーボ2については、現在「90度のランダム」の形跡がありません。  つまり、スケッチが間違えているのはわかりますけど、目的の動きが理解できないのでまともなアドバイスは出来ません。  ※こちらの方も、1往復させるだけなのか、毎回ランダムで角度を取得してその動きを違うボタンを押すまで続かせるつもりなのか?  そのあたりも含めて説明して下さい。

ThanksImg質問者からのお礼コメント

ありがとうございましたm(_ _)m 私にはプログラムが難しすぎたのでランダムに2つのサーボが動くだけにしました。 これからゆっくりプログラミング勉強していきたいと思います。 また、分からないことがあったら質問するかもしれません。そのときはよろしくお願いしますm(_ _)m

お礼日時:9/18 17:51

その他の回答(1件)

0

スイッチのb1,b2,b3を押した(ON)時に、 それぞれのLEDは点灯してますか? サーボモータが動いて居るか否かを確認する前に、 1)スイッチは意図する動作をしてうるか? 2)LEDは意図する動作をしているか? を確認するんですよ。 料理を作ってそれが不味い。 何故不味いのかと聞くのではなく、 塩加減、砂糖加減はこれでよかったのか? と言う事を聞くんです。