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.

  • 3 voto(s) - 2.67 Media
  • 1
  • 2
  • 3
  • 4
  • 5
exit status 1 Error compilando para la tarjeta Arduino/Genuino Uno
#21
lo que pasa es que estoy tratando de simular un control para pc para poder jugar al guitar hero con una guitarra que no tiene receptor inalambrico y estoy remapeando todos mis botones y el potenciometro para hacerlo andar, tengo el mismo problema... dejare el codigo aqui esperando no hacer espam

#include <Joystick.h>

#define BOTON_1 2
#define BOTON_2 3
#define BOTON_3 4
#define BOTON_4 5
#define BOTON_5 7
#define BOTON_6 8
#define BOTON_7 9
#define BOTON_8 14
#define BOTON_9 10

Joystick_ Joystick;

void setup()
{
pinMode(BOTON_1, INPUT_PULLUP);
pinMode(BOTON_2, INPUT_PULLUP);
pinMode(BOTON_3, INPUT_PULLUP);
pinMode(BOTON_4, INPUT_PULLUP);
pinMode(BOTON_5, INPUT_PULLUP);
pinMode(BOTON_6, INPUT_PULLUP);
pinMode(BOTON_7, INPUT_PULLUP);
pinMode(BOTON_8, INPUT_PULLUP);
pinMode(BOTON_9, INPUT_PULLUP);
Joystick.begin();
Joystick.setXAxisRange(1023, 0);
}

void loop() {
  Joystick.setXAxis(analogRead(A2));

  if (digitalRead(BOTON_1) == LOW)
  {
    Joystick.setButton(0, 1); 
  }
  else
  {
    Joystick.setButton(0, 0);
  }

  if (digitalRead(BOTON_2) == LOW)
  {
    Joystick.setButton(0, 1); 
  }
  else
  {
    Joystick.setButton(0, 0);
  }

  if (digitalRead(BOTON_3) == LOW)
  {
    Joystick.setButton(0, 1); 
  }
  else
  {
    Joystick.setButton(0, 0);
  }

  if (digitalRead(BOTON_4) == LOW)
  {
    Joystick.setButton(0, 1); 
  }
  else
  {
    Joystick.setButton(0, 0);
  }

  if (digitalRead(BOTON_5) == LOW)
  {
    Joystick.setButton(0, 1); 
  }
  else
  {
    Joystick.setButton(0, 0);
  }

  if (digitalRead(BOTON_6) == LOW)
  {
    Joystick.setButton(0, 1); 
  }
  else
  {
    Joystick.setButton(0, 0);
  }

  if (digitalRead(BOTON_7) == LOW)
  {
    Joystick.setButton(0, 1); 
  }
  else
  {
    Joystick.setButton(0, 0);
  }

  if (digitalRead(BOTON_8) == LOW)
  {
    Joystick.setButton(0, 1); 
  }
  else
  {
    Joystick.setButton(0, 0);
  }

  if (digitalRead(BOTON_9) == LOW)
  {
    Joystick.setButton(0, 1); 
  }
  else
  {
    Joystick.setButton(0, 0);
  }

  delay(3);
}

este es todo el codigo que utilizo, ya probe con otra libreria para simular un teclado e incluso baje la libreria para arduino y asi poder simular un joystick pero me sale el siguiente mensaje de error y no puedo entender de que se trata. de verdad les agradeceria si pudieran ayudarme a disipar mi duda, es la primera vez que hago esto y no estoy familiarizado con arduino, solo me base en un tutorial de internet, adjunto el link de el video al final.

C:\Users\Badu\AppData\Local\Temp\ccz6DG20.ltrans0.ltrans.o: In function `Joystick_:ConfundidoendState() [clone .constprop.19]':
C:\Users\Badu\Documents\Arduino\libraries\src/Joystick.cpp:677: undefined reference to `DynamicHID()'
C:\Users\Badu\Documents\Arduino\libraries\src/Joystick.cpp:677: undefined reference to `DynamicHID_::SendReport(unsigned char, void const*, int)'
C:\Users\Badu\AppData\Local\Temp\ccz6DG20.ltrans0.ltrans.o: In function `global constructors keyed to 65535_0_joystick.ino.cpp.o.2176':
<artificial>Triste.text.startup+0x3de): undefined reference to `DynamicHID()'
<artificial>Triste.text.startup+0x3e4): undefined reference to `DynamicHID_::AppendDescriptor(DynamicHIDSubDescriptor*)'
collect2.exe: error: ld returned 1 exit status
exit status 1



