PROBLEMA CON SALIDA SERIAL DE ARDUINO [SOLUCIONADO]

Hola gente, muy buen día tengan todos, tengo el siguiente problema en el cual espero me puedan ayudar a resolverlo.

Tengo varios ARDUINO UNO (ORIGINAL) la cual recibe pulsos (PIEZAS PRODUCIDAS), una ves llega al arduino lo único que hago es mandar una salida serial, misma que, mediante un programa en .NET en el cual pongo el "com" asignado y usando un procedimiento almacenado agrego registros a una base de datos.
El proble es que por momentos el programa deja de recibir datos y tengo que desconectar el USB y reconectarlo, posiblemente no sea problema del ARDUINO o posiblemente si, alguien a tenido ese tipo de problemas.
DATO: Cuando esto sucede en panel de control > dispositivos e impresoras me aparece conectado el arduino.

Gracias de antemano por sus comentarios o ideas.

Imposible diría yo que se pueda responder a tu consulta con los pocos datos que das.
No sabemos si tu aplicación .NET esta permanentemente enviando datos al Arduino. Si es así ese es el problema.
Arduino tiene un buffer que puede incrementarse pero sigue siendo finito de todos modos. Si lo empachas de datos, el cuando no puede recibirlos comienza a tener perderlos.
Asi que la solución es que seas metódico y enviés datos a una tasa razonable.
Como no dices de que trata tus aplicaciones mas no se puede aconsejar.

Ok lo primero es que no mando dato al arduino, recibo datos del arduino y con una aplicación en .NET la envió a la base de datos en sql.

Explico mas a detalle:

El arduino recibe un pulso de X maquina y envio una salida serial con el numero de la maquina ejemplo:
MaquinaX, eso lo recibo en mi programa en .NET y lo que hace es mediante un procedimiento almacenado tomar el numero de la maquina y enviarlo a SQL.
Este es el codigo del arduino

 buttonStateM38 = digitalRead(buttonMaquina38);
  if (buttonStateM38 != lastButtonStateM38) {
    if (buttonStateM38 == HIGH) {
      diferenciaM38 = timeM38 - timePulsoM38;
      if (diferenciaM38 > 5000){
      Serial.println("Maquina341");
      } else if (inicio == 0){
      Serial.println("Maquina341");
      inicio =1;
      }
      timePulsoM38 = timeM38;
    }
  }
  lastButtonStateM38 = buttonStateM38;

Este es el codigo de .NET

   Function SEND_DATA_SQL(ByVal MAQUINA As String, ByVal CICLO_REAL As Decimal, ByVal NUMERO_OPCION As Integer, ByVal FECHA_REG As String) As Boolean
        Try
            cnConn.ConnectionString = ConeccionBoris
            cmdBuscar.Connection = cnConn
            cnConn.Open()
        Catch ex As Exception
            'NO SE PUDO ABRIR LA CONEXION
        End Try

        'ENVIAMOS LOS VALORES AL PROCEDIMIENTO ALMACENADO
        cmdBuscar.CommandText = "exec PROC_INYECCIONES_NUEVO @MAQUINA= '" & MAQUINA & "', @OPCION= '" & NUMERO_OPCION & "', @FECHA='" & FECHA_REG & "', @CICLO=" & CICLO_REAL & ""
        Dim RowsAffected As Integer
        Try
            RowsAffected = cmdBuscar.ExecuteNonQuery
        Catch ex As Exception
            'SI ENCONTRO UN ERROR REGRESAMOS EL VALOR FALSE
            cnConn.Close()
            Return False
        End Try
        'SI TODO SALIO BIEN REGRESAMOS TRUE 
        Return True
    End Function

Entonces el problema es muy dificil de replicar, hay dias que trabaja todo en orden y en otros el puerto se "duerme" demasiadas veces.

Repito el sintoma es que: en dispositivos e impresoras me aparece el arduino conectado, pero la aplicacion .NET ya no recibe nada de info.
La solución es desconectar el usb y volverlo a conectar.

Espero haber explicado mas el problema, muchas gracias a todos de antemano.

Hola,
Mira este Enlace por si fuera tu problema.

Buena idea, lo probare para ver si va por ese lado, muchas gracias y les informo los resultados.
Gracias

Hola buenas noches gente, la idea que sugirió rodripelto funciona, almenos ya dos dias trabajando sin problemas. Muchas gracias rodripelto