This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
DUDA ERROR COMPILANDO PLACA DE ARDUINO
#1
BUENAS ESTABA HACIENDO UN MENÚ QUE VI POR INTERNET CON UN ENCODER ROTATIVO, EL PROBLEMA VIENE CUANDO DOY A SUBIR EL PROGRAMA Y ME DA ERROR AL MANDAR EL CODIGO A LA TARJETA ARDUINO YA HE PROBADO CON UN MEGA Y CON UN ARDUINO UNO Y NINGUNO ME FUNCIONA 


exit status 1

Error compilando para la tarjeta Arduino Uno.

AQUI DEJO EL TITULO DEL VIDEO DONDE SAQUE EL PROGRAMA : https://www.youtube.com/watch?v=lxlumFsKpg0 DURA SOLO 17 MINUTOS  Sisi1

NO LLEVO MUCHO PROGRAMANDO PERO ES ALGO QUE QUIERO HACER PARA UN PROYECTITO A VER SI ALGUIEN ENCUENTRA EL FALLO DE PORQUE PASA, GRACIAS.

ESETE ES MI CODIGO POR SI ENCONTRAIS ALGO DIFERENTE AL VIDEO:

#include <LiquidCrystal_I2C.h>
#include <LiquidMenu.h>



LiquidCrystal_I2C lcd(0x27, 16, 2);



//ENCODER

#define outputA 6

#define outputB 7

#define sw 4



int aState;

int aLastState;



//LEDS

#define led1 8

#define led2 9

#define led3 10





int led_seleccionado = 0;



LiquidLine linea1(1, 0, "Led 1");

LiquidLine linea2(1, 1, "Led 2");

LiquidLine linea3(1, 0, "Led 3");

LiquidLine linea4(1, 1, "Todos");

LiquidScreen pantalla1(linea1, linea2, linea3, linea4);



LiquidLine linea1_2(1, 0, "ON");

LiquidLine linea2_2(1, 1, "OFF");

LiquidLine linea3_2(1, 0, "Atras");

LiquidScreen pantalla2(linea1_2, linea2_2, linea3_2);



LiquidMenu menu(lcd, pantalla1, pantalla2);



void setup() {



  pinMode(led1, OUTPUT);

  pinMode(led2, OUTPUT);

  pinMode(led3, OUTPUT);



  pinMode(sw, INPUT_PULLUP);



  lcd.init();

  // lcd.begin();

  lcd.backlight();





  menu.init();



  linea1.set_focusPosition(Position::LEFT);

  linea2.set_focusPosition(Position::LEFT);

  linea3.set_focusPosition(Position::LEFT);

  linea4.set_focusPosition(Position::LEFT);



  linea1.attach_function(1, fn_led1);

  linea2.attach_function(1, fn_led2);

  linea3.attach_function(1, fn_led3);

  linea4.attach_function(1, fn_todos);



  menu.add_screen(pantalla1);







  linea1_2.set_focusPosition(Position::LEFT);

  linea2_2.set_focusPosition(Position::LEFT);

  linea3_2.set_focusPosition(Position::LEFT);



  linea1_2.attach_function(1, fn_on);

  linea2_2.attach_function(1, fn_off);

  linea3_2.attach_function(1, fn_atras);



  menu.add_screen(pantalla2);



  pantalla1.set_displayLineCount(2);

  pantalla2.set_displayLineCount(2);



  menu.set_focusedLine(0);



  menu.update();



}



void loop() {



  selectOption();



  aState = digitalRead(outputA);

  if (aState != aLastState) {

    if (digitalRead(outputB) != aState) {

      menu.switch_focus(false);

    } else {

      menu.switch_focus(true);

    }

    menu.update();

    aLastState = aState;

  }



}











//Funciones:::::

void selectOption() {

  if (digitalRead(sw) == LOW) {

    menu.call_function(1);

    delay(500);

  }

}



void fn_led1() {

  menu.change_screen(2);

  menu.set_focusedLine(0);

  led_seleccionado = 1;

}



void fn_led2() {

  menu.change_screen(2);

  menu.set_focusedLine(0);

  led_seleccionado = 2;

}





void fn_led3() {

  menu.change_screen(2);

  menu.set_focusedLine(0);

  led_seleccionado = 3;

}





void fn_todos() {

  menu.change_screen(2);

  menu.set_focusedLine(0);

  led_seleccionado = 0;

}







void fn_on() {



  switch (led_seleccionado) {

    case 1:

      digitalWrite(led1, HIGH);

      break;

    case 2:

      digitalWrite(led2, HIGH);

      break;

    case 3:

      digitalWrite(led3, HIGH);

      break;

    case 0:

      digitalWrite(led1, HIGH);

      digitalWrite(led2, HIGH);

      digitalWrite(led3, HIGH);

      break;

  }



}





void fn_off() {

  switch (led_seleccionado) {

    case 1:

      digitalWrite(led1, LOW);

      break;

    case 2:

      digitalWrite(led2, LOW);

      break;

    case 3:

      digitalWrite(led3, LOW);

      break;

    case 0:

      digitalWrite(led1, LOW);

      digitalWrite(led2, LOW);

      digitalWrite(led3, LOW);

      break;

  }

}



void fn_atras() {

  menu.change_screen(1);

  menu.set_focusedLine(0);
}
  Responder
#2
Buenas noches

Lo primero comentarte que si escribes con mayúsculas, es que estas gritando (léete las normas del foro), y los demás no tenemos la culpa de que tu código no compile. Por favor edítalo y escríbelo con minúsculas

Después, los códigos se publican dentro de su recuadro, para que se vean como código, y se puedan copiar para pasarlos al IDE de Arduino, (léete las normas del foro). Por favor edítalo y ponlo en el recuadro como código.

Si pones tantos espacios donde no corresponden, lo único que consigues es que tu código tenga 365 líneas y la gente se asuste y no lo lea, le he quitado los espacios innecesarios y se ha quedado en 199 líneas, que no son pocas, pero asusta menos.

Código:
#include <LiquidCrystal_I2C.h>
#include <LiquidMenu.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

//ENCODER

#define outputA 6
#define outputB 7
#define sw 4

int aState;
int aLastState;

//LEDS

#define led1 8
#define led2 9
#define led3 10

int led_seleccionado = 0;

LiquidLine linea1(1, 0, "Led 1");
LiquidLine linea2(1, 1, "Led 2");
LiquidLine linea3(1, 0, "Led 3");
LiquidLine linea4(1, 1, "Todos");
LiquidScreen pantalla1(linea1, linea2, linea3, linea4);

LiquidLine linea1_2(1, 0, "ON");
LiquidLine linea2_2(1, 1, "OFF");
LiquidLine linea3_2(1, 0, "Atras");

LiquidScreen pantalla2(linea1_2, linea2_2, linea3_2);

LiquidMenu menu(lcd, pantalla1, pantalla2);

void setup() {

  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(sw, INPUT_PULLUP);

  lcd.init();

  // lcd.begin();

  lcd.backlight();

  menu.init();

  linea1.set_focusPosition(Position::LEFT);
  linea2.set_focusPosition(Position::LEFT);
  linea3.set_focusPosition(Position::LEFT);
  linea4.set_focusPosition(Position::LEFT);

  linea1.attach_function(1, fn_led1);
  linea2.attach_function(1, fn_led2);
  linea3.attach_function(1, fn_led3);
  linea4.attach_function(1, fn_todos);

  menu.add_screen(pantalla1);

  linea1_2.set_focusPosition(Position::LEFT);
  linea2_2.set_focusPosition(Position::LEFT);
  linea3_2.set_focusPosition(Position::LEFT);

  linea1_2.attach_function(1, fn_on);
  linea2_2.attach_function(1, fn_off);
  linea3_2.attach_function(1, fn_atras);

  menu.add_screen(pantalla2);

  pantalla1.set_displayLineCount(2);
  pantalla2.set_displayLineCount(2);

  menu.set_focusedLine(0);

  menu.update();

}

void loop() {

  selectOption();

  aState = digitalRead(outputA);

  if (aState != aLastState) {

    if (digitalRead(outputB) != aState) {

      menu.switch_focus(false);

    }
    else {

      menu.switch_focus(true);
    }

    menu.update();

    aLastState = aState;

  }

}

//Funciones:::::

void selectOption() {

  if (digitalRead(sw) == LOW) {
    menu.call_function(1);
    delay(500);
  }
}

void fn_led1() {

  menu.change_screen(2);
  menu.set_focusedLine(0);
  led_seleccionado = 1;
}

void fn_led2() {

  menu.change_screen(2);
  menu.set_focusedLine(0);
  led_seleccionado = 2;
}

void fn_led3() {

  menu.change_screen(2);
  menu.set_focusedLine(0);
  led_seleccionado = 3;
}

void fn_todos() {

  menu.change_screen(2);
  menu.set_focusedLine(0);
  led_seleccionado = 0;
}

void fn_on() {

  switch (led_seleccionado) {
    case 1:
      digitalWrite(led1, HIGH);
      break;

    case 2:
      digitalWrite(led2, HIGH);
      break;

    case 3:
      digitalWrite(led3, HIGH);
      break;

    case 0:
      digitalWrite(led1, HIGH);
      digitalWrite(led2, HIGH);
      digitalWrite(led3, HIGH);
      break;
  }
}

void fn_off() {

  switch (led_seleccionado) {

    case 1:
      digitalWrite(led1, LOW);
      break;

    case 2:
      digitalWrite(led2, LOW);
      break;

    case 3:
      digitalWrite(led3, LOW);
      break;

    case 0:
      digitalWrite(led1, LOW);
      digitalWrite(led2, LOW);
      digitalWrite(led3, LOW);
      break;
  }
}

void fn_atras() {

  menu.change_screen(1);
  menu.set_focusedLine(0);
}

El error que te da, si es así de "seco"

Código:
exit status 1

Error compilando para la tarjeta Arduino Uno.

No es por problemas con el Arduino, es porque te falta instalar las tres librerías

LiquidCrystal           (desde el IDE de Arduino)

LiquidCrystal_I2C    (desde el IDE de Arduino)

LiquidMenu             (desde el enlace a Github del vídeo)

Ya que las tres se complementan, pero para ese proyecto en concreto, hay que modificarlas según dice en las instrucciones del vídeo para que funcionen correctamente al usar mas de una pantalla.

Cuando tengas corregido esto, que no es poco seguiremos a ver si lo hacemos compilar.

Un saludo.
  Responder
#3
Bua, muchas gracias tendré en cuenta todo y voy a leerme las normas lo siento, voy a probar todo eso y veré a ver que tal, era mi primer post y no habia leido nada sorry.
  Responder
#4
Buenos días

Las prisas no son buenas consejeras para nada, todo lo que quieras hacer en la vida, necesita su tiempo, y nadie (por listo e inteligente que parezca) nacemos enseñados, todos hemos tenido que aprender de alguien, y luego desarrollar ese aprendizaje.

Ten en cuenta una cosa, vamos a cambiar las librería según dice el tío del vídeo, lo cual quiere decir, que debes tener la precaución de guardarte esas librerías sin tocar, como copia de seguridad, en alguna parte, porque una vez modificadas, solo servirán para este proyecto, y si alguna vez quieres usar solo una pantalla LCD, las librerías modificadas posiblemente no te funcionen bien, y te vuelvas loco buscando un problema oculto que solo tendrás tu, y no podremos averiguar nunca que te esta fallando en el nuevo proyecto.

Un saludo.
  Responder