@link del video: https://www.youtube.com/watch?v=NmOefV36RY0 @
Error compilando para la tarjeta SparkFun Pro Micro.
  Responder
#22
Buenos días.

Ya nos han llamado la atención en este mismo hilo, por no poner el código como se debe, por lo tanto, edita el mensaje y pon el código como corresponde, "código". Entre otras cosas me quitaras los emoticonos, que no hacen nada mas que estorbar, y me toca quitarlos.

Para usar un mando de PS2, ya sea mando de juegos o la guitarra, ya se ha complicado la vida Bill Porter por nosotros y ha hecho un trabajo excelente publicando una librería y las explicaciones pertinentes, para poder usar estos mandos.

http://www.billporter.info/2010/06/05/pl...rary-v1-0/

Te recomiendo que te leas toda la pagina, incluyendo los enlaces adjuntos, así sabrás como funciona el mando y como se controla.

A su vez, hay varias versiones posteriores de la biblioteca, para poder usarla con casi todos los modelos de placa basados en Arduino, busca en Google

"Arduino mando PS2"

" Arduino PS2 controller"

Te saldrán un montón de paginas explicando como funcionan estos controladores de juegos.

Un saludo.
  Responder
#23
Volviendo a tu programa.

No estas utilizando bien la biblioteca <Joystick.h>, y estas mezclando ordenes o líneas de función de botón con funciones de joystick.

El joystick, es un potenciómetro, que dependiendo de la posición del palo, da un valor progresivo u otro de 0 a 1023, y un botón, solo esta en posición hight (alto, pasa corriente) o low (bajo, no pasa corriente).

Te recomiendo que ves el programa de ejemplo que viene con la biblioteca, y veras como usarla.

A demás, no has definido bien el objeto joystick en la línea 13

La líneas 26 y 27,  no las reconoce como líneas necesarias para programa, no hace falta que inicies el joystick, línea 26, y no tienes que decirle que los valores del eje X, van de 1023 a 0, en todo caso al revés, de 0 a 1023, teniendo en cuenta que hay un punto cero o punto muerto, que es en posición de descanso, que dependiendo de la sensibilidad del joystick, debe estar al rededor de 511.

De todas formas, estudia la página de Bill Porter, y sabrás de lo que estoy escribiendo.

En tu línea 31, le estas diciendo al programa, que lea los valores del joystick en el pin A2, cuando no lo tienes configurado así.

No has declarado en ningún momento que es "setButton", y el programa no sabe como interpretarlo ni que hacer con eso, da error en todas las líneas en las que está esta orden.
  Responder
#24
Muy buenas, 

Estoy intentando conectar un Arduino Nano Every (como emisor) y un Arduino Uno (como receptor). Quiero crear un código donde activar un servo con 5 funciones:

Pulsador 1, activa directamente el servo y un Led verde que me informa que esta actuando el servo.
Pulsador 2, activa el servo a los 5 seg, una secuencia de leds, primero rojo, luego amarillo y por último verde. 
Pulsador 3, activa el servo a los 10 seg, una secuencia de leds, primero rojo, luego amarillo y por último verde.
Pulsador 4, activa el servo a los 15 seg, una secuencia de leds, primero rojo, luego amarillo y por último verde.

Pulsador 5 (Arduino Nano Every) 

(también quiero añadir al código que cuando se active uno de los pulsadores del receptor me informe en el arduino nano a través de leds)

Los conecto con unos módulos de 433MHz.

Al compilar los programas me salta este error:

Programa 1: Emisor

/Users/al/Documents/Arduino/libraries/RadioHead/RH_ASK.cpp:793:5: note: in expansion of macro 'RH_ASK_TIMER_VECTOR'
ISR(RH_ASK_TIMER_VECTOR)
    ^~~~~~~~~~~~~~~~~~~
exit status 1
Error compilando para la tarjeta Arduino Nano Every.


Programa 2: Receptor


libraries/Servo/avr/Servo.cpp.o (symbol from plugin): In function `ServoCount':
(.text+0x0): multiple definition of `__vector_11'
libraries/RadioHead/RH_ASK.cpp.o (symbol from plugin)Triste.text+0x0): first defined here
collect2: error: ld returned 1 exit status
exit status 1
Error compilando para la tarjeta Arduino Uno.



// Programa 1 Emisor

#include <RH_ASK.h>
#include <SPI.h>

RH_ASK rf_driver;

#define PULSADOR5 4

void setup() {
  pinMode(PULSADOR5, INPUT_PULLUP);
  rf_driver.init();
 
}

void loop() {
  if (digitalRead(PULSADOR5) == LOW) {
  const char *msg = "1";
  rf_driver.send((uint8_t *)msg, strlen(msg));
  rf_driver.waitPacketSent();
  }
  else if (digitalRead(PULSADOR5) == LOW){
  const char *msg = "2";
  rf_driver.send((uint8_t *) msg, strlen(msg));
  rf_driver.waitPacketSent();
  }
  delay (200);
}



//// Programa 2 lado Receptor ////

#include <RH_ASK.h> 
#include <SPI.h> 
#include <Servo.h>

RH_ASK rf_driver; 

Servo servo_6;
int a;
int b;
int c;
int d;
int e;
int f;
int g;
int h;

void setup(){

  servo_6.attach(8, 500, 2500);  // Servo - pin 8
  pinMode(10, OUTPUT);            // Led Rojo - pin 10
  pinMode(12, OUTPUT);            // Led Amarillo - pin 12
  pinMode(7, OUTPUT);            // Led Verde - pin 7
  pinMode(9, INPUT);              // Pulsador1 - 5 segundos - pin 9
  pinMode(4, INPUT);              // Pulsador2 - 10 segundos - pin 4
  pinMode(5, INPUT);              // Pulsador3 - 15 segundos - pin 5
  pinMode(6, INPUT);              // Pulsador4 - Se acciona servo - pin 6
  rf_driver.init();              // inicializa objeto con valores por defecto
  Serial.begin(9600);
  }

 
