一つ目
#include <Servo.h>
#define PBS1 10
#define analogPin 0
Servo RCservo1;
void setup()
{
RCservo1.attach(7);
pinMode(PBS1,INPUT);
}
void loop()
{
int s1 = digitalRead(PBS1);
if(s1 == LOW)
{
while(1)
{
RCservo1.write(90);
delay(1000);
RCservo1.write(140);
delay(1000);
RCservo1.write(40);
delay(1000);
RCservo1.write(180);
delay(1000);
RCservo1.write(0);
delay(1000);
RCservo1.write(180);
delay(1000);
RCservo1.write(30);
break;
}
}
}
二つ目
int Duration;
float Distance;
const int TRIG = 10;
const int ECHO = 12;
const int BEAT = 300;
const int SPK = 2;
void setup() {
Serial.begin(9600);
pinMode(TRIG,OUTPUT);
pinMode(ECHO,INPUT);
}
void loop() {
digitalWrite(TRIG,LOW);
delayMicroseconds(10);
digitalWrite(TRIG,HIGH);
delayMicroseconds(10);
digitalWrite(TRIG,LOW);
Duration = pulseIn(ECHO,HIGH);
if (Duration > 0) {
Distance = Duration /2;
Distance = Distance * 0.034;
Serial.print(Distance);
Serial.print("cm");
}
if(Distance < 5) {
tone(SPK, 523, BEAT);
Serial.println("[C]");
}else if (Distance >= 5&& Distance < 10){
tone(SPK, 494, BEAT);
Serial.println("[B]");
}else if (Distance >= 10&& Distance < 15){
tone(SPK, 440, BEAT);
Serial.println("[A]");
}else if (Distance >= 15&& Distance < 20){
tone(SPK, 392, BEAT);
Serial.println("[G]");
}else if (Distance >= 20&& Distance < 25){
tone(SPK, 349, BEAT);
Serial.println("[F]");
}else if (Distance >= 25&& Distance < 30){
tone(SPK, 330, BEAT);
Serial.println("[E]");
}else if (Distance >=30&& Distance < 35){
tone(SPK, 294, BEAT);
Serial.println("[D]");
}else if (Distance >= 35&& Distance < 40){
tone(SPK, 262, BEAT);
Serial.println("[c]");
}
delay(1000);
}
一つ目はサーボモータを動かすプログラムで
二つ目は超音波センサによる距離に応じて音階が変わるプログラムです
これらのプログラムを組み合わせて
距離に応じてサーボモータを動かすプログラムを作りたいです
もしよろしければプログラムを教えてください
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
1. 一つ目、2つ目それぞれのloop()を別の関数にする
setup()は合体しておく
2. 一つ目 は6秒くらいかかり、二つ目 は1秒くらい待つので1つ目用にカウンタを用意する
3. 一つ目のPBS1による起動条件は取り合えず消す
loop()中でdelay(1000)するので元の一つ目、2つ目中のdelayは適切に消す
4. loopの中で、次を記述する
二つ目の処理は毎回呼ぶ
一つ目の処理はカウンタの値によって該当する RCservo1.write(*)を呼ぶ様にする
カウンタをインクリメント
カウンタが7以上だったらカウンタを0に設定
delay(1000)する
何故Javaなのですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語 コードを書いたのですが上手く実行出来なかったです。どこが間違ってますか? 【作成したいもの】 1 2022/05/04 11:36
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Ruby vscode 文字化け 1 2022/05/21 19:17
- C言語・C++・C# プログラムの時、フローチャートはどうなりますか?図でお願いします。 int main(void) { 1 2022/10/01 22:45
- 英語 語順 1 2023/01/24 20:54
- Ruby パイソンプログラミング 2 2022/12/03 18:44
- C言語・C++・C# C言語 3 2022/11/09 13:27
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Microsoft ASP LEDで電光掲示板に「A B C D E」と表示したいのですが・・・ 1 2023/07/04 07:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語のポインターに関する警告
-
[JAVA]try 内の変数を外で!?
-
EclipseでJava
-
JAVA 文字色変更
-
JSPやサーブレットでSystem.out...
-
JAVAのDouble型の小数点以下の...
-
曜日の取得方法を教えて下さい!
-
「続行するには何かキーを押し...
-
文字列の引き算
-
複数行キーボード入力した後に...
-
全角スペースの判定について
-
JAVAで素数判定
-
java Calendarクラス
-
NaNではなく、0と表示させたい
-
javaで画像をランダムに表示さ...
-
IF文と文字列の組み合わせについて
-
java シンボルが見つかりません...
-
java教えてください。
-
javaで判別式のプログラミング...
-
java int integer
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[JAVA]try 内の変数を外で!?
-
JSPやサーブレットでSystem.out...
-
C言語のポインターに関する警告
-
改行の判定方法
-
EclipseでJava
-
JAVAのDouble型の小数点以下の...
-
Javaでカレントディレクトリを...
-
文字列の引き算
-
JAVA 文字色変更
-
Javaのプログラムがどうしても...
-
エクセルマクロ文で、赤文字セ...
-
java シンボルが見つかりません...
-
java int integer
-
配列を後ろから数えるには?
-
java.util.zipで作成したアーカ...
-
JAVAのエラーの意味が分かりま...
-
会員情報登録プログラムの作成...
-
nullcline
-
コマンドプロンプトでひらがな...
-
NaNではなく、0と表示させたい
おすすめ情報