質問するログイン新規登録

質問編集履歴

1

ソースコードの追加

2019/08/28 02:32

投稿

middleeye
middleeye

スコア12

title CHANGED
File without changes
body CHANGED
@@ -15,4 +15,41 @@
15
15
 
16
16
  初期化時にシリアル通信「Serial.begin(9600);」実行しますが、この時なぜかモーター1が勝手に回りだし、しばらくすると止まります。
17
17
 
18
- この現象の原因はなぜ起こるのでしょうか?
18
+ この現象の原因はなぜ起こるのでしょうか?
19
+ 初期化のソースコードは以下になります。MsTimer2でセンサーの入力を500ms毎にPCへ送信しています。
20
+
21
+ ```ここに言語を入力
22
+ void setup() {
23
+ pinMode(6, OUTPUT);
24
+ pinMode(12, OUTPUT);
25
+ pinMode(8, INPUT_PULLUP);
26
+ pinMode(5, OUTPUT);
27
+ pinMode(4, OUTPUT);
28
+ pinMode(A4, OUTPUT);
29
+
30
+ Serial.begin(9600);
31
+
32
+ // モーター1を停止
33
+ analogWrite(5, 0);
34
+ digitalWrite(4, HIGH);
35
+
36
+ // モーター2を停止
37
+ analogWrite(12, 0);
38
+ digitalWrite(6, HIGH);
39
+
40
+ MsTimer2::set(500, avg);
41
+ MsTimer2::start();
42
+ }
43
+ ```
44
+
45
+ ちなみに、下記のサイトで
46
+
47
+
48
+ 2.同時に全部が使えないピン
49
+
50
+ 「例えば、Arduinoにはタイマーという時間を刻む機能があるのですが、このタイマーの周期を作るために、●番ピンを使用してパルスを作っている! など...
51
+ ですので、最初のうち、全部のポートにいろいろな部品をぶら下げて機器を作ってみようとすると、プログラムでは決して制御していないLEDが急に光りだしたり、いきなりモータが回りだしたりとします。」
52
+
53
+ https://daisuki-arduino.com/arduino-pin/
54
+
55
+ という記載があり、これが問題なのではないかと考えています。