La idea de simplemente deshabilitar el puerto USB de Arduino no funcionará. Aquí es por qué.
Si el teléfono es OTG y desea que esté en modo host, el problema de la carga se vuelve un poco difícil. El problema es que, en el modo host, un puerto USB normal es una fuente de VBUS, lo que contradice el deseo de mantener el teléfono cargando (recibir alimentación).
La solución USB oficial estándar se encuentra en el denominado esquema de "carga de accesorios". Este es un modo opcional y puede que su dispositivo móvil (teléfono inteligente) no lo admita.
En la mayoría de los casos simplistas de OTG, la función del puerto USB está determinada por el estado del pin ID en el conector micro-USB. El ID se suministra desde el sobremolde del cable. Si el pin de identificación está flotando, el teléfono debe comportarse como dispositivo. Si el pin de ID está conectado a tierra, el teléfono debe cambiar al modo host y conducir VBUS. Por lo tanto, la función del puerto OTG no se puede cambiar al deshabilitar la funcionalidad USB en el lado del dispositivo, se define mecánicamente mediante un pin de ID dentro del cable.
Si el "modo accesorio" es compatible con el teléfono, debe reconocer algo más que abierto o corto, debe detectar la impedancia de ID. Si la resistencia de bajada está entre 122 y 126 kOhms, esto debe reconocerse como modo de cargador de accesorios. En este caso, el teléfono actuará como host USB pero, en lugar de buscar VBUS, aceptará el formulario de cargo VBUS.
Para obtener detalles sobre la implementación y las ideas generales, consulte este artículo de Texas Instruments, " TSU6721 Flujo de detección de accesorios y cargador ". En Amazon y e-Bay hay cables simples con apariencia de Y que tienen una identificación correcta y una conexión de cable que puede proporcionar el modo de carga de accesorios.