Go Down

Topic: 433 Mhz signaal (Read 1 time) previous topic - next topic

kxiniks

Ik gebruik onderstaande sketch om het signaal van een RC te ontvangen, dit werkt prima, maar nu wil ik  , afhankelijk van het ontvangen signaal, een ledje laden branden.

Maar hoe? (ik krijg de ontvangen code niet 'vertaald' naar een waarde die ik met een if statement kan checken).

 /*
  Example for receiving
 
  http://code.google.com/p/rc-switch/
 
*/

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {
  Serial.begin(9600);
  mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => that is pin #2
}

void loop() {
  if (mySwitch.available()) {
    output(mySwitch.getReceivedValue(), mySwitch.getReceivedBitlength(), mySwitch.getReceivedDelay(), mySwitch.getReceivedRawdata(),mySwitch.getReceivedProtocol());
    mySwitch.resetAvailable();
  }
}

MAS3

Hoi kxiniks.

Je bent de [code] [/code] tags vergeten.

Ik ken de RCSwitch library niet en ik weet ook niet hoeveel mensen die library zouden kennen.
Daarom lijkt het me slim om te laten zien wat je wel binnen krijgt.

Dan kan aan de hand daarvan wellicht een passend antwoord bedacht worden.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

kxiniks

Decimal: 4276016 (24Bit) Binary: 010000010011111100110000 Tri-State: F00F01110100 PulseLength: 279 microseconds Protocol: 1
Raw data: 8660,264,852,560,288,268,848,268,848,268,848,264,848,268,848,824,292,268,848,264,848,828,288,824,292,824,288,824,292,824,292,820,292,268,848,268,848,824,292,820,296,264,848,264,852,264,852,264,852,


Dit krijg ik binnen. Maar dit wordt in een tabel karakter voor karakter opgeslagen. Ik wil dus bijv. kunnen testen of de binnen gekomen kode 4276016 (decimaal) is en zo ja moet led 13 gaan branden.

nicoverduin

Het is een 24 bits waarde dus kun je hem gewoon stoppen in een uint32_t veld.
dus iets van:
Code: [Select]

uint32_t ontvangenWaarde; = mySwitch.getReceivedValue();   // ophalen waarde
if (ontvangenWaarde == 4276016){
   //
   // juiste code ontvangen
   //
   digitalWrite(LED, HIGH);
} else {
   //
   // andere of geen code ontvangen
   //
   digitalWrite(LED, LOW);
}
Met vriendelijke groet / kindest regards
Nico Verduin
www.verelec.nl
Do not PM me for personal consultancy unless you are willing to pay for it.

kxiniks

Hey Nico,

Top!! bedankt en weer wat geleerd! ;)

het werkt!.......

kxiniks

Nog een 'probleempje' deze sketch (en andere idem) werkt prima als ik de arduino aan heb gesloten aan de usb port, maar zodra ik hem loskoppel en voorzie van voldoende spanning, dan werkt hij niet meer.

Nou las ik ergens dat dit komt door de 'serial' instructie en dat deze vervangen zou moeten worden door console en dat console.h geincludeerd zou moeten worden...maar dit wil niet lukken.

Verder kan ik er weinig over 'vinden'. Is dit bekend? is hier meer info over?


Jantje

Nou las ik ergens dat dit komt door de 'serial' instructie en dat deze vervangen zou moeten worden door console en dat console.h geincludeerd zou moeten worden...maar dit wil niet lukken.
Met een uno of mega zou dat niks mogen uitmaken.
Een Leonardo, yun, due, zero zijn iets anders.
Welk bordje heb je?
Jantje
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

kxiniks

Ik heb een Mega 2560 R3.

nicoverduin

Op zich zou het zoals Jantje al aangaf zonder problemen moeten werken. Maar ik ben wel wat benieuwd hoe jij eea hebt aangesloten. Heb je iets van een schema oid? Van mijn part gewoon een schets. Wat iets "werkt niet meer" is wel erg vaag....
Met vriendelijke groet / kindest regards
Nico Verduin
www.verelec.nl
Do not PM me for personal consultancy unless you are willing to pay for it.

Go Up