He establecido un enlace de RF utilizando TWS-CS-2 como transmisor y AM-HRR3-433 como receptor.
La frecuencia portadora: 433.92MHz.
Tipo de modulación: PREGUNTE
ATtiny25 para generar y decodificar la señal codificada de Manchester.
El código se probó con dos ATtinys conectados directamente y funcionó a la perfección.
Luego probé la comunicación inalámbrica y empezaron a suceder cosas extrañas.
Tengo dos tipos de señal (dos números de cuatro dígitos). Uno siempre se recibe y se ve en un monitor de serie, el otro no se puede ver la mayor parte del tiempo.
Agradecería cualquier ayuda.
ACTUALIZACIÓN
Usé la biblioteca de Manchester de enlace
y Arduino Uno Rev.3 como ISP
código Tx
#include <Manchester.h>
#define TxPin 2
short int switch_on = 1678;
short int switch_off = 8435; // !!!Signal that is not detected most of the time
short int flag;
short int ON_Button;
short int OFF_Button;
void setup()
{
man.setupTransmit(TxPin, MAN_1200);
pinMode(3,OUTPUT);
}
void loop() {
ON_Button = digitalRead(0);
OFF_Button = digitalRead(1);
if(ON_Button==OFF_Button){digitalWrite(3, LOW);return;}
if(ON_Button==HIGH) {flag=1;digitalWrite(3, HIGH);}
if(OFF_Button==HIGH) {flag=2;digitalWrite(3, HIGH);}
if(flag==1)
man.transmit(switch_on);
if(flag==2)
man.transmit(switch_off);
}
código Rx
#include <Manchester.h>
#define RX_PIN 2
void setup() {
man.setupReceive(RX_PIN, MAN_1200);
man.beginReceive();
pinMode(0,OUTPUT);
digitalWrite(0,LOW);
}
void loop() {
if (man.receiveComplete()) {
short int m = man.getMessage();
man.beginReceive();
if(m==1678){digitalWrite(0,HIGH);}
if(m==8435){digitalWrite(0,LOW);} // !!!Signal that is not detected most of the time
m = 0;
}
}