SOLUCIONADO error: expected constructor, destructor, or type conversion...'

Buenas noches. Ya ando loco de nuevo. Estoy intentando hacer un trabajo pero, sobre, todo, entender que significa cada paso. He localizado una web que ha puesto los códigos de algo parecido a lo que quiero hacer, en imágenes, por lo que he hecho a mano toda la programación. Está perfectamente explicado cada paso, con lo que entiendo bastante más del funcionamiento. Pero al pasarle el verificador de Arduino, sale un error que no sé por dónde cogerlo (adjunto imagen). Me dice:

LED_RGB_2:11: error: expected constructor, destructor, or type conversion before 'void'

Entiendo que LED_RGB_2 es el título del fichero y 11 es la línea donde está el error, pero no soy capaz de dar con él. He estado mirando por internet, pero no lo encuentro.

El tema es que no me deja pasar a corregir otros errores algunos del mismo código de error, por lo que me encuentro inmovilizado.

¿Alguien tiene idea de por dónde anda el problema? Agradecería ayuda...

Gracias por la ayuda

Saludos

Lokko:
Buenas noches. Ya ando loco de nuevo. Estoy intentando hacer un trabajo pero, sobre, todo, entender que significa cada paso. He localizado una web que ha puesto los códigos de algo parecido a lo que quiero hacer, en imágenes, por lo que he hecho a mano toda la programación. Está perfectamente explicado cada paso, con lo que entiendo bastante más del funcionamiento. Pero al pasarle el verificador de Arduino, sale un error que no sé por dónde cogerlo (adjunto imagen). Me dice:

LED_RGB_2:11: error: expected constructor, destructor, or type conversion before 'void'

Entiendo que LED_RGB_2 es el título del fichero y 11 es la línea donde está el error, pero no soy capaz de dar con él. He estado mirando por internet, pero no lo encuentro.

El tema es que no me deja pasar a corregir otros errores algunos del mismo código de error, por lo que me encuentro inmovilizado.

¿Alguien tiene idea de por dónde anda el problema? Agradecería ayuda...

Gracias por la ayuda

Saludos

pon el codigo completo ,usando los tags adecuados(si no sabes como,lee las normas del foro) ya que LED_RGB_2 no sale la foto.lo que si que veo es que has puesto en el setup pinMode(blue_PIN,OUTPUT);
cuando en la declaracion has puesto int BLUE_PIN=11; el nombre de la variable es diferente.

amigo jose LED_RGB_2 es el nombre del skech, pero es verdad que sera mejor que pongas el código completo

Sí, LED_RGB_2 es el nombre del skech, y tienes razón, jose, había un error en minúsculas. Gracias.

Paso el código completo:

/Encendre un led GRB seqüencial amb encesa i apagada suaus.
http://elrincondelarduino.blogspot.com.es/
Febrer 2015
/

//Definició de variables (quins pins governen els colors)

int RED_PIN=9; //Pin 9 connectat pel color vermell
int GREEN_PIN=10; //Pin 10 connectat pel color verd
int BLUE_PIN=11; //Pin 11 connectat pel color blau

