Målet er å sende en streng fra enhet 1 til enhet 2. Når den er motatt og godtatt av enhets 2 respons sendes tilbake til enhet 1.
Diagram

Kode
Github: https://github.com/kjetilfjellheim/arduino_misc/tree/main/apc220_comtest
Koden under lager to strenger som COMMAND or RESPONSE. COMMAND sendes først fra enhet 1 til enhet 2. Når kommandoen blir mottatt på enhet 2 så responderer den med OK tilbake til enhet 1.
char* COMMAND = "Command\0";
char* RESPONSE = "OK\0";
void setup() {
Serial.begin(9600);
Serial1.begin(9600);
Serial2.begin(9600);
}
Serial brukes for debugging. Serial 1 er enhet 1 og Serial 2 er enhet 2. Enhet 1 og 2 er som standard satt opp med baud 9600.
if (Serial1.availableForWrite()) {
Serial1.write(COMMAND);
Serial1.flush();
Serial.println("Command sent");
}
Når enhet 1 er tilgjengelig for å sendes så sender vi «Command\0». Vi bruker \0 for å identifisere når alle data er lest.
if (Serial2.available()) {
String received = Serial2.readStringUntil('\0');
if (received.equals(COMMAND)) {
Serial.println("Command received");
Serial2.write(RESPONSE);
Serial2.flush();
Serial.println("Response sent");
}
}
Serial 2 leser mottatt streng og sjekker om den er som forventet. Hvis den er det så responderer vi med RESPONSE strengen.
if (Serial1.available()) {
String received = Serial1.readStringUntil('\0');
Serial.println(received);
if (received.equals(RESPONSE)) {
Serial.println("Response was received");
}
}
Når enhet 1 er tilgjengelig så leser vi respons strengen og sjekker at den er ok.
Resultat

Du må være logget inn for å legge inn en kommentar.