void setup() { // Serial dialect Serial.begin(115200); // Status LEDs pinMode(3, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(10, OUTPUT); } void loop() { // Check for input check_input(); } void check_input() { if (Serial.available() > 0) { if (Serial.read() == '0') { // Device unmounted // Cut power if (cut_power() == 1) { // Successful light_pin(3); delay(1000); dark_pin(3); } else { error(); } } else { // Wanting device // Give power if (give_power() == 1) { // Successful light_pin(6); delay(1000); dark_pin(6); } else { error(); } } } // Execution delay delay(100); } int cut_power() { digitalWrite(10, LOW); return 1; } int give_power() { digitalWrite(10, HIGH); return 1; } void light_pin(int pin) { digitalWrite(pin, 100); } void dark_pin(int pin) { digitalWrite(pin, 0); } void error() { // Unknown command light_pin(5); delay(1000); dark_pin(5); }