In function 'void setup()': 66:14: error: expected primary-expression before ',' token

I don´t get what´s the error :c
//*******************************************************************************

//SEMAFORO
//boton semaforo
#define bInicio 13 //34
//leds semaforo
#define ledR //14
#define ledA //12
#define ledV 2 //13

//contador jugador 1
//boton cont1 naranja
#define bCont1 1
//leds cont1
#define cont1A 5
#define cont1B 6
#define cont1C 7
#define cont1D 8
//ganador
#define GanaW1 3

//contador jugador 2
//boton cont2
#define bCont2 0
//leds cont2
#define cont2A 9
#define cont2B 10
#define cont2C 11
#define cont2D 12
//ganador
#define GanaW2 4

//Especificaciones Iniciales
int Contador1 = 0;

int Contador2 = 0;

// Prototipos de funciones

void Semaforo(void);

void Jugador1(void);

void Jugador2(void);

//*******************************************************************************
//Configuracion
//*******************************************************************************

//SEMAFORO
void setup() {
Serial.begin(9600);
//Entrada del boton de inicio
pinMode(bInicio,INPUT_PULLUP);
//Salida para el semaforo
pinMode(ledR,OUTPUT);
pinMode(ledA,OUTPUT);
pinMode(ledV, OUTPUT);
//CONTADOR 1
//Entrada del boton de inicio
pinMode(bCont1, INPUT);
//Salida para el contador
pinMode(cont1A, OUTPUT);
pinMode(cont1B,OUTPUT);
pinMode(cont1C, OUTPUT);
pinMode(cont1D, OUTPUT);
//ganador cont1
pinMode(GanaW1, OUTPUT);
//CONTADOR 2
//Entrada del boton de inicio
pinMode(bCont2,INPUT);
//Salida para el contador
pinMode(cont2A, OUTPUT);
pinMode(cont2B,OUTPUT);
pinMode(cont2C, OUTPUT);
pinMode(cont2D, OUTPUT);
//ganador cont2
pinMode(GanaW2, OUTPUT);

//Condiciones Iniciales
//SEMAFORO
digitalWrite(ledR,LOW);
digitalWrite(ledA,LOW);
digitalWrite(ledV,LOW);

//CONTADOR 1
digitalWrite(cont1A,LOW);
digitalWrite(cont1B,LOW);
digitalWrite(cont1C,LOW);
digitalWrite(cont1D,LOW);
digitalWrite(GanaW1, LOW);
//CONTADOR 2
digitalWrite(cont2A,LOW);
digitalWrite(cont2B,LOW);
digitalWrite(cont2C,LOW);
digitalWrite(cont2D,LOW);
digitalWrite(GanaW2, LOW);
}
//*******************************************************************************
// Loop Principal
//*******************************************************************************
//para el semaforo
void loop() {

if(digitalRead(bInicio) == 0){

Semaforo();
}

if(digitalRead(ledV) == HIGH){

Jugador1();
Jugador2();
}
}

//*******************************************************************************
//Funcion de secuencia de semaforo
//*******************************************************************************

void Semaforo(void){
digitalWrite(ledR, HIGH); //led rojo se enciende, los demas se apagan
digitalWrite(ledA,LOW);
digitalWrite(ledV,LOW);

delay(1000);

digitalWrite(ledR,LOW);
digitalWrite(ledA,HIGH); //led amarillo se enciende, los demas se apagan
digitalWrite(ledV,LOW);
delay(1000);

digitalWrite(ledR,LOW);
digitalWrite(ledA,LOW);
digitalWrite(ledV,HIGH); //led verde se enciende, los demas se apagan

}

//*******************************************************************************
//Funcion de contador jugador 1
//*******************************************************************************

