String input; // for incoming serial data int command; bool vac = false; //Switch condition for vacuum bool blow = false; //Switch condition for blow off bool off = true; //Switch condition for off void setup() { Serial.begin(9600); // opens serial port, sets data rate to 9600 bps pinMode(8, OUTPUT); //Assign port 8 and 9 as digital output pinMode(9, OUTPUT); digitalWrite(9, HIGH); digitalWrite(8, HIGH); } void loop() { // send data only when you receive data: if (Serial.available() > 0) { // read the incoming string: input = Serial.readString(); // read input data from the serial monitor command = input.toInt(); // enter a command of 1 to turn on and off vac if (command == 1) { vac = !vac; } // enter a command of 3 to turn on and off blow off if (command == 3) { blow = !blow; } /*Serial.print("vac: "); Serial.println(vac); Serial.print("blow: "); Serial.println(blow); Serial.print("off: "); Serial.println(off);*/ if (vac && blow || !vac && !blow) { vac = false; blow = false; Serial.println("off"); // due to circuit design, a HIGH digital output corresponds to off for the ejector signal digitalWrite(9, HIGH); digitalWrite(8, HIGH); } else if (blow) { Serial.println("blow on"); // digital pin 8 is connected to blow off digitalWrite(8, LOW); digitalWrite(9, HIGH); delay(300); digitalWrite(8, HIGH); blow = false; vac = false; Serial.println("off"); } else if (vac) { Serial.println("vacuum on"); // digital pin 9 is connected to vacuum digitalWrite(9, LOW); digitalWrite(8, HIGH); } } }