Señales analogicas y digitales de Tx XBee a Rx XBee, tipo array.


hola de nuevo compañeros.

después de un tiempo desconectado por falta de tiempo, hoy me pico el gusanillo de volver coger el hilo de lo que andaba tramando hace ya un tiempo.

os cuento, tengo dos arduinos con sus respectivos xbees y comunican de maravilla, les montado un código para poder enviar señales analogicas y digitales de uno otro, en cuanto las digitales me funciona todo bien, cuando pulso interruptor en el emisor, se cambia de estado de 0 1 y como consecuencia se me enciende el led correspondiete y se apaga al dejar de pulsar.

pero ando un poco despistado con las analógicas ya que pesar que en el receptor se  monitoréa correctamente lo que está pasando en el emisor, algo así:

/0,0,0,0
/0,0,0,0
/0,1,0,0     //cuando actúo en la segunda posición en el pulsador me pasa de 0 1 y se enciende el led.
/0,0,235,0 //cuando actúo en el poti del emisor, monitoreo esto en la tercera posición pero no consigo mover el servo.

pues eso es lo que me pasa, las lineas que leo en el monitor serie en tiempo real me funcionan correctamente, todos los estados analogicos y digitales cambian en las posiciones correspondientes de 0 1 en el caso de las digitales y de 0 255 en las analógicas, pero en estas últimas no se como tengo que hacer para que el servo se posicione en el valor leido de 0 255.

aquí os dejo mi código receptor.


#include <servo.h>

int count = 0;
int = 0, b = 0, c = 0, d = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;
int ledpin7 = 7;
int ledpin12 = 12;
int valorservo = 0;
servo myservo; // crea un objeto tipo servo para controlar el servo


void setup()
{
serial.begin(19200); // declaramos la velocidad del puerto
pinmode(ledpin7, output);
pinmode(ledpin12, output);
myservo.attach(8); // en edubasica el servo se conecta al pin 8

}
void loop() // entramos en el bucle
{
if (serial.available() > 0)
{
if (count < 7) // si el dato leido es menor que 7, saca por pantalla e incrementa
{

count++; // incrementa el contador
//serial.print(count);
switch (count) // analiza cada valor enviado por el puerto serie
{
case 1: // contador 1 sera el primer dato
a = serial.read(); // lee ese dato y lo asigna a
break;
case 2: // contador 2 sera el segundo dato
b = serial.read(); // lee ese dato y lo asigna b (es una ',')
break;
case 3: // contador 3 sera el tercer dato
c = serial.read(); // lee ese dato y lo asigna c
break;
case 4: // contador 2 sera el segundo dato
d = serial.read(); // lee ese dato y lo asigna d (es una ',')
break;
case 5: // contador 2 sera el segundo dato
e1 = serial.read(); // lee ese dato y lo asigna e1 (bit analogico 2)
break;
case 6: // contador 2 sera el segundo dato
e2 = serial.read(); // lee ese dato y lo asigna e2 (bit analogico 1)
break;
case 7: // contador 2 sera el segundo dato
e3 = serial.read(); // lee ese dato y lo asigna e3 (bit analogico 0)
break;
}
if (a == '1') // analiza si es 1
{
digitalwrite(ledpin7, high); // activa el led salida 7
}
else digitalwrite(ledpin7, low); // en caso contrario lo desactiva
serial.print (char(a)); // saca por pantalla el valor de en ascii
serial.print (char(b)); // saca por pantalla ","
if (c == '1') // analiza si c es 1
{
digitalwrite(ledpin12, high); // activa el led salida 12
}
else digitalwrite(ledpin12, low); // en caso contrario lo desactiva
serial.print (char(c)); // saca por pantalla el valor de c en ascii
serial.print (char(d)); // saca por pantalla ","
serial.print (char(e1)); // saca por pantalla bit 2 analogico
serial.print (char(e2)); // saca por pantalla bit 1 analogico
serial.print (char(e3)); // saca por pantalla bit 0 analogico
valorservo = char(e1)+char(e2)+char(e3);
myservo.write(valorservo);
}
else // en caso contrario salto de linea y comienza la cuenta
{
serial.println(""); // salta la siguiente linea en pantalla
count = 0; // pone el contador 0
}
}
}
:)

ey, no hay nadie que me oriente con el tema que expongo en el post anterior ????

gracias y saludos compañeros.



Arduino Forum > International > Español (Moderators: surbyte, Hector_A) > Señales analogicas y digitales de Tx XBee a Rx XBee, tipo array.


arduino

Comments

Popular posts from this blog

Convierte tu Raspberry en un NAS. Firmware fvdw-sl 15.3 - Raspberry Pi Forums

How to format a Get Request

avrdude: verification error, first mismatch at byte 0x0000 0x0c != 0x62