全くの初心者です。本当に何もわかっていなくて困っています。
Arduinoを使って百葉箱のようなものを作っっているのですが。なかなか進まなくて困っております。
Arduinoで温度、湿度を出すプログラムと、LEDに1から99の数字を移すプログラムを別々に作成(ネットプログラムをほとんどコピペ)しております。
温度をLEDに移す事が目標なのですが、調べてもなかなかたどり着けません。どなたかプログラムの仕方を教えていただけないでしょうか。
湿度センサー DHT11
7セグメントLED
抵抗器(220Ω)
プログラムはこちらの二つです。!
// 2桁の7セグメントLEDを光らせるプログラム // int _cnt = 0; // int _number = 0; // boolean _flg = false; void setup(){ Serial.begin(9600); //2~8番ピン デジタル出力へセット for (int i=2; i<=8; i++){ pinMode(i,OUTPUT); } pinMode(13,OUTPUT); pinMode(11,OUTPUT); } //LEDレイアウトを定義 boolean Num_Array[10][7]={ {1,1,1,1,1,1,0}, //0 {0,1,1,0,0,0,0}, //1 {1,1,0,1,1,0,1}, //2 {1,1,1,1,0,0,1}, //3 {0,1,1,0,0,1,1}, //4 {1,0,1,1,0,1,1}, //5 {1,0,1,1,1,1,1}, //6 {1,1,1,0,0,1,0}, //7 {1,1,1,1,1,1,1}, //8 {1,1,1,1,0,1,1} //9 }; //LED表示関数を定義 void NumPrint(int Number){ for (int w=0; w<=7; w++){ digitalWrite(w+2,-Num_Array[Number][w]); } } //2桁をそれぞれの桁で分解する関数 int NumParse(int Number,int s){ if(s == 1){ return Number % 10; //10で割ったあまり = 一桁目の値 } else if(s == 2){ return Number / 10; //10で割った値を整数にする = 二桁目の値 } return 0; } void loop(){ if(_number >= 100){ _number = 0; } //flg変数をtrue / falseを切り替えることで11番13番ピンの出力を交互に切り替える if(_flg){ digitalWrite(11,LOW); digitalWrite(13,HIGH); _flg = false; NumPrint(NumParse(_number,1)); //1桁目の表示 } else{ digitalWrite(11,HIGH); digitalWrite(13,LOW); _flg = true; NumPrint(NumParse(_number,2)); //2桁目の表示 } //100まで行ったら表示する数値(_number)を1つ足す(実質delayの10×100で1秒に1カウント) if(_cnt >= 100){ _number++; _cnt = 0; Serial.print("NUMBER:"); Serial.println(_number); } _cnt++; delay(10); }``` コード
#include <DHT.h> // DHTクラスの生成 // ※Arduinoのデジタル9ピンでDHT11センサーを接続する DHT dht(9, DHT11); void setup() { Serial.begin(9600); dht.begin(); } void loop() { delay(2000); // 湿度 float humidity = dht.readHumidity(); // 温度 float temperature = dht.readTemperature(); if (isnan(humidity) || isnan(temperature)) { Serial.println("センサーから読み取りに失敗しました。"); return; } // 体感温度 float heatIndex = dht.computeHeatIndex(temperature, humidity, false); Serial.print("温度:"); Serial.print(temperature); Serial.print("℃ 湿度:"); Serial.print(humidity); Serial.print("% 体感温度:"); Serial.print(heatIndex); Serial.println("℃"); }ード