PC no reconoce Arduino micro después de cargar el sketch [SOLUCIONADO]

Hola a todos.

Soy novato en arduino, pero ya hice algún que otro proyecto orientados al simracing.
En este caso tengo el problema con una botonera que hice siguiendo este tutorial: Tutorial botonera

El sketch esta correcto con las librerías añadidas de joystick y keyboard. Los drivers del pc también están bien ya que en la librería del joystic, hay un ejemplo que si lo cargo funciona a la perfección. Es un joysticktest, que se ejecuta poniendo a tierra A10. En el panel de control se ve como lo hace perfectamente.

El tema es que compilo el sketch que necesito y cuando lo subo, el pc ya no reconoce el dispositivo USB.
Le hago reset, subo un sketch vacio y el pc lo vuelve a reconocer.
He probado de todo, las placas de starfun en el IDE, actualizar controladores, drivers... y nada... Os dejo el enlace del sketch, a ver si a alguien le apetece mirarlo y ver si contiene algún fallo que haga que se duerma el procesador o yo que se... Es Arduino pro micro clon chino basado en procesador Atmega32U4.

Sketch: sketch botonera

Pues nada, muchas gracias de antemano y si necesitáis cualquier dato, soy todo oídos.

Hola, ¿estara correcto el puerto COM?

Hola

Siguiendo tu explicación, no me queda claro si cargando el sketch ARDUINO_BUTTON_BOXV2.ino el dispositivo USB de tipo HID, aparece en administrador de dispositivos dentro de el panel de control de windows. Tienes que ver eso.

Dices que cuando cargas un sketch vacío, el pc vuelve a reconocer tu placa. Entonces yo pienso que tu placa está buena.

Puedes hacer la siguiente prueba, y a ver si esta línea lo soluciona. Modifica el void loop así:

void loop() { 

  CheckAllEncoders();

  CheckAllButtons();

  Joystick.sendState();  // Añade esta línea

}

Suerte

Te envié privado para que edites tu post de acuerdo a las normas del foro.
Coloca etiquetas a ambos enlaces propuestos

Gracias a todos por las respuestas. He añadido esa linea al void loop y nada... sigue igual.
El PC detecta el dispositivo, pero dice que es desconocido.

Aqui os dejo un pantallazo: administrador de dispositivos

Sigo indagando sobre el asunto...

He probado a cargar un proyecto de un freno de mano analógico, usa otra librería diferente de Joystick (es este proyecto) y funciona a la perfección. Por lo tanto, creo que el problema esta en la libreria de joystick.

El problema es que la librería llamada joystick no me vale para el proyecto de la botonera, no me deja compilar... error al compilar

Alguien sabria decirme donde esta el fallo o problema para que el PC no reconozca el Pro micro con esta libreria???

Alguien sabe a que es debido este error?????

Arduino:1.8.3 (Windows 10), Tarjeta:"SparkFun Pro Micro, ATmega32U4 (5V, 16 MHz)" buttsimpjoy_02d:121: error: 'JOYSTICK_DEFAULT_REPORT_ID' was not declared in this scope Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID, ^ buttsimpjoy_02d:122: error: 'JOYSTICK_TYPE_JOYSTICK' was not declared in this scope JOYSTICK_TYPE_JOYSTICK, 34, 0, ^ exit status 1 'JOYSTICK_DEFAULT_REPORT_ID' was not declared in this scope Este reporte podría tener más información con "Mostrar salida detallada durante la compilación" opción habilitada en Archivo -> Preferencias.

Te esta diciendo cual es el error

JOYSTICK_DEFAULT_REPORT_ID no existe!!!

Si copiaste el código entonces estas usando una librería diferente.
No lo se porque tampoco pones el link de la librería.

No dices que librería Keypad estás utilizando. Lo necesito para tratar de compilar tu proyecto en mi PC.

Estás queriendo hacer un proyecto muy pobremente documentado. El autor no pone ningún comentario en su código, y no hace referencias a todas las librerías utilizadas.

A mi parecer la librería Joystick de MHeironimus está bien.

El dia que alguien ponga uso esto y lo otro yo pago las cervezas.

Pero es normal. Como la gente no lee las normas y si lo hace lo lee superficialmente, entonces no da detalles.
No tiene nada que ver el comentario con este caso, en general el 99.9% de las veces ocurre esto.

Hola

No es RoberAstur el que documenta mal el proyecto, él solamente está reproduciendo un proyecto de AM-STUDIO. Yo me refiero a AM-STUDIO como aquel que no documenta bien su trabajo en github.

Tenéis razón, me había confundido de librería.

