// Define the pin numbers for the sensors and actuators const int LED_PIN = 7; const int WASH_BUTTON_PIN = 11; const int DRY_BUTTON_PIN = 10; const int FULL_BUTTON_PIN = 9; const int WATER_SENSOR_PIN = 2; const int LID_SENSOR_PIN = 3; const int DRUM_PIN = 4; const int WATER_PUMP_PIN = 5; void setup() { Serial.begin(9600); pinMode(LED_PIN, OUTPUT); pinMode(WASH_BUTTON_PIN, INPUT); pinMode(DRY_BUTTON_PIN, INPUT); pinMode(FULL_BUTTON_PIN, INPUT); pinMode(WATER_SENSOR_PIN, INPUT); pinMode(LID_SENSOR_PIN, INPUT); pinMode(DRUM_PIN, OUTPUT); pinMode(WATER_PUMP_PIN, OUTPUT); } void loop() { // Wait for the wash button press if (digitalRead(WASH_BUTTON_PIN) == HIGH) { // Check the water level and lid status if (digitalRead(WATER_SENSOR_PIN) == LOW && digitalRead(LID_SENSOR_PIN) == LOW) { // Start the wash cycle digitalWrite(DRUM_PIN, HIGH); digitalWrite(WATER_PUMP_PIN, HIGH); delay(600); digitalWrite(DRUM_PIN, LOW); digitalWrite(WATER_PUMP_PIN, LOW); delay(400); digitalWrite(WATER_PUMP_PIN, HIGH); delay(400); digitalWrite(WATER_PUMP_PIN, LOW); } else { Serial.println("Not enough water or lid is open."); digitalWrite(LED_PIN, HIGH); } } // Wait for the dry button press if (digitalRead(DRY_BUTTON_PIN) == HIGH) { // Start the slow spin if (digitalRead(LID_SENSOR_PIN) == LOW) { digitalWrite(DRUM_PIN, HIGH); delay(600); // Start the fast spin digitalWrite(DRUM_PIN, LOW); delay(300); digitalWrite(DRUM_PIN, HIGH); delay(300); digitalWrite(DRUM_PIN, LOW); } else { Serial.println("lid is open."); digitalWrite(LED_PIN, HIGH); } } // Wait for the full cycle button press if (digitalRead(FULL_BUTTON_PIN) == HIGH) { // Perform the wash cycle if (digitalRead(WATER_SENSOR_PIN) == LOW && digitalRead(LID_SENSOR_PIN) == LOW) { // Start the wash cycle digitalWrite(DRUM_PIN, HIGH); digitalWrite(WATER_PUMP_PIN, HIGH); delay(600); digitalWrite(DRUM_PIN, LOW); digitalWrite(WATER_PUMP_PIN, LOW); delay(400); digitalWrite(WATER_PUMP_PIN, HIGH); delay(400); digitalWrite(WATER_PUMP_PIN, LOW); } else { Serial.println("Not enough water or lid is open."); digitalWrite(LED_PIN, HIGH); return; } // Perform the dry cycle // Start the slow spin if (digitalRead(LID_SENSOR_PIN) == LOW) { digitalWrite(DRUM_PIN, HIGH); delay(200); // Start the fast spin digitalWrite(DRUM_PIN, HIGH); delay(200); digitalWrite(DRUM_PIN, LOW); delay(200); digitalWrite(DRUM_PIN, HIGH); delay(100); digitalWrite(DRUM_PIN, LOW); } else { Serial.println("Not enough water or lid is open."); digitalWrite(LED_PIN, HIGH); return; } }}