Hallo zusammen,
ich bin neu hier und habe ein Problem wo Ihr mir vieleicht helfen könnt.
Ich habe einen Arduino Nano mit einem CC1101 868MHz Modul verbunden.
Ich will damit einen Temperatursensor (Bresser Art.No. 7009999) auslesen.
Der Arduino bekommt jede Minute ein Signal vom CC1101 über GDO2 Pin.
Das Signal kommt vom Temperatursensor (TS), denn wenn der TS blinkt hab ich am Arduino ein Signal. Im Serial Monitor lass ich mir dann die Impulsbreite des Signal ausgeben. Jetzt muss ich das Signal in Daten umwandeln und da komme ich nicht weiter. Ich finde da keine Zuordnung was eine 1 und eine 0 ist. Wie bekomme ich diese Zuordnung raus? Weil die Impulse unterschiedlich breit sind und die Anzahl der Impulse variiert. Oder könnte es sein das ich das CC1101 Modul falsch eingestellt habe!
```cpp
#include <ELECHOUSE_CC1101_SRC_DRV.h>
//#include <cc1101_debug_service.h>
void setup() {
Serial.begin(115200);
Serial.println("Serial ok");
delay(100);
// if (ELECHOUSE_cc1101.getCC1101()){ // Check the CC1101 Spi connection.
// Serial.println("Connection OK");
// }else{
// Serial.println("Connection Error");
// }
pinMode(2, INPUT);
//CC1101 Settings: (Settings with "//" are optional!)
ELECHOUSE_cc1101.Init(); // must be set to initialize the cc1101!
//ELECHOUSE_cc1101.setRxBW(812.50); // Set the Receive Bandwidth in kHz. Value from 58.03 to 812.50. Default is 812.50 kHz.
//ELECHOUSE_cc1101.setPA(10); // set TxPower. The following settings are possible depending on the frequency band. (-30 -20 -15 -10 -6 0 5 7 10 11 12) Default is max!
ELECHOUSE_cc1101.setMHZ(868.3); // Here you can set your basic frequency. The lib calculates the frequency automatically (default = 433.92).The cc1101 can: 300-348 MHZ, 387-464MHZ and 779-928MHZ. Read More info from datasheet.
ELECHOUSE_cc1101.setDRate(54);
ELECHOUSE_cc1101.SetRx(); // set Receive on
Serial.println("Rssi: " + (String)ELECHOUSE_cc1101.getRssi());
}
#define AR_LEN 600
bool Flanke = false;
int Counter = 0;
unsigned long microzeit = 0;
unsigned long StartzeitP = 0;
unsigned long StartzeitN = 0;
unsigned int Zeitdata[AR_LEN];
int index = 0;
int merker = 0;
int PN = 1;
bool wechsel = false;
unsigned long EndzeitG = 0;
unsigned long StartzeitG = 0;
unsigned long GesamtEinzelzeit = 0;
void loop() {
//cc1101_debug.debug();
int Eingang = digitalRead(2);
// Positive Flankenerkennung
if(Eingang && !Flanke){
microzeit = micros();
if(Counter == 0){
StartzeitG = microzeit;
}
Counter++;
StartzeitP = microzeit;
if(microzeit - StartzeitN < 9000 && microzeit - StartzeitN > 0 && index < AR_LEN){
Zeitdata[index] = microzeit - StartzeitN;
index++;
}
}
// Negative Flankenerkennung
if(!Eingang && Flanke){
microzeit = micros();
//microzeit = loops;
StartzeitN = microzeit;
if(microzeit - StartzeitP < 9000 && microzeit - StartzeitP > 0 && index < AR_LEN){
Zeitdata[index] = microzeit - StartzeitP;
index++;
}
EndzeitG = microzeit;
}
Flanke = Eingang;
// Serieller Monitor Ausgabe
if(micros() - StartzeitG > 61000 && index > 0){
Serial.println("Receive Data - P-Flanken: " + (String)Counter + " Index: " + (String)(index) + " G-Zeit: " + (String)(EndzeitG - StartzeitG));
unsigned int max = 0;
unsigned int min = 999999;
unsigned int maxP = 0;
unsigned int minP = 999999;
for(int i=0;i<index;i++){
Serial.print(Zeitdata[i]);
Serial.print(",");
if(i % 2){
if(max < Zeitdata[i]){
max = Zeitdata[i];
}
if(min > Zeitdata[i]){
min = Zeitdata[i];
}
}
else{
if(maxP < Zeitdata[i]){
maxP = Zeitdata[i];
}
if(minP > Zeitdata[i]){
minP = Zeitdata[i];
}
}
GesamtEinzelzeit += Zeitdata[i];
}
Serial.println();
Serial.println("MaxN: " + (String)max + " MinN: " + (String)min + " MaxP: " + (String)maxP + " MinP: " + (String)minP); // + " GE-Zeit: " + (String)GesamtEinzelzeit);
Counter = 0;
index = 0;
merker = 0;
PN = 1;
wechsel = false;
GesamtEinzelzeit = 0;
StartzeitG = 0;
EndzeitG = 0;
memset(Zeitdata, 0, sizeof(Zeitdata));
} //*/
}
11:16:12.608 -> Receive Data - P-Flanken: 511 Index: 600 G-Zeit: 59284
11:16:12.608 -> 944,20,16,36,156,28,16,52,184,56,192,16,16,16,176,68,164,64,176,24,20,44,192,52,184,56,168,76,164,80,156,28,16,44,156,16,16,56,180,64,212,24,176,72,164,72,164,24,16,44,148,16,28,52,184,64,172,132,16,100,24,36,164,16,16,44,276,16,20,64,408,76,164,16,16,44,156,28,16,100,16,104,16,52,652,252,28,44,272,16,16,100,20,64,292,252,16,100,16,92,32,104,16,100,16,72,20,16,16,92,24,20,16,72,16,100,48,72,16,72,16,16,20,20,20,204,16,100,16,56,24,28,16,224,16,100,16,36,16,56,16,96,20,80,28,156,36,268,16,20,16,100,16,16,28,64,16,100,24,72,36,112,16,44,24,292,16,44,128,16,16,16,20,44,152,24,16,76,16,16,16,16,20,16,184,100,16,44,16,64,16,104,16,80,20,100,24,16,16,24,20,52,16,104,16,72,16,16,16,104,16,52,20,32,20,100,16,92,28,16,16,64,16,52,16,176,16,112,16,100,16,16,20,72,16,100,16,28,16,56,16,108,56,200,36,80,20,100,36,212,16,100,20,80,36,112,20,84,24,104,16,112,44,212,16,92,28,52,28,136,16,108,16,104,16,80,36,56,144,16,56,204,16,100,20,104,36,36,156,64,16,64,16,100,16,64,16,28,16,44,304,108,16,64,164,72,168,24,16,104,16,64,16,16,16,100,20,16,24,72,16,92,16,24,20,64,16,100,52,204,28,100,16,104,24,16,16,64,20,104,16,64,20,16,16,100,56,60,20,100,16,120,36,80,36,36,404,136,16,104,16,108,48,72,16,112,16,92,40,80,48,212,16,64,16,28,16,100,16,28,16,64,16,92,28,16,16,64,16,116,36,184,16,28,16,64,16,100,48,100,16,72,16,20,16,100,16,64,16,24,16,112,16,92,24,16,20,24,16,28,16,64,44,64,404,144,20,100,16,72,44,104,16,92,36,16,16,44,36,92,64,80,16,80,16,16,20,100,16,52,36,16,20,100,16,100,20,24,16,64,16,56,16,16,28,108,16,92,44,72,16,56,16,36,16,128,28,60,20,16,16,72,16,20,16,16,24,64,16,104,16,24,20,52,28,88,24,64,16,16,28,204,36,120,16,24,20,184,16,100,20,104,44,76,16,100,16,16,20,72,16,16,16,76,44,52,16,132,24,72,20,16,16,84,32,100,16,100,16,112,16,100,28,16,16,64,16,104,24,72,36,100,44,220,20,72,16,16,16,56,24,20,16,100,16,100,20,100,16,84,44,208,36,92,16,84,36,220,16,132,16,24,20,60,20,100,16,68,20,16,16,100,16,36,20,16,16,16,16,224,
11:16:12.773 -> MaxN: 292 MinN: 16 MaxP: 944 MinP: 16

