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

回答編集履歴

6

コメント修正

2020/07/16 17:32

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -65,13 +65,13 @@
65
65
  Serial.println("Out of Range");
66
66
  }
67
67
  else if (Number < 0) {
68
- // -9~-0
68
+ // -10 < Number < 0
69
69
  num[0] = CHAR_MINUS;
70
70
  num[1] = (int)-Number % 10;
71
71
  Serial.println(Number);
72
72
  }
73
73
  else {
74
- // 0~99
74
+ // 0 <= Number < 100
75
75
  num[0] = Number / 10;
76
76
  num[1] = (int)Number % 10;
77
77
  Serial.println(Number);

5

コード修正

2020/07/16 17:32

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -45,47 +45,46 @@
45
45
  #define CHAR_E (12)
46
46
 
47
47
  //LED表示関数を定義
48
- void NumPrint(int Number) {
48
+ void Print7Seg(int Number) {
49
49
  for (int w = 0; w < 7; w++) {
50
50
  digitalWrite(w + 2, Num_Array[Number][w]);
51
51
  }
52
52
  }
53
-
54
- void loop() {
53
+ void NumPrintF(float Number) {
55
- delay(2000);
56
-
57
- float temperature = dht.readTemperature();
58
54
  int num[2] = {0};
59
- if (isnan(temperature)) {
55
+ if (isnan(Number)) {
60
56
  // Error
61
57
  num[0] = CHAR_E;
62
58
  num[1] = CHAR_r;
63
59
  Serial.println("Error");
64
60
  }
65
- else if (temperature <= -10) {
61
+ else if (Number <= -10 || 100 <= Number) {
66
62
  // Out of Range
67
63
  num[0] = CHAR_O;
68
64
  num[1] = CHAR_r;
69
65
  Serial.println("Out of Range");
70
66
  }
71
- else if (temperature < 0) {
67
+ else if (Number < 0) {
72
- // -9~-0
68
+ // -9~-0
73
69
  num[0] = CHAR_MINUS;
74
- num[1] = (int)-temperature % 10;
70
+ num[1] = (int)-Number % 10;
75
- Serial.println(temperature);
71
+ Serial.println(Number);
76
72
  }
77
73
  else {
78
- // 0~60℃
74
+ // 0~99
79
- num[0] = temperature / 10;
75
+ num[0] = Number / 10;
80
- num[1] = temperature % 10;
76
+ num[1] = (int)Number % 10;
81
- Serial.println(temperature);
77
+ Serial.println(Number);
82
78
  }
83
79
 
84
- for (int i = 0; i < 2; i++)
80
+ for (int i = 0; i < 2; i++) {
85
- {
86
81
  digitalWrite(11, i ? LOW : HIGH);
87
82
  digitalWrite(13, i ? HIGH : LOW);
88
- NumPrint(num[i]);
83
+ Print7Seg(num[i]);
89
84
  }
90
85
  }
86
+ void loop() {
87
+ delay(2000);
88
+ NumPrintF(dht.readTemperature());
89
+ }
91
90
  ```

4

コード修正

2020/07/16 17:23

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -83,8 +83,8 @@
83
83
 
84
84
  for (int i = 0; i < 2; i++)
85
85
  {
86
+ digitalWrite(11, i ? LOW : HIGH);
86
- digitalWrite(11, i ? HIGH : LOW);
87
+ digitalWrite(13, i ? HIGH : LOW);
87
- digitalWrite(13, i ? LOW : HIGH);
88
88
  NumPrint(num[i]);
89
89
  }
90
90
  }

3

コード修正(シリアル出力追加)

2020/07/16 17:15

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -11,9 +11,10 @@
11
11
  以下、動作未確認。
12
12
  ```C
13
13
  #include <DHT.h>
14
- DHT dht(9, DHT11);
14
+ DHT dht(9, DHT11);
15
15
 
16
16
  void setup() {
17
+ Serial.begin(9600);
17
18
  dht.begin();
18
19
  //2~8番ピン デジタル出力へセット
19
20
  for (int i = 2; i <= 8; i++) {
@@ -54,26 +55,30 @@
54
55
  delay(2000);
55
56
 
56
57
  float temperature = dht.readTemperature();
57
- int num[2] = { 0 };
58
+ int num[2] = {0};
58
59
  if (isnan(temperature)) {
59
60
  // Error
60
61
  num[0] = CHAR_E;
61
62
  num[1] = CHAR_r;
63
+ Serial.println("Error");
62
64
  }
63
65
  else if (temperature <= -10) {
64
66
  // Out of Range
65
67
  num[0] = CHAR_O;
66
68
  num[1] = CHAR_r;
69
+ Serial.println("Out of Range");
67
70
  }
68
71
  else if (temperature < 0) {
69
- // -9~-0℃
72
+ // -9~-0℃
70
73
  num[0] = CHAR_MINUS;
71
74
  num[1] = (int)-temperature % 10;
75
+ Serial.println(temperature);
72
76
  }
73
77
  else {
74
- // 0
78
+ // 0~60℃
75
79
  num[0] = temperature / 10;
76
80
  num[1] = temperature % 10;
81
+ Serial.println(temperature);
77
82
  }
78
83
 
79
84
  for (int i = 0; i < 2; i++)

2

不使用コード除去

2020/07/16 17:12

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -14,7 +14,6 @@
14
14
  DHT dht(9, DHT11);
15
15
 
16
16
  void setup() {
17
- Serial.begin(9600);
18
17
  dht.begin();
19
18
  //2~8番ピン デジタル出力へセット
20
19
  for (int i = 2; i <= 8; i++) {

1

未使用コード除去

2020/07/16 17:08

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -13,7 +13,6 @@
13
13
  #include <DHT.h>
14
14
  DHT dht(9, DHT11);
15
15
 
16
- boolean _flg = false;
17
16
  void setup() {
18
17
  Serial.begin(9600);
19
18
  dht.begin();