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
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.
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/>)
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.
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.
#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);
}
}