Hola compañeros.
Después de mil vueltas que le he dado a mi código de lectura por puerto serie a través de los fabulosos modulos Xbees, ahora tengo una duda, cuando abro mi monitor del puerto serie en el shelch de receptor para visualizar lo que he enviado desde mi emisor, YEAh!!! ahí están mis datos ordenaditos, fabuloso NO?
Pues bien, me aparece una linea algo así $0, 0, 0 , 0 los dos primeros ceros son datos analógicos los dos segundos son digitales, evidentemente no estoy actuando sobre ningún potenciometro o pulsador del emisor.
Osea que si actúo sobre mis potenciometros y pulsadores en mi emisor me apareceria algo así;
$255, 184, 1, 1
Es decir en el primer valor (255) estoy actuando hasta fondo sobre el potenciometro que tengo en el arduino emisor.
En el segundo valor (184) estoy actuando no tan hasta el fondo.
En el tercer valor (1) simplemente estoy actuando sobre el pulsador correspondiente al igual que en el cuarto valor.
La velocidad de refresco a tiempo casi real y digo casi por que siempre viene con un poco retardo pero inapreciable para nuestras neuronas.
AHORA es cuando pido ayuda:
¿COMO PUEDO LEER LOS DOS PRIMEROS VALORES PARA QUE ACTUEN SOBRE DOS SERVOS Y LOS SEGUNDOS VALORES PARA QUE ACTUEN ON/OFF EN LEDS???????
Ya se que puede parecer lo mas fácil pero me estoy volviendo loco al tratarse de un array no se extraer esos valores.
Saludos y Gracias.
Aqui os dejo mi codigo.-
#include <Servo.h>
Servo servo1;
Servo servo2;
int pin_motor = 13;
int pin_rec = 2;
char array1[4] = { '0', '0', '0', '0'};
void setup()
{
Serial.begin(19200);
pinMode(pin_motor, OUTPUT);
pinMode(pin_rec, OUTPUT);
servo1.attach(9);
servo2.attach(10);
}
void loop() {
if (Serial.available() >= 4){
for ( int i = 0; i < 4; i++)
array1 = Serial.read();
-
}*
-
{*
-
Serial.print(array1[0]);*
-
Serial.print(array1[1]);*
-
Serial.print(array1[2]);*
-
Serial.print(array1[3]);*
-
Serial.flush();*
delay (40);
}
}[/color][/size]