回答編集履歴
2
質問の更新に対するレスポンス
answer
CHANGED
@@ -9,4 +9,11 @@
|
|
9
9
|
つまり、while (SwSerial.available() > 0){...}は、「シリアルポートに何か入力が入っている場合は{...}ブロックの中身を実行し、シリアルポートに何かが入った状態でなくなったら、抜ける」処理となります。
|
10
10
|
さて、SerialをSerial.beginした直後のタイミングで、シリアルポートに何か入っている(相手から何かデータが送られている)でしょうか?送られていませんね。その結果、whileのブロックの中の処理は全く行わず、そのままdeep_sleep処理に入っているということです。
|
11
11
|
|
12
|
-
while (SwSerial.available() > 0){...} の上にさらにループが必要だと分かっていただけましたか?つまり何が言いたいかというと、loop関数を使ってあげてねということです
|
12
|
+
while (SwSerial.available() > 0){...} の上にさらにループが必要だと分かっていただけましたか?つまり何が言いたいかというと、loop関数を使ってあげてねということです
|
13
|
+
|
14
|
+
----
|
15
|
+
|
16
|
+
現在setup内で行っている、deep_sleepする処理を、どういうときにさせたいのかを考えれば、どこに書けばいいのかわかると思います。
|
17
|
+
「どういうときにsleepさせたいの?」
|
18
|
+
「その処理を行っているのはどこなの?」
|
19
|
+
を考えてください
|
1
情報の追記
answer
CHANGED
@@ -1,3 +1,12 @@
|
|
1
1
|
setupでやるべき仕事とloopでやるべき仕事が分離できていないように思います。
|
2
2
|
最初に while (SwSerial.available() > 0) に到達した時、SwSerial.available() の値がどうなると思われますか?
|
3
|
-
つまり、起動直後にシリアルにデータが入ってきていることがあるかどうかということですが
|
3
|
+
つまり、起動直後にシリアルにデータが入ってきていることがあるかどうかということですが
|
4
|
+
|
5
|
+
------
|
6
|
+
https://garretlab.web.fc2.com/arduino_reference/language/functions/communication/serial/available.html
|
7
|
+
|
8
|
+
Serial.available()は、「シリアルポートから読み取り可能なバイト数(文字数)を取得する。これは、すでにArduinoボードに到着していて、シリアル通信用の受信バッファに格納されているデータである。シリアル通信用の受信バッファは64バイトまで格納することができる。」関数です。
|
9
|
+
つまり、while (SwSerial.available() > 0){...}は、「シリアルポートに何か入力が入っている場合は{...}ブロックの中身を実行し、シリアルポートに何かが入った状態でなくなったら、抜ける」処理となります。
|
10
|
+
さて、SerialをSerial.beginした直後のタイミングで、シリアルポートに何か入っている(相手から何かデータが送られている)でしょうか?送られていませんね。その結果、whileのブロックの中の処理は全く行わず、そのままdeep_sleep処理に入っているということです。
|
11
|
+
|
12
|
+
while (SwSerial.available() > 0){...} の上にさらにループが必要だと分かっていただけましたか?つまり何が言いたいかというと、loop関数を使ってあげてねということです
|