Ayuda con comunicación serial

Buenas, es mi primer pedido en el foro y de antemano gracias.

Resulta que soy muy nuevo con la Arduino (poseo una Duemilanove) y he estado intentando escribir un código (insatisfactoriamente) que me permita, por ejemplo, que al escribir en el puerto serial "bath" se ponga el pin 13 en HIGH, y si pongo "kitchen" se ponga en HIGH el pin 12, independientemente del estado del pin 13. He estado trasteando mucho con if y con el Serial.read(); pero nada me funciona :drooling_face: y la verdad es un proyecto urgente, muchas gracias por su tiempo. EDIT Este es el código que tengo por el momento, cuando presiono la R mayúscla enciende, y con r minúscula apaga, lo que quiero es que funciones con una cadena de caracteres, como especfifico arriba

/* Formato: if (infoSerial == 'x') { digitalWrite(pinX, HIGH); Serial.print("\n"); Serial.print("Encendiendo luz del cuarto x"); }

if (infoSerial == 'b') { digitalWrite(pinX, LOW); Serial.print("\n"); Serial.print("Apagando luz del cuarto x"); } */ // if (Serial.available() > 0) //Mira si hay datos en el puerto serial (opcional) const int restRoom = 13; // LED baño const int kitchen = 12; //LED cocina const int livingRoom = 11; //LED salón int infoSerial; // variable con información serial void setup() { ** Serial.begin(9600);** ** pinMode(restRoom, OUTPUT);** ** pinMode(kitchen, OUTPUT);** ** pinMode(livingRoom, OUTPUT);** } void loop() { ** {** ** // lee la información del puerto serial** ** infoSerial = Serial.read();** ** // sección totales --------------------------------------------** ** // si hay una X enciende todas las luces** ** if (infoSerial == 'X') {** ** digitalWrite(restRoom, HIGH);** ** digitalWrite(kitchen, HIGH);** ** digitalWrite(livingRoom, HIGH);** __ /AÑADIR TODAS LAS LUCES **********************************************__ __ */__ * Serial.print("\n"); ** Serial.print("Encendiendo todas las luces");** ** }** ** // si hay una x apaga todas las luces** ** if (infoSerial == 'x') {** ** digitalWrite(restRoom, LOW);** ** digitalWrite(kitchen, LOW);** ** digitalWrite(livingRoom, LOW);** __ /AÑADIR TODAS LAS LUCES **********************************************__ __ */__ * Serial.print("\n"); ** Serial.print("Apagando todas las luces");** ** }** ** // sección restRoom (baño) --------------------------------------------** ** // si hay una B enciende el pin restRoom** ** if (infoSerial == 'R') {** ** digitalWrite(restRoom, HIGH);** ** Serial.print("\n");** ** Serial.print("Encendiendo luz del cuarto de aseo");** ** }** ** // si hay una b apaga el pin restRoom** ** if (infoSerial == 'r') {** ** digitalWrite(restRoom, LOW);** ** Serial.print("\n");** ** Serial.print("Apagando luz del cuarto de aseo");** ** }** ** //sección kitchen (cocina) --------------------------------------------** ** if (infoSerial == 'K') {** ** digitalWrite(kitchen, HIGH);** ** Serial.print("\n");** ** Serial.print("Encendiendo luz de la cocina");** ** }** ** if (infoSerial == 'k') {** ** digitalWrite(kitchen, LOW);** ** Serial.print("\n");** ** Serial.print("Apagando luz de la cocina");** ** }** ** //sección livingRoom (salón) --------------------------------------------** ** if (infoSerial == 'L') {** ** digitalWrite(livingRoom, HIGH);** ** Serial.print("\n");** ** Serial.print("Encendiendo luz de la sala");** ** }** ** if (infoSerial == 'l') {** ** digitalWrite(livingRoom, LOW);** ** Serial.print("\n");** ** Serial.print("Apagando luz de la sala");** ** }** ** }** }

y una útlima pregunta: ¿que tan importante es colocar if (Serial.available() > 0) cuando se utiliza comunicación serial?

pon tu código. mira mi firma

Que tal piggip;

Ya viste esto???

http://www.arduino.cc/en/Tutorial/PhysicalPixel