質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

make

make は、ビルド作業を自動化するツールです。さまざまなファイルの最終変更時刻を比較し、従属するファイルよりも「ターゲット」のファイルが古いことがわかったときユーザーが設定していた命令を実行する事が可能です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

解決済

1回答

3582閲覧

ステッピングモータ 28BYJを距離センサHC-SR04を用いて制御したい

退会済みユーザー

退会済みユーザー

総合スコア0

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

make

make は、ビルド作業を自動化するツールです。さまざまなファイルの最終変更時刻を比較し、従属するファイルよりも「ターゲット」のファイルが古いことがわかったときユーザーが設定していた命令を実行する事が可能です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2017/07/07 05:44

編集2017/07/07 05:45

ステッピングモータ 28BYJを距離センサHC-SR04を用いて制御するために、以下のコードを書いています。ものが検出されたら、ステッピングモータが回るという感じです。各センサは単独では動くのですが、合わせると動きません。

Arduino

1//distance sensor 2#define echoPin 2 // Echo Pin 3#define trigPin 3 // Trigger Pin 4 5double Duration = 0; //受信した間隔 6double Distance = 0; //距離 7 8//stepping moter 9int Pin0 = 10; 10int Pin1 = 11; 11int Pin2 = 12; 12int Pin3 = 13; 13 14void setup() 15{ 16 Serial.begin( 9600 ); 17 pinMode( echoPin, INPUT ); 18 pinMode( trigPin, OUTPUT ); 19 20 pinMode(Pin0, OUTPUT); 21 pinMode(Pin1, OUTPUT); 22 pinMode(Pin2, OUTPUT); 23 pinMode(Pin3, OUTPUT); 24} 25void loop() { 26 //distance sensor 27 digitalWrite(trigPin, LOW); 28 delayMicroseconds(2); 29 digitalWrite( trigPin, HIGH ); //超音波を出力 30 delayMicroseconds( 10 ); // 31 digitalWrite( trigPin, LOW ); 32 Duration = pulseIn( echoPin, HIGH ); //センサからの入力 33 if (Duration > 0 && Distance <= 5.0) { 34 Duration = Duration / 2; //往復距離を半分にする 35 Distance = Duration * 340 * 100 / 1000000; // 音速を340m/sに設定 36 Serial.print("Distance:"); 37 Serial.print(Distance); 38 Serial.println(" cm"); 39 40 delay(500); 41 42 for (int i = 0; i < 30; i++) { 43 digitalWrite(Pin0, LOW); 44 digitalWrite(Pin1, LOW); 45 digitalWrite(Pin2, LOW); 46 digitalWrite(Pin3, HIGH); 47 delay(3); 48 digitalWrite(Pin0, LOW); 49 digitalWrite(Pin1, LOW); 50 digitalWrite(Pin2, HIGH); 51 digitalWrite(Pin3, LOW); 52 delay(3); 53 digitalWrite(Pin0, LOW); 54 digitalWrite(Pin1, HIGH); 55 digitalWrite(Pin2, LOW); 56 digitalWrite(Pin3, LOW); 57 delay(3); 58 digitalWrite(Pin0, HIGH); 59 digitalWrite(Pin1, LOW); 60 digitalWrite(Pin2, LOW); 61 digitalWrite(Pin3, LOW); 62 delay(3); 63 } 64 digitalWrite(Pin0, LOW); 65 digitalWrite(Pin1, LOW); 66 digitalWrite(Pin2, LOW); 67 digitalWrite(Pin3, LOW); 68 delay(900); 69} 70}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

daive

2017/07/07 06:38

各センサは単独では動くのですが、合わせると動きません。 では、意味不明です。どこまで、どの様に確認したのか、掲示してください。
coco_bauer

2017/07/07 07:50

「各センサ」ということは、複数の距離センサがあるのですか? それとも質問に書かれていない別のセンサがある?? ステッピングモーター、センサー、それらがついている物など、部品が物理的にどのように配置され、どのように機能するのかという説明が必要です。
退会済みユーザー

退会済みユーザー

2017/07/07 08:09

ご質問ありがとうございました。自己解決できました。
guest

回答1

0

ベストアンサー

Arduino

1//sesor1 2int echoPin = 2; 3int trigPin = 3; 4double Duration = 0; //受信した間隔 5double Distance = 0; //距離 6 7 8//mortor 9int Pin0 = 10; 10int Pin1 = 11; 11int Pin2 = 12; 12int Pin3 = 13; 13 14void setup() { 15 Serial.begin( 9600 ); 16 //sensor1 17 pinMode( echoPin, INPUT ); 18 pinMode( trigPin, OUTPUT ); 19 20 21 //morter 22 pinMode(Pin0, OUTPUT); 23 pinMode(Pin1, OUTPUT); 24 pinMode(Pin2, OUTPUT); 25 pinMode(Pin3, OUTPUT); 26} 27 28void loop() { 29 //sensor1 30 digitalWrite(trigPin, LOW); 31 delayMicroseconds(2); 32 digitalWrite( trigPin, HIGH ); //超音波を出力 33 delayMicroseconds( 10 ); // 34 digitalWrite( trigPin, LOW ); 35 Duration = pulseIn( echoPin, HIGH ); //センサからの入力 36 if (Duration > 0) { 37 Duration = Duration / 2; //往復距離を半分にする 38 Distance = Duration * 340 * 100 / 1000000; // 音速を340m/sに設定 39 Serial.print("Distance:"); 40 Serial.print(Distance); 41 Serial.println(" cm"); 42 delay(500); 43 44 //mortor 45 if (Distance > 0 && Distance < 10.0) { 46 for (int i = 0; i < 30; i++) { 47 digitalWrite(Pin0, LOW); 48 digitalWrite(Pin1, LOW); 49 digitalWrite(Pin2, LOW); 50 digitalWrite(Pin3, HIGH); 51 delay(3); 52 digitalWrite(Pin0, LOW); 53 digitalWrite(Pin1, LOW); 54 digitalWrite(Pin2, HIGH); 55 digitalWrite(Pin3, LOW); 56 delay(3); 57 digitalWrite(Pin0, LOW); 58 digitalWrite(Pin1, HIGH); 59 digitalWrite(Pin2, LOW); 60 digitalWrite(Pin3, LOW); 61 delay(3); 62 digitalWrite(Pin0, HIGH); 63 digitalWrite(Pin1, LOW); 64 digitalWrite(Pin2, LOW); 65 digitalWrite(Pin3, LOW); 66 delay(3); 67 } 68 digitalWrite(Pin0, LOW); 69 digitalWrite(Pin1, LOW); 70 digitalWrite(Pin2, LOW); 71 digitalWrite(Pin3, LOW); 72 delay(100); 73 } 74 } 75 76 77}

投稿2017/07/07 08:10

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問