// Anemoscope test (for MCP23017) #include #include LiquidCrystal_I2C lcd(0x27,16,2); Adafruit_MCP23X17 mcp; int dn; String dir = "N"; void setup() { lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("COSMOLIGHT"); lcd.setCursor(0, 1); lcd.print("Project Arduino"); mcp.begin_I2C(0x20); // GPA0~7を入力に設定 for (int i = 0; i <= 7; i++) { mcp.pinMode(i, INPUT); } delay(3000); } void loop(){ dn = -1; //GPA0~7のデータを取得 for (int i = 0; i <= 7; i++) { if (mcp.digitalRead(i) == LOW) { dn = i; break; } } switch (dn) { case 0: dir = "N"; break; case 1: dir = "NE"; break; case 2: dir = "E"; break; case 3: dir = "SE"; break; case 4: dir = "S"; break; case 5: dir = "SW"; break; case 6: dir = "W"; break; case 7: dir = "NW"; break; } // data ---> LCD lcd.clear(); lcd.setCursor(0, 0); lcd.print("Wind direction:"); lcd.setCursor(0, 1); lcd.print(dir); delay(1000); }