私はArduino気象ステーションを作りたいと思っていました。私が書いたコードは、Arduino Mega 2560でAtmega2560を使って完璧に動作しましたが、Arduino/Genuino Microに移植したとき、ハードウェアとLCDは正しく配線されましたが、 LCDが正常に動作しないか、何も表示しないため動作しません。シリアル経由では何も送信しません。アップロード中に、USBポートが接続されていて、何度か切断されていると聞きました。コード:
#include "DHT.h"
#include
#include
#include
LiquidCrystal lcd(8,9,4,5,6,7);
DHT dht(12, DHT22);
Adafruit_MPL3115A2 baro = Adafruit_MPL3115A2();
float temp;
int humidity;
int pressure;
int altitude;
long interval = 2000;
long millisSinceStart;
char cmd;
void setup() {
pinMode(12, INPUT);
lcd.begin(16, 2);
lcd.clear();
dht.begin();
baro.begin();
lcd.home();
lcd.print("TEMP:");
lcd.setCursor(10, 0);
lcd.print("HUM:");
lcd.setCursor(0, 1);
lcd.print("PRES:");
lcd.setCursor(9, 1);
lcd.print("ALT:");
Serial.begin(9600);
pinMode(A0, INPUT);
}
void loop() {
millisSinceStart = millis();
if(millisSinceStart % interval == 0){
temp = dht.readTemperature(true);
humidity = dht.readHumidity();
pressure = baro.getPressure();
altitude = baro.getAltitude();
lcd.setCursor(5, 0);
lcd.print(temp);
lcd.setCursor(14, 0);
lcd.print(humidity);
lcd.setCursor(5, 1);
lcd.print(pressure);
lcd.setCursor(13, 1);
lcd.print(altitude);
Serial.println(temp);
Serial.println(humidity);
Serial.println(pressure);
Serial.println(altitude);
}
}