Programar luces secuenciales dentro de programa

Buena tarde quisiera saber si me pueden ayudar, estoy realizando un programa en vb que controla diferentes luces, el problema es que estoy intentando crear una secuencia, es decir que al enviar un caracter determinado ("Z") por el puerto serial. se active una secuencia de luces, y que al enviar otro caracter ("z") se desactive.

el codigo que estoy utilizando es este

int value = 0;

// Saidas PWM
int PWM9 = 0;
int PWM10 = 0;
int PWM11 = 0;

// Saidas Digitais

int Saida8=8;
int Saida7=7;
int Saida6=6;
int Saida5=5;
int Saida4=4;
int Saida3=3;
int Saida2=2;
int Saida1=1;

void setup() {

Serial.begin(9600); // TT 9600 BAUDIOS

// Define LAS SALIDAS

pinMode(Saida1,OUTPUT);
pinMode(Saida2,OUTPUT);
pinMode(Saida3,OUTPUT);
pinMode(Saida4,OUTPUT);
pinMode(Saida5,OUTPUT);
pinMode(Saida6,OUTPUT);
pinMode(Saida7,OUTPUT);
pinMode(Saida8,OUTPUT);

}

void loop() {

char caracter;
caracter = Serial.read(); // Define "Serial.read()" igual a "caracter"

// Condiciones para el funcionamiento de las salidas digitales

// Para a "Saida2 LUCES EMERGENCIA"
// Para a "ESTA ES LA PARTE CON LA QUE TENGO PROBLEMAS ESPERO PUEDAN AYUDARME"[/i]

  • if(caracter == 'Z'){ // Se o Caracter enviado pelo Software Controle Total Arduino 2.0 - BASIC for "D", liga a Saida4*

digitalWrite(Saida2,HIGH);
delay (200);
digitalWrite(Saida2,LOW);
digitalWrite(Saida5,HIGH);
delay (200);
digitalWrite(Saida5,LOW);
digitalWrite(Saida7,HIGH);
delay (200);
digitalWrite(Saida7,LOW);
delay (200);

}

  • else*
  • if(caracter == 'z'){ // Se o Caracter enviado pelo Software Controle Total Arduino 2.0 - BASIC for "d", desliga a Saida4*
    digitalWrite(Saida2,LOW);
    }
    [/color]

// Para a "Saida3" HUMO BAÑO

  • if(caracter == 'Y'){ // Se o Caracter enviado pelo Software Controle Total Arduino 2.0 - BASIC for "D", liga a Saida4*
    digitalWrite(Saida3,HIGH);
    }
  • else*
  • if(caracter == 'y'){ // Se o Caracter enviado pelo Software Controle Total Arduino 2.0 - BASIC for "d", desliga a Saida4*
    digitalWrite(Saida3,LOW);
    }

// Para a "Saida4"

  • if(caracter == 'X'){ // Se o Caracter enviado pelo Software Controle Total Arduino 2.0 - BASIC for "D", liga a Saida4*
    digitalWrite(Saida4,HIGH);
    }
  • else*
  • if(caracter == 'x'){ // Se o Caracter enviado pelo Software Controle Total Arduino 2.0 - BASIC for "d", desliga a Saida4*
    digitalWrite(Saida4,LOW);
    }
    // Para a "Saida5" secuencia piso
  • if(caracter == 'W'){ // Se o Caracter enviado pelo Software Controle Total Arduino 2.0 - BASIC for "E", liga a Saida5*
    digitalWrite(Saida5,HIGH);

}

  • else*
  • if(caracter == 'w'){ // Se o Caracter enviado pelo Software Controle Total Arduino 2.0 - BASIC for "e", desliga a Saida5*
    digitalWrite(Saida5,LOW);
    }
    // Para a "Saida6 camara de humo"
  • if(caracter == 'J'){ // Se o Caracter enviado pelo Software Controle Total Arduino 2.0 - BASIC for "F", liga a Saida6*
    digitalWrite(Saida6,HIGH);
    }
  • else*
  • if(caracter == 'j'){ // Se o Caracter enviado pelo Software Controle Total Arduino 2.0 - BASIC for "f", desliga a Saida6*
    digitalWrite(Saida6,LOW);
    }

// Para a "Saida7"

  • if(caracter == 'E'){ // Se o Caracter enviado pelo Software Controle Total Arduino 2.0 - BASIC for "D", liga a Saida4*
    digitalWrite(Saida7,HIGH);
    }
  • else*
  • if(caracter == 'e'){ // Se o Caracter enviado pelo Software Controle Total Arduino 2.0 - BASIC for "d", desliga a Saida4*
    digitalWrite(Saida7,LOW);
    }
    // Para a "Saida8 mascaras"
  • if(caracter == 'Q'){ // Se o Caracter enviado pelo Software Controle Total Arduino 2.0 - BASIC for "D", liga a Saida4*
    digitalWrite(Saida8,HIGH);
    }
  • else*
  • if(caracter == 'q'){ // Se o Caracter enviado pelo Software Controle Total Arduino 2.0 - BASIC for "d", desliga a Saida4*
    digitalWrite(Saida8,LOW);
    }

// SALIDAS PWM

// Para "PWM9"
if(caracter == 'C') //

  • { *
  • PWM9 = 255; *
  • }*
  • else*
    {
    if(caracter == 'c')
    {
  • PWM9 = 70;*
    }
  • else*
    {
    if(caracter == 'd')
    {
  • PWM9 = 0;*
  • }*
  • else*
  • {*
  • }*
  • }*
    }
  • analogWrite(9,PWM9); // DEFINE PIN 9=PWM1*

// Para "PWM10"
if(caracter == 'A') // SI EL CARACTER ENVIADO POR FAP

  • { *
  • PWM10 = 255; *
  • }*
  • else*
    {
    if(caracter == 'a')
    {
  • PWM10 = 70;*
    }
  • else*
    {
    if(caracter == 'b')
    {
  • PWM10 = 0;*
  • }*
  • else*
  • {*
  • }*
  • }*
    }
  • analogWrite(10,PWM10); // DEFINE PIN SALIDA 10=PWM2*

// Para "PWM3"
if(caracter == 'E') // SI EL CARACTER ENVIADO POR FAP

  • { *

  • PWM11 = 255; *

  • }*

  • else*
    {
    if(caracter == 'e')
    {

  • PWM11 = 70;*
    }

  • else*
    {
    if(caracter == 'f')
    {

  • PWM11 = 0;*

  • }*

  • else*

  • {*

  • }*

  • }*
    }

  • analogWrite(11,PWM11); // DEFINE PIN SALIDA 10=PWM2*

  • delay(100); // Tempo de 100ms*
    *} *

Primero: lee las reglas del foro y postea el código entre etiquetas generadas con el botón </>

Segundo: posteo doble no está permitido.

Tercero: postear algo sin apegarse a las reglas, hace más fácil perder la atención de nosotros los foreros.

Cuarto: el problema de lectura puede deberse a qué no sabes cómo funciona la comunicación serial por el lado del Arduino. Digo... esto está mal:

char caracter;
caracter = Serial.read();

Así es como debería de ser:

char caracter;
if (Serial.available()) {
  caracter = Serial.read();
  }

Esto resuelve tu problema?