Error expected '}' at end of input

Hola 

a todos, no soy diestro en programar, quiero hacer un proyecto que consiste en controlar 4 servomotores con dos botones cada uno, al querer cargar el sketch a la placa mega 2560 me aparece este error

Compilation error: expected '}' at end of input

el código es el siguiente

#include <Servo.h> 
Servo servomotor; 
Servo servomotor2;
Servo servomotor3; 
Servo servomotor4;

int angulo = 91; //Variable para el ángulo, inicia en 90°
int angulo2 = 91; 
int angulo3 = 91; //Variable para el ángulo, inicia en 90°
int angulo4 = 91; //Variable para el ángulo, inicia en 60°//Variable para el ángulo, inicia en 60°
int aumentar = 2; //Pin para el pulsador1 de aumentar el angulo 
int disminuir = 3; //Pin para el pulsador2 de disminuir el angulo 
int aumentar2 = 4; //Pin para el pulsador3 de aumentar el angulo 
int disminuir2 = 5; //Pin para el pulsador4 de disminuir el angulo
int aumentar3 = 6; //Pin para el pulsador1 de aumentar el angulo 
int disminuir3 = 7; //Pin para el pulsador2 de disminuir el angulo 
int aumentar4 = 8; //Pin para el pulsador3 de aumentar el angulo 
int disminuir4 = 9; //Pin para el pulsador4 de disminuir el angulo



void setup() 
{
  
 Serial.begin(9600); 
 servomotor.attach(9); //Pin PWM 9 del Arduino 
 servomotor2.attach(10); //Pin PWM 10 del Arduino 
 servomotor3.attach(9); //Pin PWM 9 del Arduino 
 servomotor4.attach(10); //Pin PWM 10 del Arduino 
 pinMode(disminuir, INPUT_PULLUP);
 pinMode(aumentar, INPUT_PULLUP);
 pinMode(disminuir2, INPUT_PULLUP);
 pinMode(aumentar2, INPUT_PULLUP); 
 pinMode(disminuir3, INPUT_PULLUP);
 pinMode(aumentar3, INPUT_PULLUP);
 pinMode(disminuir4, INPUT_PULLUP);
 pinMode(aumentar4, INPUT_PULLUP); 
 servomotor.write(angulo); //Posiciona el servo inicialmente en la mitad (90°) 
 servomotor2.write(angulo2); //Posiciona el servo inicialmente en la mitad (60°) 
 servomotor3.write(angulo); //Posiciona el servo inicialmente en la mitad (90°) 
 servomotor4.write(angulo2); //Posiciona el servo inicialmente en la mitad (60°) 

} 


