Control de volumen óptico digital con LED y fotoresistor (luz para separar circuitos, olla óptica)

1

Escenario

Al principio, sé la existencia de una olla digital. El "problema" es que necesitas un IC para lograr esto y también quieres mantener los circuitos completamente separados (y simples). También desea usarlo con un proyecto de audio Arduino sin IC externo (ya tengo una MCU que puede hacer el trabajo de 'configuración'). Así que se me ocurrió la idea de usar un led y un fotorresistor para separar los circuitos y evitar los pasos 'digitales' fijos, al igual que un resistor de olla normal, mantenlo suave y natural pero sin los problemas de falla / envejecimiento analógico.

Hizo dos borradores (¡rápidos!), uno con hardware simple como una rueda de opacidad y otro con el uso de un Arduino:

Medicuentadequelobásicodeestaideadeusarlaluzparacontrolarelvolumennoesnuevo,encontréesto: enlace Y el atenuador pasivo Lightspeed: enlace

Intente encontrar el componente que están utilizando, un led con un fotoresistor, pero no pudo encontrarlo. Comencé a experimentar con componentes existentes, como este (hecho de una placa experimental de una vieja impresora Canon, una tarjeta con dos sensores ópticos, cortado por la mitad y agregado a las tomas de audio) para descubrir que funcionará de todos modos:

Elexperimentotuvounéxitorealmentebueno,muyinteresantealverquerealmenteestáfuncionando.Elvolumensereducecuandosecolocaunobjetoentrelossensoresópticosolaentradadevoltajelímitehacelomismo.Excepto......secortaunladodelaamplitud.Debidoaquesolohaycuatropines,elreceptorpodríaserunaopto-resistencia,sinembargo,¿pareceserundiodo?Soloescucheestabandasonoraloquesucedió:

ArchivodeWave: enlace

Archivo de Wave (izquierdo + derecho combinado): enlace

Pregunta

Aunque puedo hacer el componente yo mismo al reemplazar el diodo opto-resistor con un fotosensor, me pregunto si estos componentes están disponibles en algún lugar. Debido a que el espacio disponible es un problema, sería útil, ya que es un componente compacto (con cuatro patas) del tamaño de un optoacoplador, por ejemplo. ¿Algunas ideas? ¿Algún número de pieza?

    
pregunta Codebeat

3 respuestas

1

Después de algunos meses: gracias, vaya a EM Fields, que me orienta en la dirección correcta. Los controles no son componentes baratos y solo están disponibles en algunas tiendas. Así que decido construir mis propios vectrols y esto se puede hacer a bajo costo ;-) ¡y funciona bastante bien!

Ordené algunos LDR diferentes, algunos LEDS en China (alrededor de menos de 3 euros por un par de bolsas con 50 LDR y 200 LED) y comencé algunos experimentos con esos. Hay personas que afirman que el color del LED importa cuando se crean vectroles, los blancos parecen ser los mejores para usar porque son los más brillantes de todos. hay algunos tíos del foro que dicen no usar LED brillantes, bueno, no estoy de acuerdo con la resistencia, necesitas una luz muy brillante para obtener una resistencia baja. Esto no se puede lograr con los LED antiguos.

He probado diferentes LDR y la resistencia puede ser diferente entre los modelos y los mismos modelos. Para asegurarse de que las LDR tengan la misma resistencia más cercana / más baja, pruébelas con un cordero LED brillante y un medidor de ohmios.

¿La respuesta de LDR es lenta? Bueno, no estoy de acuerdo, recogen la señal de pulso PWM muy bien (suena como la pregunta izquierda + derecha-ejemplo combinado con más detalle) y necesita cambiar la frecuencia de la señal de pulso, de lo contrario la configuración es inútil ( ver más adelante este escrito lo que he hecho para lograr esto).

Cuando el LED está en su brillo máximo, alcancé (vea la configuración a continuación para vectrol de dos canales con UN ÚNICO LED) aproximadamente 100-120 Ohms y es muy bueno y útil en comparación con lo que medí antes con el cordero LED. Cierta resistencia no es tan mala cuando se usa con un amplificador (impedancia de entrada) como lo hago yo.