/Aquesta variable controla la rapidesa del bucle a través
dels colors (modificant els valors es fa és ràpid o més
lent l'esvaiment
/

int DISPLAY_TIME=100; //En milisegons

void setup() //S'executa un sol cop en connectar l'Arduino

{ //Obre diàleg

/Configuració dels pins d'Arduino que utilitzem per conduir
el led a ser sortides
/

pinMode (RED_PIN, OUTPUT); //Led vermell com a sortida
pinMode (GREEN_PIN, OUTPUT); //Led verd com a sortida
pinMode (BLUE_PIN, OUTPUT); //Led blau com a sortida

} //Tanca diàleg

void loop() //Mentre estigui conectada l'Arduino, s'executa la funció

{ //Obre diàleg

/*En aquest treball escriurem les funcions, de manera que es pugui
seguir dividint el treball en seccions i no tenir-ho
tot a Setup() o loop()

Dues formes de d'executar el led RGB.

La primera és convertir els leds individuals (vermell, verd i blau),
encesa i apagada en diverses combinacions. Això completa un total
de 8 colors (si comptem el negre com a color).

Ecrivim una funció anomenada mainColors(), que passa a través dels
vuit colors.*/

mainColors(); //Activa els leds individualment

/Si es volen activar més de vuit colors, es pot fer mitjançant
la variació de lluminostat dels leds. La funció analogWrite()
ens ho permet. Aquesta funcuó permet atenuar un led des del tot
apagat al tot brillant, en més de 255 passes
/

showSpectrum();

} //Tanca diàleg

//Donem valors a la primera de les funcions (mainColors())

mainColors void()

{ //Obre diàleg

//Off (tots els leds apagats)
digitalWrite (RED_PIN, LOW);
digitalWrite (GREEN_PIN, LOW);
digitalWrite (BLUE_PIN, LOW);

retardo (1000); //Es maté encès 1000ms (1')

//Vermell (solament el vermell encès)
digitalWrite (RED_PIN, HIGH); //Vermell encès
digitalWrite (GREE_PIN, LOW); //Verd apagat
digitalWrite (BLUE_PIN, LOW); //Blau apagat

retardo (1000); //Es manté encès 1000ms (1')
//Verd (solament verd encès)
digitalWrite (RED_PIN, LOW); //Vermell apagat
digitalWrite (GREEN_PIN, HIGH); //Verd encès
digitalWrite (BLUE_PIN, LOW); //Blau apagat

retardo (1000); //Es manté encès 1000ms (1')

//Blau (solament Blau encès)
digitalWrite (RED_PIN LOW); //Vermell pagat
digitalWrite (GREEN_PIN, LOW); //Verd apagat
digitalWrite (BLUE_PIN, HIGH); //Blau encès

retardo (1000); //Es manté encès 1000ms (1')

//Groc (vermell i verd encesos)
digitalWrite (RED_PIN, HIGH); //Vermell encès
digitalWrite (GREEN_PIN, HIGH); //Verd encès
digitalWrite (BLUE_PIN, LOW); //Blau apagat

retardo (1000);

//Cian (verd i blau encesos
digitalWrite (RED_PIN, LOW); //Vermell apagat
digitalWrite (GREEN_PIN, HIGH); //Verd encès
digitalWrite (BLUE_PIN, HIGH); //Blau encès

retardo (1000) //Es manté encès 1000ms (1')

//Porpra (vermell i blau encesos)
digitalWrite (RED_PIN, HIGH); //Vermell encès
digitalWrite (GREEN_PIN, LOW); //Verd apagat
digitalWrite (BLUE_PIN, HIGH); //Blau encès

retardo (1000); //Es manté encès 1000ms (1')

//Blanc (tot els leds encesos)
digitalWrite (RED_PIN, HIGH); //Vermell encès
digitalWrite (GREEN_PIN, HIGH); //Verd encès
digitalWrite (BLUE_PIN, HIGH); //Blau encès

retardo (1000); //Es mantè encès 1000ms (1')

} //Tanca diàleg

/Fins ací el control dels colors segons la funció mainColors
en la què s'activen els leds individualment
/

//Ara es veuen dues funcions més: ShowSpectrum() i Showrgb()
/Showrgb() mostra un sol color al led RGB. S'anomena showrgb(),
amb el número del color que es vulgi mostrar.
/

/ShowSpectrum() crida a showrgb()un cop i un altre, per fer
l'arc Iris. Aquesta funció passa per tots els colors del led RGB.
Això ho fa mitjançant la intensificació d'una variable que va
de 0-768 (el total de nombre de colors), i de vàries ocasions,
cridant a showrgb(), per mostrar els colors individuals
/

/En aquesta funció s'utilitza un "bucle for()" que permet el pas
d'una variable a partir d'un valor a un altre, i realitzar tot
un seguit d'instruccions per a cada pas. El bucle for() és una
forma molt útil per aconseguir els números per comptar cap a munt
o cap avall
/

/*Cada bucle for() té tres sentències esparades per ";"
1.- Alguna cosa per fer abans de començar.
2.- Una prova per fer; sempre i quan sigui veritat
que es mantidrà el bucle.
3.- Alguna cosa a fer després de cada bucle (normalment augmentar
una variable.

Per al bucle for() a continuació, aquests són els tres estats:
1.- x=0; abans de començar, fer x=0.
2.- x<768; mentre que x és menor que 768, executar el següent còdi.
3.- x++Putting "++" després d'un medi de variables "suma +1". (També
es pot utilitzar "X=x+1")*/

anular showSpectrum()

{ //Obre diàleg

int x; //Definir una variable sencera anomenada "x"

//Ara utilitzarem un bucle for() per fer recompte X 0-767

para (x=0; x<768;x++)

//Per a cada bucle (amb un nou valor d'x), fer el següent:

{ //Obre diàleg

showrgb (x); //Cridar a RGBspectrum() amb el nou x
retardo (10); //Retard e 10ms (1/100th de segon)

} //Tanca diàleg

} //Tanca diàleg

/Showrgb(): Aquesta funció tradueix un número entre 0 i 767,
en un color específic al led RGB. Si es té en compte aquest
número a través de tot el rang (0-767), el led canviarà de
colors sense problemes a través de tot l'espectre.
/

/*Els números de "base" són:
0= vermell pur
255= verd pur
511= blau pur
767= vermell pur (novament)

Els números entre els colors anteriors crearan barreges.*/

showrgb void (int color)

{ //Obre diàleg

int redIntensity;
int greenIntensity;
int blueIntensity;

/Ací utilitzarem un "if / else" declaració per determinar
quin dels tres colors (R,G,B) cauen a x.
/

/En cada una d'aquestes zones calcurarem la brilantor per a
cada un dels leds de color vermell, verd i blau en el led RGB.
/

si (color <=255) //Zona 1

{ //Obre diàleg

redIntensity=255-color; //Vermell passa de ON a OFF
greenIntensity=color; //Verd passa de OFF a ON
blueIntensity=0; //Blau sempre apagat

} //Tanca diàleg

else if (color de <=511) //Zona 2

{ //Obre diàleg

redIntensity=0; //Vermell sempre apagat
greenIntensity=255-(color-256); //Verd passa d'encès a apagat
blueIntensity=(color-256); //Blau passa d'apagat a encès

} //Tanca diàleg

else //Color>=512 //Zona 3

{ //Obre diàleg

redIntensity=(color-512); //Vermell passa d'apagat a encès
greenIntensity=0; //Verd sempre apagat
blueIntensity=255- (color-512); //Blau passa d'encès a apagat

} //Tanca diàleg

/* Ara que s'han establert els valors de brillantor, es procedeix
a acomodar el led a aquests valors*/

analogWrite (RED_PIN, redIntensity);
analogWrite (BLUE_PIN, blueIntensity);
analogWrite (GREEN_PIN, greenIntensity);

} //Tanca diàleg

//Fi del programa

Hay mucho texto añadido, porque me permite saber cada paso y para que sirve.

gracias por la ayuda.

saludos

te funciona entonces?

No, sigue dando el mismo error en el mismo sitio...

Hay varios comandos cambiados,por ejemplo retardo donde deberia poner delay,si por if ,etc y un monton de fallos no se de donde lo has copiado....,prueba este que te pongo corregido que a mi me compila bien por lo que no tiene fallos de codigo pero no se que hara...,

/*Encendre un led GRB seqüencial amb encesa i apagada suaus.
http://elrincondelarduino.blogspot.com.es/
Febrer 2015*/

  //Definició de variables (quins pins governen els colors)

int RED_PIN=9;    //Pin 9 connectat pel color vermell
int GREEN_PIN=10; //Pin 10 connectat pel color verd
int BLUE_PIN=11;  //Pin 11 connectat pel color blau

  /*Aquesta variable controla la rapidesa del bucle a través
  dels colors (modificant els valors es fa és ràpid o més
  lent l'esvaiment*/
 
int DISPLAY_TIME=100;  //En milisegons

void setup()  //S'executa un sol cop en connectar l'Arduino

{  //Obre diàleg

  /*Configuració dels pins d'Arduino que utilitzem per conduir
  el led a ser sortides*/
 
pinMode (RED_PIN, OUTPUT);   //Led vermell com a sortida
pinMode (GREEN_PIN, OUTPUT); //Led verd com a sortida
pinMode (BLUE_PIN, OUTPUT);  //Led blau com a sortida

}  //Tanca diàleg

void loop()  //Mentre estigui conectada l'Arduino, s'executa la funció

{  //Obre diàleg
 
  /*En aquest treball escriurem les funcions, de manera que es pugui
  seguir dividint el treball en seccions i no tenir-ho
  tot a Setup() o loop()
 
  Dues formes de d'executar el led RGB.
 
  La primera és convertir els leds individuals (vermell, verd i blau),
  encesa i apagada en diverses combinacions. Això completa un total
  de 8 colors (si comptem el negre com a color).
 
  Ecrivim una funció anomenada mainColors(), que passa a través dels
  vuit colors.*/
 
mainColors();  //Activa els leds individualment
 
  /*Si es volen activar més de vuit colors, es pot fer mitjançant
  la variació de lluminostat dels leds. La funció analogWrite()
  ens ho permet. Aquesta funcuó permet atenuar un led des del tot
  apagat al tot brillant, en més de 255 passes*/
 
showSpectrum();

}  //Tanca diàleg

  //Donem valors a la primera de les funcions (mainColors())
 
void mainColors()

{  //Obre diàleg
 
  //Off (tots els leds apagats)
digitalWrite (RED_PIN, LOW);
digitalWrite (GREEN_PIN, LOW);
digitalWrite (BLUE_PIN, LOW);

delay (1000);  //Es maté encès 1000ms (1')

  //Vermell (solament el vermell encès)
digitalWrite (RED_PIN, HIGH);  //Vermell encès
digitalWrite (GREEN_PIN, LOW);  //Verd apagat
digitalWrite (BLUE_PIN, LOW);  //Blau apagat

delay (1000); //Es manté encès 1000ms (1')
  //Verd (solament verd encès)
digitalWrite (RED_PIN, LOW);    //Vermell apagat
digitalWrite (GREEN_PIN, HIGH); //Verd encès
digitalWrite (BLUE_PIN, LOW);   //Blau apagat

delay (1000);  //Es manté encès 1000ms (1')

  //Blau (solament Blau encès)
digitalWrite (RED_PIN ,LOW);    //Vermell pagat
digitalWrite (GREEN_PIN, LOW); //Verd apagat
digitalWrite (BLUE_PIN, HIGH); //Blau encès

delay (1000);  //Es manté encès 1000ms (1')

  //Groc (vermell i verd encesos)
digitalWrite (RED_PIN, HIGH);   //Vermell encès
digitalWrite (GREEN_PIN, HIGH); //Verd encès
digitalWrite (BLUE_PIN, LOW);   //Blau apagat

delay (1000);

  //Cian (verd i blau encesos
digitalWrite (RED_PIN, LOW);    //Vermell apagat
digitalWrite (GREEN_PIN, HIGH); //Verd encès
digitalWrite (BLUE_PIN, HIGH);  //Blau encès

delay (1000);  //Es manté encès 1000ms (1')

  //Porpra (vermell i blau encesos)
digitalWrite (RED_PIN, HIGH);   //Vermell encès
digitalWrite (GREEN_PIN, LOW);  //Verd apagat
digitalWrite (BLUE_PIN, HIGH);  //Blau encès

delay (1000); //Es manté encès 1000ms (1')

  //Blanc (tot els leds encesos)
digitalWrite (RED_PIN, HIGH);   //Vermell encès
digitalWrite (GREEN_PIN, HIGH); //Verd encès
digitalWrite (BLUE_PIN, HIGH);  //Blau encès

delay (1000);  //Es mantè encès 1000ms (1')

}  //Tanca diàleg

  /*Fins ací el control dels colors segons la funció mainColors
  en la què s'activen els leds individualment*/
 
  //Ara es veuen dues funcions més: ShowSpectrum() i Showrgb()
  /*Showrgb() mostra un sol color al led RGB. S'anomena showrgb(),
  amb el número del color que es vulgi mostrar.*/
 
  /*ShowSpectrum() crida a showrgb()un cop i un altre, per fer
  l'arc Iris. Aquesta funció passa per tots els colors del led RGB.
  Això ho fa mitjançant la intensificació d'una variable que va
  de 0-768 (el total de nombre de colors), i de vàries ocasions,
  cridant a showrgb(), per mostrar els colors individuals*/
 
  /*En aquesta funció s'utilitza un "bucle for()" que permet el pas
  d'una variable a partir d'un valor a un altre, i realitzar tot
  un seguit d'instruccions per a cada pas. El bucle for() és una
  forma molt útil per aconseguir els números per comptar cap a munt
  o cap avall*/
 
  /*Cada bucle for() té tres sentències esparades per ";"
  1.- Alguna cosa per fer abans de començar.
  2.- Una prova per fer; sempre i quan sigui veritat
  que es mantidrà el bucle.
  3.- Alguna cosa a fer després de cada bucle (normalment augmentar
  una variable.
 
  Per al bucle for() a continuació, aquests són els tres estats:
  1.- x=0; abans de començar, fer x=0.
  2.- x<768; mentre que x és menor que 768, executar el següent còdi.
  3.- x++Putting "++" després d'un medi de variables "suma +1". (També
  es pot utilitzar "X=x+1")*/
 
void showSpectrum()

{  //Obre diàleg

int x;  //Definir una variable sencera anomenada "x"

  //Ara utilitzarem un bucle for() per fer recompte X 0-767
 
for (x=0; x<768;x++)

  //Per a cada bucle (amb un nou valor d'x), fer el següent:
 
{  //Obre diàleg

showrgb (x);   //Cridar a RGBspectrum() amb el nou x
delay (10);  //Retard e 10ms (1/100th de segon)

}  //Tanca diàleg

}  //Tanca diàleg

  /*Showrgb(): Aquesta funció tradueix un número entre 0 i 767,
  en un color específic al led RGB. Si es té en compte aquest
  número a través de tot el rang (0-767), el led canviarà de
  colors sense problemes a través de tot l'espectre.*/
 
  /*Els números de "base" són:
  0= vermell pur
  255= verd pur
  511= blau pur
  767= vermell pur (novament)
 
  Els números entre els colors anteriors crearan barreges.*/
 
void showrgb (int color)

{ //Obre diàleg

int redIntensity;
int greenIntensity;
int blueIntensity;

  /*Ací utilitzarem un "if / else" declaració per determinar
  quin dels tres colors (R,G,B) cauen a x.*/
 
  /*En cada una d'aquestes zones calcurarem la brilantor per a
  cada un dels leds de color vermell, verd i blau en el led RGB.*/
 
if(color <=255)  //Zona 1

{  //Obre diàleg

redIntensity=255-color;  //Vermell passa de ON a OFF
greenIntensity=color;    //Verd passa de OFF a ON
blueIntensity=0;         //Blau sempre apagat

}  //Tanca diàleg

else if (color  <= 511)  //Zona 2

{  //Obre diàleg

redIntensity=0;                 //Vermell sempre apagat
greenIntensity=255-(color-256); //Verd passa d'encès a apagat
blueIntensity=(color-256);      //Blau passa d'apagat a encès

}  //Tanca diàleg

else    //Color>=512     //Zona 3

{  //Obre diàleg

redIntensity=(color-512);        //Vermell passa d'apagat a encès
greenIntensity=0;                //Verd sempre apagat
blueIntensity=255- (color-512);  //Blau passa d'encès a apagat

}  //Tanca diàleg

  /* Ara que s'han establert els valors de brillantor, es procedeix
  a acomodar el led a aquests valors*/
 
analogWrite (RED_PIN, redIntensity);
analogWrite (BLUE_PIN, blueIntensity);
analogWrite (GREEN_PIN, greenIntensity);

}  //Tanca diàleg

  //Fi del programa

Perfecto. Muchas gracias jose era eso, las dichosas palabras en inglés (ni se me había ocurrido que no podía ser), y los voids... mal colocados o ausentes. Igual me hubiera dado cuenta, si hubiera entendido el primer mensaje de error... Muchas gracias, especialmente porque es así como se aprende, ensayo-error, pero con ayudas externas para saber donde buscar, acostumbrarse a este idioma.

Venga, doy por solucionado el tema.

Saludos cordiales