He probado con dos proyectos similares basados en la misma librería y los dos me dan el mismo error una vez cargado el sketch.

Arduino Pro micro chino basado en procesador ATmega32U4

Proyecto 1.

Tutorial: link tutorial 1
Librería Joystick: link libreria joystick
Librería Keypad: Keypad by Mark Stanley, Alexander Brevig 3.1.1 del gestor de librerías.
Librería Keyboard: Keyboard by arduino 1.0.2
Sketch: link sketch

Proyecto 2.

Tutorial: link tutorial 2
Librería joystick:link libreria joystick
Librería Keypad: Keypad by Mark Stanley, Alexander Brevig 3.1.1 del gestor de librerías.
Librería Keyboard: Keyboard by arduino 1.0.2
Sketch: En el link del tutorial hay 4 archivos para descarga directa con los sketch. He probado los cuatro.

En ambos casos se sigue este esquema, son todas señales digitales:foto esquema

Pido perdón por todos los errores que he cometido, de veras que lo siento.
Espero poder dar los datos mas precisos.
Si no esta bien así, no dudéis en comentar.

Te felicito @RoberAstur por haberte tomado el trabajo de postear las cosas debidamente.
Ahora entiendes de lo que hablamos.

Para el usuario que tiene el problema todo parece simple, pero hay muchas librerías de cada cosa con el mismo nombre y es dificil para nosotros repetir tu error si no tenemos exactamente lo que tu estas usando.

Por eso es tan importante poner de donde se ha descargado la librería.

Mira que facil puede ser si en tu código simplemente haces esto, incluso para ti, porque en el momento sabes de donde lo descargaste pero 1 mes despues no.

#include <Joystick.h>  // https://github.com/MHeironimus/ArduinoJoystickLibrary

Algo asi es suficiente.

Veamos ahora tu problema. En un momento veo de que se trata si no me ganan.

Ya me compila sin errores. He descargado todo desde tus enlaces; pero por si hiciese falta adjunto las dos librerías y el sketch del proyecto 1.

Suerte

ARDUINO_BUTTON_BOX_V2.zip (1.57 KB)

Joystick.zip (21.1 KB)

keypad.zip (18.5 KB)

Muchas gracias por la ayuda Mariobac.
A mí también me compila sin errores, pero una vez cargado el sketch, el pc deja de reconocer el pro micro.
El problema es que no sé dónde puede estar el error...

El problema no puede estar en el sketch. Jamás lo esta ahi
Lo mismo te va a pasar si subes blink.ino para que parpadee el LED que tiene el PRO MICRO.
algo ocurre con tu Arduino MICRO y ese algo tiene que ver con el reset
PRueba luego de subir el sketch a ver si puede resetear el Arduino MICRO y por supuesto es reconocido.
De lo contrario te diría que busques otro arduino y repitas la prueba, porque algo le ocurre a ese arduino.

Pues no lo creo, ya que el otro día subí un sketch que hacía intermitencia entre los dos leds del pro micro y funcionó perfectamente.

No será problema en la librería???

Es que me veo comprando otro pro micro y estar en las mismas...

Gracias por la ayuda.

Bueno si te funciona con otros sketch y este sketch no funciona.
Hagamos algo mas simple.

He tomado este ejemplo de tu libreria Keypad.h

#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {8, 7, 6}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
  Serial.begin(9600);
}
  
void loop(){
  char key = keypad.getKey();
  
  if (key){
    Serial.println(key);
  }
}

Tienes pulsadores conectados a esos pines?

byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {8, 7, 6}; //connect to the column pinouts of the keypad

Prueba eso y nos dices como funciona.

Pero a esta altura ya necesito ver una foto de como has conectado las cosas o bien crea un dibujo a mano alzada del mismo.

Toma un tester/multimetro y verifica desde el pin hasta cada uno de los pulsadores que haya continuidad. Sin presionar.
Luego repite con cada fila y columna.
Entonces una vez hecho prueba el código que te he puesto.

Ahora en cuanto llegue a casa lo pruebo...
No sabes cuánto te agradezco la ayuda que me estás prestando.

Hola a todos.
he subido el el sketch que subió el compañero surbyte y no funciona.
Pero empece a hacer comprobaciones con el tester y he descubierto que hay pistas comunicadas en las soldaduras (de muy mala calidad) del procesador... Efectivamente, la placa esta mal... :frowning:
Voy a pedir otra y cuando me llegue os cuento como acaba el proyecto.

Muchísimas gracias a todos por ayudar a descartar problemas y hacerme ver la luz.

Edito el titulo a Solucionado????