void loop() 
 { 
  
 if (digitalRead(aumentar2) == LOW) {
 Serial.println("SUBIR SERVO 2");
 angulo2++; if (angulo2 >=91); { 
 angulo2 = 91; }
   
 } 
  
 if (digitalRead(aumentar) == LOW)
    
 {
    
  Serial.println("SUBIR SERVO 1");
  angulo++;
   if (angulo >=91)
   
   { 
     
   angulo = 91; } 
   } 
  
   if (digitalRead(disminuir) == LOW)
   {
   Serial.println("BAJAR SERVO 1");
   angulo--; if (angulo <= 101)
   
   { 
     
    angulo = 101; }
   }  
   if (digitalRead(disminuir4) == LOW){
   Serial.println("BAJAR SERVO 4");
   angulo2--; if (angulo2 <=101) {
   angulo2 = 101; //El angulo no disminuye mas alla de 0 grados 
   }
    { 
  
 if (digitalRead(aumentar4) == LOW) {
 Serial.println("SUBIR SERVO 4");
 angulo2++; if (angulo2 >=91); { 
 angulo2 = 91; }
   
 } 
  
 if (digitalRead(aumentar) == LOW)
    
 {
    
  Serial.println("SUBIR SERVO 3");
  angulo++;
   if (angulo >=91)
   
   { 
     
   angulo = 91; } 
   } 
  
   if (digitalRead(disminuir) == LOW)
   {
   Serial.println("BAJAR SERVO 3");
   angulo--; if (angulo <= 101)
   
   { 
     
    angulo = 101; }
   }  
   if (digitalRead(disminuir2) == LOW){
   Serial.println("BAJAR SERVO 2");
   angulo2--; if (angulo2 <=101) {
   angulo2 = 101; //El angulo no disminuye mas alla de 0 grados 
   }
   }
   servomotor2.write(angulo2); 
   delay(10); 
   servomotor.write(angulo); //Manda el ángulo al servo dependiendo del pulsador presionado 
   delay(10); 
   
   }
}

podrán indicarme el error por favor ?Texto preformateado


Te está diciendo que falta una llave "}" de cierre en el código.

1 Like

En este " if ":

if (digitalRead(disminuir4) == LOW) {
    Serial.println("BAJAR SERVO 4");
    angulo2--;
    if (angulo2 <= 101) {
      angulo2 = 101; //El angulo no disminuye mas alla de 0 grados
    }
    {

La ultima llave esta al revés y te sobra la ultima llave del código. Al menos así no da errores de compilación. Si funciona o no, no lo se pruébalo.

1 Like

gracias, vamos a verificar, muchas gracias

perdón pero hay un problema, el sketch carga bien en la placa Mega solo que no hay funcion de los servos y una led parpadea constantemente la RX

Moderador:
Por favor, lee las Normas del foro y edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en (<CODE/>)




Edita tmb el título, quita la palabra "Ayuda.."
Lee el punto 5 de las normas.

Desconecta todo, luego conecta solo el USB y dinos si hace lo mismo (me refiero al parpadeo de Rx).

desconecte todo y carga bien, al conectar el pin 9 es que parpadea, solo que estpy viendo el sketch y en el void setup se ve este error de mi parte

[quote="alegre01, post:1, topic:1247014"]
int angulo = 91; //Variable para el ángulo, inicia en 90°
int angulo2 = 91;
int angulo3 = 91; //Variable para el ángulo, inicia en 90°
int angulo4 = 91; //Variable para el ángulo, inicia en 60°//Variable para el ángulo, inicia en 60°
int aumentar = 2; //Pin para el pulsador1 de aumentar el angulo
int disminuir = 3; //Pin para el pulsador2 de disminuir el angulo
int aumentar2 = 4; //Pin para el pulsador3 de aumentar el angulo
int disminuir2 = 5; //Pin para el pulsador4 de disminuir el angulo
int aumentar3 = 6; //Pin para el pulsador1 de aumentar el angulo
int disminuir3 = 7; //Pin para el pulsador2 de disminuir el angulo
int aumentar4 = 8; //Pin para el pulsador3 de aumentar el angulo
int disminuir4 = 9; //Pin para el pulsador4 de disminuir el angulo

void setup()
{

Serial.begin(9600);
servomotor.attach(9); //Pin PWM 9 del Arduino
servomotor2.attach(10); //Pin PWM 10 del Arduino
servomotor3.attach(9); //Pin PWM 9 del Arduino
servomotor4.attach(10); //Pin PWM 10 del Arduino
[/quote]

estoy nombrando en pin 9 tanto en el loop como en el void al poner la numeracion desde el pin 10 me sale error

Moderador
Lee el post#7 de nuevo.
Si sigues respondiendo sin hacer caso, tendré que sancionarte.
No habrá mas advertencias.
Cualquier consulta por privado, no por esta vía.

1 Like

Tienes otro error más importante pero no te lo marco hasta que le hagas caso al moderador.

1 Like

Bien.

Estás asignando 2 servos a cada pin, eso está mal.

servomotor.attach(9); //Pin PWM 9 del Arduino
servomotor2.attach(10); //Pin PWM 10 del Arduino 
servomotor3.attach(9); //Pin PWM 9 del Arduino 
servomotor4.attach(10); //Pin PWM 10 del Arduino 

¿Qué esperas que ocurra con, por ejemplo, el servo 3 (pin 9) cuando mueves el servo 1 (también pin 9)?
¿O qué pasaría si mueves el servo 1 hacia una posición y luego el servo 3 hacia otra distinta?
¿Entiendes por qué está mal?
Y lo mismo se repite con los servos 2 y 4 conectados ambos al pin 10.

1 Like

gracias, si asigne ya como debe ser, el sketch carga bien pero solo el primer servo funciona y el led L no ilumina del todo, su intensidad es baja

¿Y que tiene que ver el LED L?
El código que has publicado no lo usa.

1 Like

ah ok eso no lo sabia, y que solo el servo uno funcione y los otros no?

Código?

1 Like
#include <Servo.h> 
Servo servomotor; 
Servo servomotor2;
Servo servomotor3; 
Servo servomotor4;

int angulo = 91; //Variable para el ángulo, inicia en 90°
int angulo2 = 91; 
int angulo3 = 91; //Variable para el ángulo, inicia en 90°
int angulo4 = 91; //Variable para el ángulo, inicia en 60°//Variable para el ángulo, inicia en 60°
int aumentar = 2; //Pin para el pulsador1 de aumentar el angulo 
int disminuir = 3; //Pin para el pulsador2 de disminuir el angulo 
int aumentar2 = 4; //Pin para el pulsador3 de aumentar el angulo 
int disminuir2 = 5; //Pin para el pulsador4 de disminuir el angulo
int aumentar3 = 6; //Pin para el pulsador1 de aumentar el angulo 
int disminuir3 = 7; //Pin para el pulsador2 de disminuir el angulo 
int aumentar4 = 8; //Pin para el pulsador3 de aumentar el angulo 
int disminuir4 = 9; //Pin para el pulsador4 de disminuir el angulo



void setup() 
{
  
 Serial.begin(9600); 
 servomotor.attach(10); //Pin PWM 9 del Arduino 
 servomotor2.attach(11); //Pin PWM 10 del Arduino 
 servomotor3.attach(12); //Pin PWM 9 del Arduino 
 servomotor4.attach(13); //Pin PWM 10 del Arduino 
 pinMode(disminuir, INPUT_PULLUP);
 pinMode(aumentar, INPUT_PULLUP);
 pinMode(disminuir2, INPUT_PULLUP);
 pinMode(aumentar2, INPUT_PULLUP); 
 pinMode(disminuir3, INPUT_PULLUP);
 pinMode(aumentar3, INPUT_PULLUP);
 pinMode(disminuir4, INPUT_PULLUP);
 pinMode(aumentar4, INPUT_PULLUP); 
 servomotor.write(angulo); //Posiciona el servo inicialmente en la mitad (90°) 
 servomotor2.write(angulo2); //Posiciona el servo inicialmente en la mitad (60°) 
 servomotor3.write(angulo); //Posiciona el servo inicialmente en la mitad (90°) 
 servomotor4.write(angulo2); //Posiciona el servo inicialmente en la mitad (60°) 

} 


void loop() 
 { 
  
 if (digitalRead(aumentar2) == LOW) {
 Serial.println("SUBIR SERVO 2");
 angulo2++; if (angulo2 >=91); { 
 angulo2 = 91; }
   
 } 
  
 if (digitalRead(aumentar) == LOW)
    
 {
    
  Serial.println("SUBIR SERVO 1");
  angulo++;
   if (angulo >=91)
   
   { 
     
   angulo = 91; } 
   } 
  
   if (digitalRead(disminuir) == LOW)
   {
   Serial.println("BAJAR SERVO 1");
   angulo--; if (angulo <= 101)
   
   { 
     
    angulo = 101; }
   }  
   if (digitalRead(disminuir4) == LOW)
   Serial.println("BAJAR SERVO 4");
   angulo2--; if (angulo2 <=101) {
   angulo2 = 101; //El angulo no disminuye mas alla de 0 grados 
   }
    { 
  
 if (digitalRead(aumentar4) == LOW) {
 Serial.println("SUBIR SERVO 4");
 angulo2++; if (angulo2 >=91); { 
 angulo2 = 91; }
   
 } 
  
 if (digitalRead(aumentar) == LOW)
    
 {
    
  Serial.println("SUBIR SERVO 3");
  angulo++;
   if (angulo >=91)
   
   { 
     
   angulo = 91; } 
   } 
  
   if (digitalRead(disminuir) == LOW)
   {
   Serial.println("BAJAR SERVO 3");
   angulo--; if (angulo <= 101)
   
   { 
     
    angulo = 101; }
   }  
   if (digitalRead(disminuir2) == LOW){
   Serial.println("BAJAR SERVO 2");
   angulo2--; if (angulo2 <=101) {
   angulo2 = 101; //El angulo no disminuye mas alla de 0 grados 
   }
   }
   servomotor2.write(angulo2); 
   delay(10); 
   servomotor.write(angulo); //Manda el ángulo al servo dependiendo del pulsador presionado 
   delay(10); 
   
   }
}

Sigue habiendo problemas con la sintaxis
Por ej.

angulo2++; if (angulo2 >=91); { 
angulo2 = 91; }

Siguen ";" donde no corresponden.

ok, voy a verificar, muchas gracias

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