74 lines
1.6 KiB
C++
74 lines
1.6 KiB
C++
const int PIN_PG = 2; // GPIO 2
|
|
const int PIN_RESET = 4; // GPIO 4
|
|
|
|
String inputCommand = "";
|
|
|
|
void setup() {
|
|
Serial.begin(115200);
|
|
delay(1000); // give some time for Serial to attach
|
|
|
|
pinMode(PIN_PG, OUTPUT);
|
|
digitalWrite(PIN_PG, LOW);
|
|
|
|
pinMode(PIN_RESET, INPUT);
|
|
|
|
Serial.println("Booting...");
|
|
Serial.println("Ready. Commands: 'pg 1', 'pg 0', 'reset'");
|
|
}
|
|
|
|
void loop() {
|
|
// Heartbeat
|
|
static unsigned long lastBeat = 0;
|
|
if (millis() - lastBeat > 2000) {
|
|
lastBeat = millis();
|
|
}
|
|
|
|
while (Serial.available() > 0) {
|
|
char c = Serial.read();
|
|
|
|
// Echo back what we received so you can see it
|
|
Serial.write(c);
|
|
|
|
// Check for end of line
|
|
if (c == '\n' || c == '\r') {
|
|
if (inputCommand.length() > 0) {
|
|
Serial.print("\nReceived command: [");
|
|
Serial.print(inputCommand);
|
|
Serial.println("]");
|
|
|
|
handleCommand(inputCommand);
|
|
inputCommand = "";
|
|
}
|
|
} else {
|
|
inputCommand += c;
|
|
}
|
|
}
|
|
}
|
|
|
|
void handleCommand(String cmd) {
|
|
cmd.trim(); // remove spaces/newlines
|
|
|
|
if (cmd == "pg 1") {
|
|
pinMode(PIN_PG, OUTPUT);
|
|
digitalWrite(PIN_PG, HIGH);
|
|
Serial.println("PG -> HIGH");
|
|
|
|
} else if (cmd == "pg 0") {
|
|
pinMode(PIN_PG, OUTPUT);
|
|
digitalWrite(PIN_PG, LOW);
|
|
Serial.println("PG -> LOW");
|
|
|
|
} else if (cmd == "reset") {
|
|
Serial.println("Reset sequence on GPIO 4");
|
|
pinMode(PIN_RESET, OUTPUT);
|
|
digitalWrite(PIN_RESET, LOW);
|
|
delay(500); // 0.5 sec
|
|
pinMode(PIN_RESET, INPUT);
|
|
Serial.println("GPIO 4 back to INPUT");
|
|
|
|
} else {
|
|
Serial.print("Unknown command: ");
|
|
Serial.println(cmd);
|
|
}
|
|
}
|