Cambié el esquema a esto:

Tambiénconstruyaundispositivodeprueba,uncontroldevolumendeaudiodigital/analógicoUSBconelusodeunSparkFunDigiSpark(Arduinoattiny85).Construíuncontroldevolumendigitalantes,asíquesolonecesitabacambiarunpocoelcódigo.Veatambiénesteinstructivo: enlace . La versión del código que estoy usando es más avanzada porque mejoré el código y agregué algunas funciones adicionales como botones.

Este es el dispositivo que hice, una pequeña perilla de volumen con base giratoria de conector USB, para que puedas conectarlo desde cualquier ángulo sin un cable a tu computadora portátil o paquete de baterías. Esta es una configuración con solo UN LED y DOS LDR.

LEDpersonalizado

ElLEDqueestoyusandonoestanpersonalizado,solouséundremelparamodificarunLEDnormalde5mm,¡lohice/lohicepersonalizado!Paracortarel'techo'dedistancia,tengacuidadodenodejarlodemasiadodelgado.Utilicéundremelconpapeldelija/acabado.Pruébeloconunaceldadebotónde3Vdespuésdecortarloantesdeinstalarloenelcircuitofinal.

DescubríquehayunpuntomuertoenestosLED.Puedeverlomuyclaramenteenelejemplodelaimagenanterior,losLDRsecolocanenlaparteizquierdadelladodelabombilladelLED,noenlaparteinferior(=puntomuerto).DebidoaquelosLDRsonmuysensibles,tienequesolucionarestospuntosmuertosparaevitarquenopuedaobtenerlosmáximosresultados.

ProblemadefrecuenciadePWM

Apesardequefuncionamuybienalprimerintento,elaudiosuenacomounmp3conmuchosartefactos(bajatasadebits).EstonosucederácuandouseunabateríaparaalimentarelLED.ElLDRrespondealafrecuenciaPWM,porloquehayespaciosvacíosenelaudioporquelaresistenciadelLDRfluctúamuyrápidoentrelaresistenciaaltaybaja(encendido/apagado).

Primero,encontréesto: enlace , use un filtro de paso alto para evitar estas brechas de pulso PWM.

Necesitas componentes para esto y necesitas calcular la capacitancia correcta del capacitor para usar. Así que pensé, ¿puedo cambiar la frecuencia PWM? SÍ, puedes!

Agregue esta función a su boceto y llame a esta función en la rutina de configuración.

void setMaxPWM()
{
   /* Attiny85 PWM modification
       http://www.re-innovation.co.uk/web12/index.php/en/blog-75/305-fast-pwm-on-attiny85

       Or you can use the PWM library:
       Video  : Arduino PWM Tutorial #2 - How to Set PWM Frequency Accurately - Julian Ilett
                https://www.youtube.com/watch?v=9JXGIeM3BSI
       library: https://code.google.com/archive/p/arduino-pwm-frequency-library/downloads
                NOTICE: This library cannot be installed directly from zip, you need to
                extract the PWM directory first and zip it again. After this, put the zip
                into to libraries directory and install the zip via the Arduino IDE.      
    */

   /*
    Control Register A for Timer/Counter-0 (Timer/Counter-0 is configured using two registers: A and B)
    TCCR0A is 8 bits: [COM0A1:COM0A0:COM0B1:COM0B0:unused:unused:WGM01:WGM00]
    2<<COM0A0: sets bits COM0A0 and COM0A1, which (in Fast PWM mode) clears OC0A on compare-match, and sets OC0A at BOTTOM
    2<<COM0B0: sets bits COM0B0 and COM0B1, which (in Fast PWM mode) clears OC0B on compare-match, and sets OC0B at BOTTOM
    3<<WGM00: sets bits WGM00 and WGM01, which (when combined with WGM02 from TCCR0B below) enables Fast PWM mode
    */
    TCCR0A = 2<<COM0A0 | 2<<COM0B0 | 3<<WGM00;

    /*
    Control Register B for Timer/Counter-0 (Timer/Counter-0 is configured using two registers: A and B)
    TCCR0B is 8 bits: [FOC0A:FOC0B:unused:unused:WGM02:CS02:CS01:CS00]
    0<<WGM02: bit WGM02 remains clear, which (when combined with WGM00 and WGM01 from TCCR0A above) enables Fast PWM mode
    1<<CS00: sets bits CS01 (leaving CS01 and CS02 clear), which tells Timer/Counter-0 to not use a prescalar
    */
    TCCR0B = 0<<WGM02 | 1<<CS00;


    // ---------------------------------------
    // Below we don't use (and need) these because it will screw up the usb connection
    /*
    Control Register for Timer/Counter-1 (Timer/Counter-1 is configured with just one register: this one)
    TCCR1 is 8 bits: [CTC1:PWM1A:COM1A1:COM1A0:CS13:CS12:CS11:CS10]
    0<<PWM1A: bit PWM1A remains clear, which prevents Timer/Counter-1 from using pin OC1A (which is shared with OC0B)
    0<<COM1A0: bits COM1A0 and COM1A1 remain clear, which also prevents Timer/Counter-1 from using pin OC1A (see PWM1A above)
    1<<CS10: sets bit CS11 which tells Timer/Counter-1  to not use a prescalar
    */
    //TCCR1 = 0<<PWM1A | 0<<COM1A0 | 1<<CS10;

    /*
    General Control Register for Timer/Counter-1 (this is for Timer/Counter-1 and is a poorly named register)
    GTCCR is 8 bits: [TSM:PWM1B:COM1B1:COM1B0:FOC1B:FOC1A:PSR1:PSR0]
    1<<PWM1B: sets bit PWM1B which enables the use of OC1B (since we disabled using OC1A in TCCR1)
    2<<COM1B0: sets bit COM1B1 and leaves COM1B0 clear, which (when in PWM mode) clears OC1B on compare-match, and sets at BOTTOM
    */
    //GTCCR = 1<<PWM1B | 2<<COM1B0;
}

El ejemplo anterior es solo para el asistente y no necesita una biblioteca. ¡La frecuencia PWM ahora está por encima del límite de audición (frecuencia de ultra sonido) y el audio suena genial! Solo te muestro que los controles de control son impresionantes y el concepto Arduino es impresionante, pero en general las capacidades de Attiny85 son impresionantes (y la comunidad de cursos que comparte temas como tú y yo).

Lo siguiente que hay que hacer es el problema de analogWrite , la resolución de analogWrite . Debido a que entre ON y OFF hay una diferencia muy alta, si hace analogWrite( PB1, 1 ); descubre que este es un estado on / off en lugar de una transición suave entre 0 y > 1.

    
respondido por el Codebeat
1

Intento admirable, y buen esfuerzo de depuración. Sus optoacopladores Cannon son animales diferentes a los descritos en el enlace que proporcionó. Ellos usan un diodo infrarrojo para proporcionar la luz, pero el elemento fotosensible no es resistivo, sino que es un fototransistor de silicona. La corriente que proporciona solo fluye en un solo sentido, por lo tanto, las formas de onda recortadas que producen un audio altamente distorsionado. El elemento fotosensible en su enlace es un fotoresistor de sulfuro de cadmio o seleniuro de cadmio. Es una resistencia que permite la corriente en ambas direcciones de una manera razonablemente lineal. Los términos de búsqueda como optoacoplador de fotocélula pueden ayudar.
Algunas de las piezas disponibles actualmente: NSL-33-007 de LUNA optoelectronics es un optoacoplador de fotocélula de doble canal.
NSL-32H-103 de LUNA optoelectronics es una versión de un solo canal.

    
respondido por el glen_geek
1

Google "Vactrol", luego haga clic izquierdo en "Más imágenes para vactrol" para exactamente lo que necesitas.

Aquí hay un ejemplo:

También,visite Fairchild H11F1 para obtener una solución diferente.

    
respondido por el EM Fields

Lea otras preguntas en las etiquetas