Estoy intentando leer los datos enviados por un dispositivo RF usando el ejemplo RC Switch / ReceiveDemo_Simple.
En resumen quiero hacer este proyecto:
Este es el codigo:
/*
Example for receiving
https://github.com/sui77/rc-switch/
If you want to visualize a telegram copy the raw data and
paste it into http://test.sui.li/oszi/
*/
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600);
mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin #2
}
void loop() {
if (mySwitch.available()) {
output(mySwitch.getReceivedValue(), mySwitch.getReceivedBitlength(), mySwitch.getReceivedDelay(), mySwitch.getReceivedRawdata(),mySwitch.getReceivedProtocol());
mySwitch.resetAvailable();
}
}
El problema que tengo es que no me aparece nada en el Monitor Serie cuando activo el mando ( he probado varios )
He probado con los módulos receptor: XY -MK -5V y el CJR500 y nada
En principio no veo en el código ninguna instrucción para imprimir en el monitor serial. Tendrás que añadir algunos " Serial.print () " por algún lado.
He estado realizando algunas pruebas con los modulos.
Con el ReceiveDemo_Advanced no he consegudo que me muestre nada.
Respecto a lo que comenta post #3 no encuntro el segundo archivo "output.ino"
Así que he probado con el ReceiveDemo_Simple y tampoco logro que muestre nada.
Lo estoy probando con un Arduino UNO seleccionando su puerto correspondiente.
En principio lo tengo todo como debe pero algo hay que no logro que muestre en el monitor serie.
He llegado a pensar que los módulos RF no funcionasen a si que lo he conectado al osciloscopio y cuando pulso cualquier mando el modulo envía datos entiendo que al pin 2 del Arduino le tienen que estar llegando datos, es decir los módulos funcionan
Respecto al post #3 ya encontre el archivo "output.ino" y lo guarde en la carpeta ReceiveDemo_Advanced, sin el archivo o con el me deja compilar y el resultado el mismo, no muestra nada.
post #7 Si la he probado, en el post#5 lo comento.
El resultado es el mismo, no muestra nada.
Como ves en las fotos de osciloscopio a la salida del módulo receptor tengo datos, los cuales llegan al pin 2 del Arduino Uno, pero no hoy manera, no los muestra.
Según he estado investigando la librería usa los protocolos:
SC5262 / SC5272
HX2262 / HX2272
PT2262 / PT2272
EV1527 / RT1527 / FP1527 / HS1527
Intertechno outlets
HT6P20X
Y el mando que uso, del cual quiero ver el código usa el protocolo Dynamic Code System.
Quizás por eso no muestra nada.
El codigo del ejemplo simple:
/*
Simple example for receiving
https://github.com/sui77/rc-switch/
*/
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600);
mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin #2
}
void loop() {
if (mySwitch.available()) {
Serial.print("Received ");
Serial.print( mySwitch.getReceivedValue() );
Serial.print(" / ");
Serial.print( mySwitch.getReceivedBitlength() );
Serial.print("bit ");
Serial.print("Protocol: ");
Serial.println( mySwitch.getReceivedProtocol() );
mySwitch.resetAvailable();
}
}
Como podría modificar el código para cambiar el pin 2 de entrada de datos por otro o que se os ocurre que podría probar.
La librería trabaja con interrupciones hardware así que lo único que puedes hacer es cambiar el pin 2 por el 3.
El pin 2 genera la interrupción 0, el 3 la interrupción 1.
Entonces para usar el pin 3 debes cambiar esta línea de setup()
mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin #2
por
mySwitch.enableReceive(1); // Receptor en interrupcion 1 => pin #3
No son protocolos, son los chips codificadores/decodificadores que soporta la librería, tal como lo especifica la documentación (traducido):
Todo lo que necesita es un Arduino o Raspberry Pi, un transmisor AM de 315 / 433MHz y
uno o más dispositivos con uno de los chipsets compatibles:
* SC5262 / SC5272
* HX2262 / HX2272
* PT2262 / PT2272
* EV1527 / RT1527 / FP1527 / HS1527
* Intertechno outlets
* HT6P20X
Pues por experimentar.
No se que chip lleva el mando que uso.
Como comente en el post #8 esta librería solo vale para los chip:
SC5262 / SC5272
HX2262 / HX2272
PT2262 / PT2272
EV1527 / RT1527 / FP1527 / HS1527
Intertechno outlets
HT6P20X
De esto me he dado cuenta experimentando ya que el articulo de luisllamas del post #1 me dio a entender que esta librería mostraba en el monitor serie el código enviado de cualquier mando.
Doy por resuelta mi duda.
Gracias a todos por vuestra ayuda