¿Cómo uso H11L1 correctamente para recibir MIDI?

Estaba siguiendo este esquema. este es el primer resultado en google imagenes

ingrese la descripción de la imagen aquí

Mi Arduino Serial Monitor no recibió nada. Intenté reemplazar el H11L1 con LED y parpadea. pero tan pronto como conecté el H11L1 (manteniendo el LED en paralelo y sin conectar el H11L1 a nada más), el LED deja de parpadear. Probé con y sin resistencias, también intenté invertir el cable.
Luego apago el H11L1, temeroso de romper mi teclado y el LED volvió a parpadear.

EDITAR:
Estaba usando Arduino Mega. Lo puse en modo de reinicio conectando Reset a GND. luego lo conecté como arriba y abrí el monitor en serie. Nada.
Además, no uso condensador, así que edité un poco la imagen.

¿Por dónde empiezo a solucionar problemas?

otra edición, aquí va mi Arduino hasta ahora. Lo siento por la mala soldadura.

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Lo que he probado hasta ahora:

  1. Leer el pin serial como un pin digital, sin conectar el H11L1 a nada excepto a las resistencias, como se muestra arriba. Siempre devuelve 1.
  2. Intenté ponerle un multímetro, todavía devuelve 1, el retorno esperado es 0. Intenté encender el LED con él, el LED se encendió.

EDITAR a partir del 28/03/2019

Cambié Arduino Mega a Wemos D1 y H11L1 a PC900V (alguna fuente me dijo que es el mismo IC)

Después de eso, conecté eso (todavía usando los mismos esquemas) a D2 en lugar de RX, y usé este código para verificarlo. Todavía no tuve suerte, lo que sea que hice todavía solo devuelve 1.

"Simplemente no funciona" no es una descripción válida del problema. ¿Qué mediste saliendo del dispositivo? El hecho de que su LED deje de parpadear cuando pone el H11L1 en paralelo con él no es sorprendente.
mi Arduino no recibió nada. Puse el Arduino Mega en modo de reinicio conectando el reinicio a gnd. Luego conecté el pin 4 a RX, el pin 5 a GND y el pin 6 a 5V, como arriba. Simplemente no uso condensador.
Espero que hayas conectado Reset a tierra brevemente; si dejaste Reset conectado a tierra, el microcontrolador no funcionará.
Si estuviera manteniendo el reinicio de Arduino MCU, entonces, por supuesto, no podría recibir datos a través del monitor en serie. ¿Qué software está ejecutando para recibir datos de línea serie?
Estaba tratando de ver la salida directamente en el monitor en serie, sin que Arduino hiciera nada.
En algún momento escuché que cuando se usa un LED o cualquier cosa en paralelo, puede empeorar la señal a través de un optoacoplador, por lo que puede usarlo para 'verificar', pero no para verificar el optoacoplador.
@MichelKeijzers Quité el LED. todavía nada leído por el Arduino.
¿Alguna vez lo intentaste sin un optoacoplador? Es principalmente por seguridad, pero debería funcionar sin demasiada probabilidad, solo para verificar si algo más está mal (código o resto del circuito)
@MichelKeijzers sí. Lo puse sin optoacopladores y puse arduino en reset. Midi sin pelo recibe datos incomprensibles.
Tampoco lo sé… Parece que también probaste sin MIDI, una señal LOW y HIGH a ver si cambia por el optoacoplador.
@MichelKeijzers Voy a volver a probar todo esta noche. Actualizaré más tarde lo que realmente sucedió. ¿Pero puede confirmar que mis esquemas son correctos?
@RinaldoJonathan Sí (excepto que no puedo verificar los valores de las resistencias). También solo verifique dos veces si el diodo está colocado en la dirección correcta (difícil de ver).
También verifique dos veces (trivialmente pero nunca se sabe) las rutas de soldadura desde las patas del IC hasta cada extremo del conector en la PCB.
Ya son 5 meses y todavía no me he dado cuenta de esto.
" Cambié Arduino Mega a Wemos D1, y H11L1 a PC900V... " ¿y qué? ¿Eso lo solucionó o no?
@Transistor no. Lo hizo aún peor.
@Transistor Agregué más detalles a la edición.

Respuestas (2)

No puede usar el monitor serial y el pin de entrada serial. Comparten el mismo puerto serie.

Incluso si no se usa, TX de MIDI entra en conflicto con TX de PC en la entrada RX del microcontrolador que mantiene la entrada en "1" lógico. La lectura como entrada digital no cambia nada.

Use un software UART para MIDI o encuentre alguna otra forma de probar su programa sin usar el monitor en serie.

El software UART puede ayudarlo a corregir la falla de diseño notada también por @Transistor de que la salida se invierte al invertir la entrada en el software.

Voté a favor, sin embargo, hice pruebas con el software UART para MIDI y está lejos de ser confiable (si necesita asegurarse de no perderse ningún comando Note Off, por ejemplo).

ingrese la descripción de la imagen aquí

Figura 1. Curvas LED IV. Fuente: LED relación corriente-voltaje .

Su optoacoplador utiliza un LED infrarrojo. Cuando conecta esto directamente en paralelo con cualquier otro LED de color, el voltaje a través de los LED cae al del más bajo, el infrarrojo en este caso. Su esquema muestra una resistencia de 220 Ω en serie con el LED. Suponiendo una lógica de 5 V, esto tendrá una caída de aproximadamente 3,5 V cuando el LED esté encendido, por lo que la corriente del LED será de aproximadamente I = V R = 3.5 220 = dieciséis   mamá . Mirando la Figura 1, podemos ver que el voltaje infrarrojo a 15 mA es de aproximadamente 1,25 V, mientras que se requiere un voltaje más alto para cualquier LED visible.

Eso explica por qué conectar el optoacoplador silencia el LED visible.

Pasos de depuración:

  1. Tenga en cuenta que la salida está invertida. Esto se indica con el símbolo del gatillo Schmitt abajo a la derecha.
  2. Desconecte la entrada. La salida debe cambiar alta. Si no es así, entonces

    • verifique el voltaje de Vcc con respecto a tierra en otra parte de su circuito.
    • verifique el voltaje de tierra con respecto a Vcc en otro lugar de su circuito.
    • Compruebe si hay cortocircuitos en la salida. (Desconecte todo lo demás que no sea la resistencia pull-up).
  3. Si todo parece estar bien, aplique 5 V a los pines 4 y 5 de MIDI. La salida ahora debería cambiar a nivel bajo. Siga el mismo procedimiento que el anterior.

MIDI utiliza alrededor de 2,5 V en los pines del conector.
intenté digitalRead () el H11L1 sin estar conectado a nada, ya devolvió 1. debería ser correcto.
Traté de conectarle un multímetro, todavía devuelve 1, lo cual no es correcto. Intenté encender el LED con el multímetro, se encendió.
" ... todavía devuelve 1 ". ¿Está tratando de medir la salida del optoaislador usando el rango de resistencia? Deberías estar midiendo voltaje.
@Transistor no, estoy usando el multímetro como alternativa de entrada de 5v, ya que no tengo respaldo de batería. por eso te dije que probé eso de prender el led con multímetro y si prendió.
cuando desconecto la entrada, arduino digitalRead() devuelve alto (1), lo cual es correcto. luego apliqué voltaje usando un multímetro, y todavía regresa alto. lo siento si suena confuso.