Go Down

Topic: ERRO: invalid types 'char[int]' for array subscript (Read 1 time) previous topic - next topic

picmirc

Boa noite,

Estou a tentar fazer um sistema para acender luzes atraves de uma pagina web, no entanto estou com problemas no codigo do arduino.
O meu objectivo é o PHP enviar um array com 5 numeros (5 leds), em que 1 representa ligado, 0 representa desligado.

Ou seja, PHP envia 00001, o que significa que apenas o 5º led está ligado.

Experimentei fazer o codigo arduino, no entanto aparece-me um erro "invalid types 'char[int]' for array subscript" na linha "if(caracter[counter] == 1)".

Alguem me pode ajudar, pf?


Code: [Select]
int ledPin13 =  13;
int ledPin11 =  11;
int ledPin9  =  9;
int ledPin7  =  7;
int ledPin5  =  5;
int counter  =  0;
char estado  =  'LOW';

void setup()   {

  Serial.begin(9600);

  pinMode(ledPin13, OUTPUT);
  pinMode(ledPin11, OUTPUT);
  pinMode(ledPin9, OUTPUT);
  pinMode(ledPin7, OUTPUT);
  pinMode(ledPin5, OUTPUT);

}

void loop()
{
  char caracter;
  caracter = Serial.read();

  while(counter < 5, counter++){
   
    if(caracter[counter] == 1)
    (
      estado = 'HIGH';
    ) else (
      estado = 'LOW';
    )
    digitalwrite(caracter[counter], estado)
   
  )
  }



neuron_upheaval

Faz assim:

Code: [Select]

#define LEDPIN13 13
#define LEDPIN11 11
#define LEDPIN9  9
#define LEDPIN7  7
#define LEDPIN5  5

void setup() {
    Serial.begin( 9600 );
    pinMode( LEDPIN13, OUTPUT );
    pinMode( LEDPIN11, OUTPUT );
    pinMode( LEDPIN9,  OUTPUT );
    pinMode( LEDPIN7,  OUTPUT );
    pinMode( LEDPIN5,  OUTPUT );
}

void loop() {
    int buffer[ 5 ];
    int pinos[ 5 ] = { LEDPIN13, LEDPIN11, LEDPIN9, LEDPIN7, LEDPIN5 };
    int indice = 0;

    if ( Serial.available() > 0 ) {
        int input = Serial.read();
        if ( input != '0' && input != '1' ) {
            indice = 0;
        } else {
            buffer[ indice++ ] = input;
        }
    }

    if ( indice == 5 ) {
        for ( int i = 0; i < 5; i++ ) {
            if ( buffer[ i ] == '0' ) {
                digitalWrite( pinos[ i ], LOW );
            } else {
                digitalWrite( pinos[ i ], HIGH );
            }
        }
        indice = 0;
    }
}

johnwasser

Code: [Select]

int ledPin13 =  13;
int ledPin11 =  11;
int ledPin9  =  9;
int ledPin7  =  7;
int ledPin5  =  5;
int counter  =  0;
char estado  =  LOW;

void setup()   {

  Serial.begin(9600);

  pinMode(ledPin13, OUTPUT);
  pinMode(ledPin11, OUTPUT);
  pinMode(ledPin9, OUTPUT);
  pinMode(ledPin7, OUTPUT);
  pinMode(ledPin5, OUTPUT);

}

void loop()
{
  char caracter;
  caracter = Serial.read();
   
    if(caracter == 1)
    (
      estado = HIGH;
    ) else (
      estado = LOW;
    )
    digitalwrite(caracter[counter], estado)
  }
Send Bitcoin tips to: 1L3CTDoTgrXNA5WyF77uWqt4gUdye9mezN
Send Litecoin tips to : LVtpaq6JgJAZwvnVq3ftVeHafWkcpmuR1e

neuron_upheaval

John, there's a flaw in your sketch

The array caracter was not declared

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy