Tengo un problema, y haber si me lo podeis solucionar, estoy con un proyecto simple, en el que me base, en este ejercicio que me baje:
/*
--------------------------------------
Escritura serial
--------------------------------------
Consiste en escribir por la pantalla del computador (consola serial)
una letra predeterminada, la primera vez que se escriba está
un LED se enciende, si se vuelve a escribir por segunda vez
el LED se apaga.
Cosas de Mecatrónica y Tienda de Robótica
*/
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
//--------------------------------------------------
int led = 13; //Pin donde se encuentra el LED, salida
char leer; //Variable donde se almacena la letra
boolean prendido=false; //Estado LED la primera vez, apagado
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600); //Inicia comunicación serial
pinMode(led, OUTPUT); //Configurar el LED como una salida
}
//------------------------------------
//Funcion ciclicla
//------------------------------------
void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
//Guardar en una variable el valor de la consola serial
leer=Serial.read();
// Si es la letra 'a' y además el LED está apagado
if ( (leer=='a') && (prendido==false) )
{
digitalWrite(led,HIGH); // Enciende el LED
prendido=true; // Actualiza el estado del LED
}
// Si es la letra 'a' y además el LED está encendido
else if ( (leer=='a') && (prendido==true) )
{
digitalWrite(led,LOW); // Apaga el LED
prendido=false; // Actualiza el estado del LED
}
}
//Fin programa
quise hacer lo mismo, solo que con 5 leds de colores diferentes

y el sketch es este:
int ledrojo = 2;
int ledamarillo = 3;
int ledverde = 4;
int ledazul = 5;
int ledblanco = 6;
char leerojo;
char leeramarillo;
char leerverde;
char leerazul;
char leerblanco;
boolean rojo=false;
boolean amarillo=false;
boolean verde=false;
boolean azul=false;
boolean blanco=false;
void setup() {
Serial.begin(9600);
pinMode(ledrojo, OUTPUT);
pinMode(ledamarillo, OUTPUT);
pinMode(ledverde, OUTPUT);
pinMode(ledazul, OUTPUT);
pinMode(ledblanco, OUTPUT);
}
void loop(){
leerojo=Serial.read();
// Si es la letra 'a' y además el LED está apagado
if ( (leerojo=='r') && (rojo==false) )
digitalWrite(ledrojo,HIGH); // Enciende el LED
rojo=true; // Actualiza el estado del LED
// Si es la letra 'a' y además el LED está encendido
else if ( (leerojo=='r') && (rojo==true) )
digitalWrite(ledrojo,LOW); // Apaga el LED
rojo=false;
leeramarillo=Serial.read();
// Si es la letra 'a' y además el LED está apagado
if ( (leeramarillo=='a') && (amarillo==false) )
digitalWrite(ledamarillo,HIGH); // Enciende el LED
amarillo=true; // Actualiza el estado del LED
// Si es la letra 'a' y además el LED está encendido
else if ( (leeramarillo=='a') && (amarillo==true) )
digitalWrite(ledamarillo,LOW); // Apaga el LED
amarillo=false;
leerverde=Serial.read();
// Si es la letra 'a' y además el LED está apagado
if ( (leerverde=='v') && (verde==false) )
digitalWrite(ledverde,HIGH); // Enciende el LED
verde=true; // Actualiza el estado del LED
// Si es la letra 'a' y además el LED está encendido
else if ( (leerverde=='v') && (verde==true) )
digitalWrite(ledverde,LOW); // Apaga el LED
verde=false;
leerazul=Serial.read();
// Si es la letra 'a' y además el LED está apagado
if ( (leerazul=='z') && (azul==false) )
digitalWrite(ledazul,HIGH); // Enciende el LED
azul=true; // Actualiza el estado del LED
// Si es la letra 'a' y además el LED está encendido
else if ( (leerazul=='v') && (azul==true) )
digitalWrite(ledazul,LOW); // Apaga el LED
azul=false;
leerblanco=Serial.read();
// Si es la letra 'a' y además el LED está apagado
if ( (leerblanco=='v') && (blanco==false) )
digitalWrite(ledblanco,HIGH); // Enciende el LED
blanco=true; // Actualiza el estado del LED
// Si es la letra 'a' y además el LED está encendido
else if ( (leerblanco=='v') && (blanco==true) )
digitalWrite(ledblanco,LOW); // Apaga el LED
blanco=false;
}
me sale un error en los if y en los else que dice asi:
Arduino: 1.5.6-r2 (Windows 8), Placa:"Arduino Uno"
sketch_sep20.ino: In function 'void loop()':
sketch_sep20.ino:36: error: 'else' without a previous 'if'
sketch_sep20.ino:49: error: 'else' without a previous 'if'
sketch_sep20.ino:62: error: 'else' without a previous 'if'
sketch_sep20.ino:75: error: 'else' without a previous 'if'
sketch_sep20.ino:88: error: 'else' without a previous 'if'
Gracias por vuestro Tiempo