void loop(){

if (a == HIGH) {                // "Si acciono el pulsador1...
  servo_6.write(0);              // Servo a 0º
  digitalWrite(10, HIGH);        // Led Rojo se enciende
  delay(2000);                    // Espera de 3 segundos
  digitalWrite(10, LOW);          // Led Rojo se apaga
  digitalWrite(12, HIGH);        // Led Amarillo se enciende
  delay(3000);                    // Espera de 3 segundos
  digitalWrite(12, LOW);          // Led Amarillo se apaga
  servo_6.write(90);            // Servo a 90º
  digitalWrite(7, HIGH);          // Led Verde se enciende
  delay(3000);                    // Espera de 3 segundos
  servo_6.write(0);              // Servo a 0º
  digitalWrite(7, LOW);          // Led Verde se apaga
  delay(20);                      // Espera de 2 segundos
  }

  if (c == HIGH) {                // "Si acciono el pulsador2...
  servo_6.write(0);              // Servo a 0º
  digitalWrite(10, HIGH);        // Led Rojo se enciende
  delay(2000);                    // Espera de 3 segundos
  digitalWrite(10, LOW);          // Led Rojo se apaga
  digitalWrite(12, HIGH);        // Led Amarillo se enciende
  delay(8000);                    // Espera de 7 segundos
  digitalWrite(12, LOW);          // Led Amarillo se apaga
  servo_6.write(90);            // Servo a 90º
  digitalWrite(7, HIGH);          // Led Verde se enciende
  delay(3000);                    // Espera de 3 segundos
  servo_6.write(0);              // Servo a 0º
  digitalWrite(7, LOW);          // Led Verde se apaga
  delay(20);                      // Espera de 2 segundos
  }

  if (e == HIGH) {                // "Si acciono el pulsador3...
  servo_6.write(0);              // Servo a 0º
  digitalWrite(10, HIGH);        // Led Rojo se enciende
  delay(2000);                    // Espera de 3 segundos
  digitalWrite(10, LOW);          // Led Rojo se apaga
  digitalWrite(12, HIGH);        // Led Amarillo se enciende
  delay(13000);                  // Espera de 7 segundos
  digitalWrite(12, LOW);          // Led Amarillo se apaga
  servo_6.write(90);            // Servo a 90º
  digitalWrite(7, HIGH);          // Led Verde se enciende
  delay(3000);                    // Espera de 3 segundos
  servo_6.write(0);              // Servo a 0º
  digitalWrite(7, LOW);          // Led Verde se apaga
  delay(20);                      // Espera de 2 segundos
  }

  if (g == HIGH) {                // "Si acciono el pulsador4...
  servo_6.write(0);              // Servo a 0º
  servo_6.write(90);            // Servo a 90º
  digitalWrite(7, HIGH);          // Led Verde se enciende
  delay(3000);                    // Espera de 3 segundos
  servo_6.write(0);              // Servo a 0º
  digitalWrite(7, LOW);          // Led Verde se apaga
  delay(20);                      // Espera de 2 segundos
  }
 
  else if (b == LOW) {            // "Y si no acciono el pulsador1...
  servo_6.write(0);            // Servo a 0º
  digitalWrite(10, LOW);        // Led Rojo apagado
  digitalWrite(12, LOW);        // Led Amarillo apagado
  digitalWrite(7, LOW);          // Led Verde apagado
  }

  else if (d == LOW) {            // "Y si no acciono el pulsador2...
  servo_6.write(0);            // Servo a 0º
  digitalWrite(10, LOW);        // Led Rojo apagado
  digitalWrite(12, LOW);        // Led Amarillo apagado
  digitalWrite(7, LOW);          // Led Verde apagado
  }

  else if (f == LOW) {            // "Y si no acciono el pulsador3...
  servo_6.write(0);            // Servo a 0º
  digitalWrite(10, LOW);        // Led Rojo apagado
  digitalWrite(12, LOW);        // Led Amarillo apagado
  digitalWrite(7, LOW);          // Led Verde apagado
  }

  else if (h == LOW) {            // "Y si no acciono el pulsador4...
  servo_6.write(0);            // Servo a 0º
  digitalWrite(10, LOW);        // Led Rojo apagado
  digitalWrite(12, LOW);        // Led Amarillo apagado
  digitalWrite(7, LOW);          // Led Verde apagado
  }
      uint8_t buf[1];                  // espacio para mensaje recibido de 1 caracter
      uint8_t buflen = sizeof(buf);      // longitud del búfer
     
      if (rf_driver.recv (buf, &buflen)) // si se recibieron datos correctos
      {
        Serial.print("Mensaje: ");
        Serial.println((char*)buf);
      }

      if((char)buf[0]=='1') // si el caracter es el numero 1
      {
        digitalWrite(10, !digitalRead(10));// aplica valor opuesto al leído
        } // del estado del LED rojo

        else if((char)buf[0]=='2') // si el caracter es el numero 2
        {
          servo_6.write(0);              // Servo a 0º
          servo_6.write(90);            // Servo a 90º
          digitalWrite(7, HIGH);          // Led Verde se enciende
          delay(3000);                    // Espera de 3 segundos
          servo_6.write(0);              // Servo a 0º
          digitalWrite(7, LOW);          // Led Verde se apaga
          delay(20);                      // Espera de 2 segundos
          }             
}


¡Cualquier ayuda es bienvenida!

Muchas gracias


[Imagen: IMG-6517.jpg]
  Responder
#25
Buenas noches MagAleHorcajo

Ya nos han llamado la atención en este mismo hilo, por no poner el código como se debe, por lo tanto, edita el mensaje y pon el código como corresponde, "código". Entre otras cosas me quitaras los emoticonos, que no hacen nada mas que estorbar, y me toca quitarlos.

Volviendo a los errores del programa

Código:
Programa 1: Emisor

/Users/al/Documents/Arduino/libraries/RadioHead/RH_ASK.cpp:793:5: note: in expansion of macro 'RH_ASK_TIMER_VECTOR'
ISR(RH_ASK_TIMER_VECTOR)
    ^~~~~~~~~~~~~~~~~~~
