433 Mhz signaal

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

*/

#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();
}
}

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.

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.

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

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);
}

Hey Nico,

Top!! bedankt en weer wat geleerd! :wink:

het werkt!.......

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?

kxiniks:
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

Ik heb een Mega 2560 R3.

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....