Files

48 lines
1.2 KiB
Arduino
Raw Permalink Normal View History

2026-03-31 13:17:21 +02:00
int DE_Pin = 4;
int RE_Pin = 5;
int IRQ_Pin = 1;
char receivedMessage[64];
int receivedMessageIndex = 0;
void send_data(const String data, const String answer) {
data.replace("\r", "");
data.replace("\n", "");
Serial.println(data + answer);
}
void handleIRQ() {
detachInterrupt(digitalPinToInterrupt(irqPin));
send_data("#7V","message")
attachInterrupt(digitalPinToInterrupt(irqPin), handleIRQ, RISING);
}
void get_message() {
while (Serial.available()) {
char receivedChar = Serial.read();
if (receivedChar == '\n') {
receivedMessage[receivedMessageIndex] = '\0'; // Null-terminate the string
receivedMessageIndex = 0;
if (strstr(receivedMessage, "#7V") != NULL) {
send_data(receivedMessage, " ARDU_RS485_07-09-2023");
} else {
send_data(receivedMessage, "?");
}
} else {
receivedMessage[receivedMessageIndex++] = receivedChar;
}
}
}
void setup() {
pinMode(DE_Pin, OUTPUT);
pinMode(RE_Pin, OUTPUT);
digitalWrite(DE_Pin, 0);
digitalWrite(RE_Pin, 1);
Serial.println("Begin");
attachInterrupt(digitalPinToInterrupt(irqPin), handleIRQ, RISING);
}
void loop() {
get_message();
}