Problemas con comunicacion entre arduinos :(

Que tal disculpen la verdad soy nuevo en esto de usar arduinos he estado trabajando con el pero realmente se me dificultan alguas cosas en esta ocacion tengo un problema quiero realizar una comunicaciones entre 2 arduinos pero por un cable de principio pense que era facil conectar el TX de un arduino y en el otro arduino conectar el RX pero hasta el momento no resivo nada estos son los programas que usado sin optener resultados como puedo saber si estoy haciendo algo mal o mis placas tiene algun desperfecto tengo 2 placas Arduino Duemilanove

el primer programa que use al principio use la variable a transmitir de tipo byte pero el resultado es el mismo que si uso una variable de tipo int ninguno =(

//Transmisor:

int ledPin = 11;

void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);

}

void loop() {

int b = 0;

Serial.write(b);
digitalWrite(ledPin, b);
delay(1000);

b=255;

Serial.write(b);
digitalWrite(ledPin, b);
delay(1000);
}

// Receptor

int ledPin = 11;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}

void loop() {
int datos;

if (Serial.available()) {

datos = Serial.read();
Serial.println(datos);
digitalWrite(ledPin, datos);
}
}

despues opte por usar la libreria de VirtualWire y los ejemplos que trae

//transmisor
#include <VirtualWire.h>

void setup()
{
Serial.begin(9600); // Debugging only
Serial.println(“setup”);

// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec

}

void loop()
{
const char *msg = “hello”;

digitalWrite(13, true); // Flash a light to show transmitting
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13, false);
delay(200);
}

//receptor

#include <VirtualWire.h>

void setup()
{
Serial.begin(9600); // Debugging only
Serial.println(“setup”);

// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec

vw_rx_start(); // Start the receiver PLL running
}

void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;

if (vw_get_message(buf, &buflen)) // Non-blocking
{
int i;

digitalWrite(13, true); // Flash a light to show received good message
// Message with a good checksum received, dump it.
Serial.print("Got: ");

for (i = 0; i < buflen; i++)
{
Serial.print(buf*, HEX);*

  • Serial.print(" ");*
  • }*
  • Serial.println("");*
  • digitalWrite(13, false);*
  • }*
    }
    [/quote]
    Algun comentario por el cual no puedo obtener valores =(
    gracias por su tiempo

Hola,
Cómo están alimentados? ¿Cada uno con su propio alimentador? En ese caso habría que conectar las masas de ambos, o sea, necesitas tres hilos para la conexión. Todos hemos cometido alguna vez el error de no conectar las masas de dos módulos que se tienen que comunicar.
Para saber si las placas están bien, prueba conectando separadamente cada una al PC.

ok creo que tienes razon por alguna extraña razon se me olvido conectar las masas aunque yo las conosco como tierras me supese que era eso por ese error que tienes razon se pasa por alto muchas veces te agradesco mucho por tu tiempo y esa gran observacion :slight_smile:

En el segundo ejemplo me pierdo pero en el primero veo que el emisor manda por el puerto serie el valor 0 y espera un segundo, manda el valor 255 y espera un segundo, vuelve a empezar.

El receptor esta escuchando el puerto serie, cuando le llega un valor lo envía de vuelta al emisor..... yo creo que funciona bien, pero no tienes forma de verlo.

En ellos ejemplos del IDE hay uno llamado Physical Pixel, también tiene un emisor y un receptor. Abrelos y miralos.

Un saludo.