趣味の栽培者のためにキノコの温室を運営するために一緒に作ったコードです。私はすでに既存の作業プログラムを持っていますが、その後いくつかのハードウェア要素をアップグレードして、私のプログラムからいくらかの脂肪を取り除き、より洗練された機能を追加するかもしれないと考えました。そうすることで、エラーなくコンパイルされるが、セットアップに邪魔されても実行されないプログラムを作成した。Arduinoスケッチがループしない
プログラムはArduino Mega 2560によって実行されています。その他のハードウェアには、RTCモジュール、HTU21DF湿度/温度センサー、およびリレーモジュールが含まれています。デバイスは、RTC時間からのロジックステートメントに従って、ライトとファンを動作させ、HTU21DFセンサの読みに基づいてフォグポンプを起動します。 (後でこれでもっと来る)。
誰かがこのコードを見直して、私のDHT11(boo)を置き換えるために、より正確なHTUセンサーでこれをインストールしたいと思っていたら、どこに問題があるのか教えてください。
#include <LiquidCrystal_I2C.h>
#include <Adafruit_HTU21DF.h>
#include <DS3232RTC.h>
#include <Time.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27,16,2);
Adafruit_HTU21DF htu = Adafruit_HTU21DF();
void setup() {
pinMode(22, OUTPUT);
pinMode(23, OUTPUT);
pinMode(24, OUTPUT);
pinMode(50, OUTPUT);
Serial.begin(38400);
setTime(18,30,50,4,1,16);
Serial.println("HTU21D-F test");
if (!htu.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}
void loop()
{
digitalClockDisplay();
fanTimer();
lightTimer();
humiditySensor();
}
void digitalClockDisplay(){
// digital clock display of the time
// lcd.setCursor(0, 0);
Serial.print("Time ");
Serial.print(hour());
printDigits(minute());
printDigits(second());
Serial.println();
}
void printDigits(int digits){
// utility function for digital clock display: prints preceding colon and leading 0
Serial.print(":");
if(digits < 10)
Serial.print('0');
Serial.print(digits);
}
void fanTimer(){
if (
(minute() >= 0 && minute() < 4)
//|| (minute() >= 12 && minute() < 14)
|| (minute() >= 20 && minute() < 24)
//|| (minute() >= 32 && minute() < 34)
|| (minute() >= 40 && minute() < 44))
//|| (minute() >= 52 && minute() < 54))
{
digitalWrite (23, LOW);
}
else
{
digitalWrite (23, HIGH);
}
}
void lightTimer(){
if (hour() >= 6 && hour() < 18)
{
digitalWrite (22, LOW);
}
else
{
digitalWrite (22, HIGH);
}
}
void humiditySensor() {
float h = htu.readHumidity();
// lcd.setCursor(0,1);
Serial.print("Hum: ");
Serial.println(htu.readHumidity());
delay(500);
if (h <= 95)
{
digitalWrite (50, HIGH);
}
else
{
digitalWrite (50, LOW);
}
}
「センサーが見つかりませんでした!」と表示されますか? – Piglet