26-06-2018, 07:21 PM
Buenas gente:
Resulta que quiero empezar con una tareita simple para avanzar con un proyecto que tengo (empleo placas chinas (arduino nano) pero con arduino en general) y se me resisten los transmisores de la siguiente foto:
Empleo estas placas para montar todo el circuito
CONEXIONES
Lo conecto todo de la siguiente manera:
CODIGO
El siguiente codigo lo cargo en el emisor:
y el siguiente va en el receptor:
En resumen: Hago que el emisor emita una "a" i una "b" intermitentemente y el receptor cuando recibe una "a" se enciende el led y cuando recibe una "b" apaga el mismo led.
PROBLEMA:
El codigo explicado antes a la practica no sale igual , me explico:
El emisor parece que si que emite ya que la luz se enciende y se apaga, dando a entender que la funciónion de transmisión de datos acaba y transmite los datos, pero el receptor ni se inmuta, no se enciende ni una vez el led. He comprobado a ver si era por algun cable cortado o razones fisicas o incluso cambiando y alimentado al receptor con 5v pero no , parece todo correctamente conectado pero el sistema sigue sin funcionar. Alguien tiene alguna idea?.
Gracias de antemano
Resulta que quiero empezar con una tareita simple para avanzar con un proyecto que tengo (empleo placas chinas (arduino nano) pero con arduino en general) y se me resisten los transmisores de la siguiente foto:
Empleo estas placas para montar todo el circuito
CONEXIONES
Lo conecto todo de la siguiente manera:
CODIGO
El siguiente codigo lo cargo en el emisor:
Código:
// EMISOR (Chip pequeño)
#include <VirtualWire.h>
char dato = 'a';
void setup()
{
Serial.begin(9600);
Serial.println("enviando");
// Se inicializa el RF
vw_setup(4000); // velocidad: Bits per segundo
vw_set_tx_pin(12); //Pin 2 como salida para el RF
pinMode(13, OUTPUT); //Configuramos el pin del Led como entrada
}
void loop()
{
if(dato == 'a')dato = 'b';
else dato = 'a';
//Enviamos el carácter recibido al RF
vw_send((uint8_t *)dato, strlen(dato));
vw_wait_tx(); // Wait until the whole message is gone
if((char)dato=='a')
{
digitalWrite(13, true); //Encendemos el Led
}
else if((char)dato=='b')
{
digitalWrite(13, false); //Apagamos el Led
}
delay(2000);
}
y el siguiente va en el receptor:
Código:
// RECEPTOR (Chip grande)
#include <VirtualWire.h>
uint8_t dato;
uint8_t datoleng=1;
void setup()
{
Serial.begin(9600); // Debugging only
Serial.println("setup");
// Se inicializa el RF
vw_setup(4000); // velocidad: Bits per segundo
vw_set_rx_pin(11); // Pin 11 como entrada del RF
vw_rx_start(); // Se inicia como receptor
pinMode(13, OUTPUT);//Configuramos el pin del Led como entrada
digitalWrite(13, false);
}
void loop()
{
if (vw_get_message(&dato,&datoleng))
{
Serial.println((char)dato);
if((char)dato == 'a')
{
digitalWrite(13, true); //Encendemos el Led
delay(1800);
}
else if((char)dato != 'a')
{
digitalWrite(13, false); //Apagamos el Led
}
}
delay(200);
}
En resumen: Hago que el emisor emita una "a" i una "b" intermitentemente y el receptor cuando recibe una "a" se enciende el led y cuando recibe una "b" apaga el mismo led.
PROBLEMA:
El codigo explicado antes a la practica no sale igual , me explico:
El emisor parece que si que emite ya que la luz se enciende y se apaga, dando a entender que la funciónion de transmisión de datos acaba y transmite los datos, pero el receptor ni se inmuta, no se enciende ni una vez el led. He comprobado a ver si era por algun cable cortado o razones fisicas o incluso cambiando y alimentado al receptor con 5v pero no , parece todo correctamente conectado pero el sistema sigue sin funcionar. Alguien tiene alguna idea?.
Gracias de antemano