Filtrera bort störning på enkel 433 MHz mottagare

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Filtrera bort störning på enkel 433 MHz mottagare

Inlägg av ankan »

Har köpt en XY-MK-5V (http://www.mudah.my/RF+TX+RX+433MHz+Pai ... 746125.htm) på ebay och jag får massvis med störningar på datapinnen så den känns oanvändbar i dagsläget men någon här kanske har något litet knep hur jag filtrerar signalen?

Annars är frågan vad det finns för annan billig mottagare som fungerar bättre som jag kan köpa istället?
floppen
Inlägg: 109
Blev medlem: 14 september 2012, 13:28:32

Re: Filtrera bort störning på enkel 433Mhz mottagare

Inlägg av floppen »

Halloj

Ett filter är bra för att avlasta cpu'n men hur detta filter skall se ut beror på vad du vill göra.
Själv så har jag gjort lösningar där radion sitter kopplad till uarten direkt då med filter för störningar, Även kört data in på interrupt pinne då med manchester kodning med och utan filter och bra och sådär funktion.
Båda fallen tycker jag du skall filtrera data pinnen jag körde med ca 4800 baud på 433mhz även snabbare typ 9600 men då blir räck vidden mindre.
Hastigheten på datan sätter gräns på filter. Utan filter är risken stor att du inte gör annat än falska interrupt. Jag körd typ resistor i serie med data och konding till gnd.
Kommer inte ihåg värden men ca 10k och 100-220nf.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Re: Filtrera bort störning på enkel 433Mhz mottagare

Inlägg av ankan »

Ska bara lyssna av NEXA trafik så jag gissar att det är svårare att koppla till UART. Har satt den på RB0 så jag kan få interrupt på alla positiva flanker tex.
ska testa med 10k och en konding.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Re: Filtrera bort störning på enkel 433Mhz mottagare

Inlägg av ankan »

Har testat nu och det fungerade inget vidare tyvärr.

Med motståndet blev signalen så pass svag så jag inte fick några avbrott längre och kondingen vet jag inte om den gjorde någon skillnad.
Tycker tyvärr inte att filtret gjorde någon skillnad annars.

Kollade med oscilloskopet och det ser ut som att jag får mest störningar runt 0-10khz.
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Re: Filtrera bort störning på enkel 433Mhz mottagare

Inlägg av PHermansson »

Det är väl så att mottagaren höjer insignalen när det inte finns något att lyssna på, och sänker igen när det kommer starkare signaler. I mina experiment med att ta emot Nexa fungerar det bra genom att jag ignorerar bruset, en Nexasändning är ändå tydlig om man kollar med oscilloskop. Signalen är ju låg mellan koderna så det går att detektera en riktig kod. Minns jag rätt är pulserna i Nexa-signalerna mellan 400-1100mS, mellanperioden är cirka 11000mS.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Re: Filtrera bort störning på enkel 433Mhz mottagare

Inlägg av ankan »

Du menar us va? 11s mellan perioderna blir lite väl långsamt.

Hur ska jag koda bort filtret då?
Tänkte i dagsläget kolla hur långt det är mellan varje positiv flank och på så vis avgöra om det är 1 eller 0.
Skulle kunna vara hårdare med timingen så att en 1a tex bara är 450-550 us men brus ger väll falska pulser där imellan i så fall.

Eller kan man kanske modda mottagaren?
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Re: Filtrera bort störning på enkel 433Mhz mottagare

Inlägg av PHermansson »

Ja uS på svenska, microseconds på engelska. Det här kanske ger några tips?

Kod: Markera allt

/* For decoding Nexa remotes, as simple as possible(?)

RF receiver connected to Arduino pin D2.

C Patrik Hermansson 20121218
GPL v2
*/ 
unsigned long timeOfLastPinChange=0, message;
long microsSinceLastChange,microsSinceLastChangeOld;
int startbit, c=0;
boolean lowhigh;

void pinChange () {
  // Pin level has changed
  long currentTime = micros();
  microsSinceLastChange = (currentTime - timeOfLastPinChange);
  timeOfLastPinChange = currentTime;  
}

void setup()
{ 
  Serial.begin(9600);
  Serial.println("Start Nexa-decode");
  attachInterrupt (0, pinChange, CHANGE);  // attach interrupt handler
}

void loop()
{
  if (microsSinceLastChangeOld != microsSinceLastChange) {   // Pin has changed since last time   
    // Detect startbit
    if (microsSinceLastChange >=11000 && microsSinceLastChange <=11400 && startbit==0) 
    {
        startbit = 1;
        Serial.println("Startbit received ");
    }
    
    // Check for short and long pulses, add to message accordingly
    if (microsSinceLastChange < 700 && startbit==1) 
    {
      c++;
      message = message << 1;
    }
    else if (microsSinceLastChange > 700 && microsSinceLastChange < 1500 && startbit==1) 
    {
      c++;
      message = message << 1;
      message |= 1;
    } 
    
    // Save current time
    microsSinceLastChangeOld = microsSinceLastChange;
    
    // All pulses received, check if code is recognized and reset counters
    if (microsSinceLastChange >=11000 && startbit==1 && c>0) {  
       Serial.println("Done");
      //Debug:
       Serial.println(message);
       switch (message) {
          case 2863320261:   // A1 on
             //digitalWrite(LED, HIGH);
             Serial.println("A1 on");
             break; 
          case 2863320229:   // A1 off
             //digitalWrite(LED, LOW);
             Serial.println("A1 off");
             break;
       }   
       message=0;
       c=0;
       startbit=0;     
    }
  }
}
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Re: Filtrera bort störning på enkel 433Mhz mottagare

Inlägg av ankan »

Ser ut som så jag tänkte koda men jag fick så mycket interrupt så jag kodade aldrig klart.
Det kanske funkar trots alla störningar om man skriver så eller annars stramar om tidsvillkoren.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Re: Filtrera bort störning på enkel 433 MHz mottagare

Inlägg av ankan »

Har en alternativ mottagare som låg i garderoben annars.
Har en Ardeunis ARF-05 liggandes.

Borde inte vara så jobb att få igång den. Vad tror ni om den för att sniffa nexa?
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Re: Filtrera bort störning på enkel 433 MHz mottagare

Inlägg av PHermansson »

Verkar vara en transciever med en del egen intelligens, vet inte om den skulle funka. Själv har jag bland annat testat med en CDR03A, en riktigt simpel mottagare.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Re: Filtrera bort störning på enkel 433 MHz mottagare

Inlägg av ankan »

Verkar som intelligensen handlar om att sätta känslighet och riktning snarare än att den har egen kodning eller protokoll.

Ska testa den billiga först och se om jag kan ignorera bruset. Annars får jag sätta mig in i hur jag sätter upp den andra kretsen.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Re: Filtrera bort störning på enkel 433 MHz mottagare

Inlägg av ankan »

Såg att ARF-05 demodulator är FSK2+-50kHz vilket inte säger mig så mycket, men är det samma som nexa kör?

I manualen står det att man kan koppla ett par kondingar och en spole till rf ground för att få bort lite störningar men att de automatiskt försvinner när man får en sändning annars.
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Re: Filtrera bort störning på enkel 433 MHz mottagare

Inlägg av PHermansson »

Men om du tar min kod ovan och en enkel mottagare liknande min så ska det fungera. Varför göra det mer komplicerat än så?
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Re: Filtrera bort störning på enkel 433 MHz mottagare

Inlägg av ankan »

Ska testa det men har grejerna på jobbet så det blir mest funderingar nu.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Re: Filtrera bort störning på enkel 433 MHz mottagare

Inlägg av ankan »

PHermansson:

Hur får du ut hur lång en puls är? På picen i mikroc kan jag bara kolla timers som snurrar i sin egen hastighet.
Skriv svar