Hallo liebe Gemeinde.
Erst einmal wünsche ich ein Frohes neues Jahr.
Ich habe ein Funkgerät dessen Daten ich per CI-V Schnittstelle (am Arduino Serial2) empfange und sende.
Das senden klappt super
![]()
das Empfangen teilweise auch.
Jetzt würde ich gerne die Frequenz auslesen und mir auf das Nextion schicken.
Bis zum empfang Funktioniert alles.
18:56:02.595 ->(Abfrage der Frequenz) FE FE 7A E0 03 FD;
18:56:02.595 ->(Emfpang Frequenz) FE FE E0 7A 03 00 69 30 FD;
hier besteht die Frequenz aus 3.6900 MHz
also ab FD für das endbyte rückwärtsgelesen.
Das ganze habe ich in meinem Sketch auch berücksichtigt.
Wenn ich jetzt freq(x) einzelnd an das Nextion schicke, wird es mir auch richtig angezeig,
sobald ich versuche diese daten zusammen zu führen entsteht mist bzw ich bekomme irgendwas angezeigt.
kennt da jemand eine lösung für ??
#define trx_adress 0x7A
byte NexT[3] = {255, 255, 255};
// Kommunikation
int Nex; // Nextion Data
int incomingByte; // RS485 Data
int trxByte; // TRX Data
// Millis
unsigned long trxdelay = 0;
#define trx_delay 400
int readCounter = 0;
int QRG;
int freq1;
int freq2;
int freq3;
int freq4;
void setup() {
Serial.begin(9600);
Serial1.begin(9600);
Serial2.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
incomingByte = Serial.read();
Serial.print(incomingByte);
}
if (Serial1.available() > 0) {
Nex = Serial1.read();
Serial.print(Nex, HEX);
}
if (Serial2.available() > 0) {
trxByte = Serial2.read();
readCounter++;
Serial.print(trxByte, HEX);
}
if (millis() - trxdelay >= trx_delay) {
trxdelay = millis();
Serial2.flush();
Serial2.write(0xFE);
Serial2.write(0xFE);
Serial2.write(trx_adress);
Serial2.write(0xE0);
Serial2.write(0x03);
Serial2.write(0xFD); // end sequence
readCounter = 0;
}
if (readCounter == 12) {
freq4 = (trxByte);
}
if (readCounter == 13) {
freq3 = (trxByte);
}
if (readCounter == 14) {
freq2 = (trxByte);
}
if (readCounter == 15) {
freq1 = (trxByte);
}
QRG = 0;
QRG = (freq1);
//QRG 0 (freq1)+(freq2)+(freq3)+(freq4);
Serial1.print("t40.txt=");
Serial1.write(0x22);
Serial1.print(QRG);
Serial1.write(0x22);
Serial1.write(NexT, 3);
}