void Jugador1(void){
if (digitalRead(bCont1)== HIGH ){
Contador1++ ;
delay(650);

}
//cuando el contador llegue a 4, se resetea a 0
else if(Contador1 >=5){
Contador1 = 0;

}
//mantener los valores iniciales si no se presiona el switch
else{
Contador1 = Contador1;

}
//Al igual que el semaforo, tengo que declarar cada posible salida del switch cuando se presiona del 1 al 4
switch (Contador1){
case 1:
digitalWrite(cont1A, HIGH);
digitalWrite(cont1B, LOW);
digitalWrite(cont1C, LOW);
digitalWrite(cont1D, LOW);

 break;

case 2:
 digitalWrite(cont1A, LOW);
 digitalWrite(cont1B, HIGH);
 digitalWrite(cont1C, LOW);
 digitalWrite(cont1D, LOW);

 break;

case 3:
 digitalWrite(cont1A, LOW);
 digitalWrite(cont1B, LOW);
 digitalWrite(cont1C, HIGH);
 digitalWrite(cont1D, LOW);

 break;

case 4:
 digitalWrite(cont1A, LOW);
 digitalWrite(cont1B, LOW);
 digitalWrite(cont1C, LOW);
 digitalWrite(cont1D, HIGH);

 break;
//si no se presiona nada de lo mencionado con anterioridad, apagar leds 
default:
 digitalWrite(cont1A, LOW);
 digitalWrite(cont1B, LOW);
 digitalWrite(cont1C, LOW);
 digitalWrite(cont1D, LOW);
 break;

}
}
//*******************************************************************************
//Funcion de contador jugador 2
//*******************************************************************************

void Jugador2(void){
if (digitalRead(bCont2)== HIGH ){
Contador2++ ;
delay(650);
}
//cuando el contador llegue a 4, se resetea a 0
else if(Contador2 >=5){
Contador2 = 0;
}
//mantener los valores iniciales si no se presiona el switch
else{
Contador2 = Contador2;
}
//Al igual que el semaforo, tengo que declarar cada posible salida del switch cuando se presiona del 1 al 4
switch (Contador2){
case 1:
digitalWrite(cont2A, HIGH);
digitalWrite(cont2B, LOW);
digitalWrite(cont2C, LOW);
digitalWrite(cont2D, LOW);

 break;

case 2:
 digitalWrite(cont2A, LOW);
 digitalWrite(cont2B, HIGH);
 digitalWrite(cont2C, LOW);
 digitalWrite(cont2D, LOW);

 break;

case 3:
 digitalWrite(cont2A, LOW);
 digitalWrite(cont2B, LOW);
 digitalWrite(cont2C, HIGH);
 digitalWrite(cont2D, LOW);

 break;

case 4:
 digitalWrite(cont2A, LOW);
 digitalWrite(cont2B, LOW);
 digitalWrite(cont2C, LOW);
 digitalWrite(cont2D, HIGH);

 break;
//si no se presiona nada de lo mencionado con anterioridad, apagar leds 
default:
 digitalWrite(cont2A, LOW);
 digitalWrite(cont2B, LOW);
 digitalWrite(cont2C, LOW);
 digitalWrite(cont2D, LOW);
 break;

}
}

Hi, @jimethan213
Welcome to the forum.

Please read the post at the start of any forum , entitled "How to use this Forum".

What model Arduino are you using?

Thanks.. Tom.. :smiley: :+1: :coffee: :australia:

1 Like

Hi,
Not sure what you expect these line to do?

#define ledR //14
#define ledA //12

You define a variable then comment // out the value.

Thanks... Tom.. :smiley: :+1: :coffee: :australia:

Hi, I´m using arduino Uno in TinkerCad.
But I'm just testing things out because I have to do it physically on a ESP32.
The Semaforo equals a light traffic, and because I was using too many port I ran out of space to use the red and yellow light, so i took them out for a bit.

You did not remove all the code related to the red and yellow LED, only the definition of the pin number. The result is that now everywhere ledR or ledA occur, they are replaces with nothing, resulting in

//Salida para el semaforo
pinMode(ledR,OUTPUT);
pinMode(ledA,OUTPUT);
pinMode(ledV, OUTPUT);

becoming

//Salida para el semaforo
pinMode(,OUTPUT);
pinMode(,OUTPUT);
pinMode(ledV, OUTPUT);

which is an error because you are setting the mode of a pin without specifying which pin.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.