exit status 1
Error compilando para la tarjeta Arduino Nano Every.

Eso es un error de la librería, comprueba que sea compatible con tu versión del IDE, ya te adelanto que no es una librería aprobada por Arduino y no esta en la lista de librerías compatibles con el IDE Arduino.

Depende de donde la hayas sacado, se puede utilizar con Arduino o no, la primera que me sale en Google, es de un tal " PaulStoffegen", y en el archivo "Léame", advierte que es para las placas "Teensy", y no sirve para Arduino, a su vez te remite a otro sitio, donde se supone que esta el original, y esta otra también advierte, de que esta descontinuada.
Leyendo este ultimo enlace, dice que "RH_ASK.h", es un complemento para ese tipo de radio especifico. Por lo tanto, adjúntame la librería y el enlace a la página, porque no se de donde la has sacado.

Vale, ya he encontrado una librería valida, es la Sparkfun RadioHead, sin tocar nada de tu programa llamado "emisor", me compila sin problemas.
te adjunto el enlace a la librería que tienes que instalar.

https://github.com/sparkfun/SparkFun_Rad...no_Library
  Responder
#26
El programa "Receptor" me esta dando guerra, no se por que me da el mismo error de la librería servo que a ti.

Buscando en Internet, parece que hay un conflicto entre la librería servo y la librería Radiohead

https://forum.arduino.cc/t/radiohead-servo/660092

Parece que aquí esta la solución al conflicto de las librerías

https://forum.arduino.cc/t/servo-h-and-r...ict/506718


Bueno, pues efectivamente, como dicen en esta ultima publicación, hay que modificar la librería

RH_ASK.h

Y hay que incluirle la línea

#define RH_ASK_ARDUINO_USE_TIMER2

Y tu programa "Receptor", se compila sin tocar nada

Un saludo.
  Responder
#27
Si los programas os funcionan después de mis consejos para arreglar los códigos, no me deis las gracias todos a la vez, que se amontonan los mensajes en la red, se colapsan las líneas y no llegan los mensajes al servidor y no se publica ninguno.

Dar las gracias y saber que mi ayuda sirve de algo, reconforta y da ánimos para seguir.

Que el tema tenga 50.732 visitas a día de hoy 18/03/2022, significa que el tema interesa, y que a mas de uno mi ayuda le sirve.

No me importa perder 3 o 4 horas de mi vida intentando adivinar que queréis hacer, y donde están los errores de vuestros códigos, pero dar las gracias después de arreglaros el proyecto, no os cuesta tanto, cuando a mas de uno le estoy ayudando a aprobar la asignatura, o a que el proyecto fin de carrera le funcione, cuando yo no tengo ninguna titulación de informática.

No soy informático ni programador, y la mayoría de las soluciones vienen de Internet, porque a otro le ha pasado lo mismo, o se ha molestado en investigar sobre el tema, y yo me molesto en buscar esa solución.

Y hacer el puñetero favor de publicar los códigos como corresponde. Cuando vayáis a escribir en la pregunta, ponéis "buenos días", y le dais al botón de vista previa, entonces activáis la barra de herramientas, y se pueden adjuntar ficheros y sobre todo, se puede publicar el código como se debe, y no como texto y lleno de emoticonos, que hay que borrar, haciéndome perder el tiempo en quitarlos.

Un saludo.
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  DUDA arduino uno + GPS + SD + SDS011 JRRAmirez 1 0 23-07-2023, 04:57 PM
Último mensaje: asesorplaza1
  Como leer ultima linea de la tarjeta SD? Antude 0 694 28-08-2021, 08:41 AM
Último mensaje: Antude
  CONSULTA Error compilando para la tarjeta Arduino Mega or Mega 2560. minaki24fc 2 1,094 26-03-2021, 10:45 PM
Último mensaje: asesorplaza1
  Placa MEGA(china) la reconoce como UNO Jaimelito 1 888 18-11-2020, 10:15 PM
Último mensaje: asesorplaza1
  CONSULTA ¿como uno dos codigos en un solo codigo? laurangcard 1 943 18-11-2020, 10:03 PM
Último mensaje: asesorplaza1