Me gustaría controlar un código de microcontrolador¹ basado en el estado de un interruptor de botón en un circuito externo de 3,3 V a través de una entrada digital.
El circuito externo tiene un poco menos de 3,3 V CC que pasa por un interruptor de botón SPST, normalmente abierto. No tengo acceso al resto del circuito (está completamente sellado herméticamente y me gustaría evitar destruir el dispositivo), pero puedo empalmarlo en la línea del interruptor, ya sea paralelo al interruptor o en serie con el cambiar.
ACTUALIZACIÓN: mediciones de voltaje del interruptor:
El interruptor no se puede conectar en serie directamente a una entrada digital, ya que parece haber demasiada resistencia en el microcontrolador para que el interruptor complete el circuito externo. Sin embargo, una resistencia de 330 Ω en serie con el interruptor parece no interferir con el funcionamiento del circuito externo. También debo señalar que el circuito externo y mi circuito en la mayoría de las configuraciones compartirán un terreno común .
He logrado que el código responda como quiero con el interruptor conectado en paralelo a una entrada analógica (con una resistencia en serie). Sin embargo, me gustaría aprovechar las interrupciones (en lugar de hacer un bucle para leer la entrada analógica), por lo que me gustaría usar una entrada digital en su lugar.
Mi enfoque inicial para cambiar el nivel de la entrada digital basado en el interruptor del circuito externo ha sido a través de un interruptor de transistor . He intentado un interruptor basado en NPN y PNP, pero no he logrado obtener los valores correctos de la resistencia para incluso encender y apagar completamente un LED con el circuito externo (los intentos más recientes han sido en serie con el interruptor, pero también lo he intentado en paralelo).
Si un interruptor de transistor es realmente un buen enfoque, me gustaría recibir orientación sobre cómo hacerlo bien. ¿Es mejor un interruptor NPN o PNP (supongo que NPN va a ser más problemático, dado que ya comparten un terreno común?)? ¿Cómo debo calcular los valores de la resistencia para obtener la salida adecuada para los niveles 0/1 adecuados en una entrada digital del microcontrolador y también permitir que el circuito externo responda correctamente cuando el interruptor está cerrado? ¿Debo usar el lado negativo o positivo del interruptor del circuito externo para controlar el interruptor del transistor?
¹ Actualmente estoy trabajando con una placa ATmega328P, pero planeo cambiar a una placa ATmega32U4 a medida que continúo con el desarrollo para usar algunas de las funciones adicionales disponibles con esa placa.
En primer lugar, hagamos algunas suposiciones sobre el esquema interno que usted desconoce. Hay un interruptor, dado. Y ha medido algunos voltajes, con el interruptor cerrado y abierto. Estos me sugieren algo como esto:
simular este circuito : esquema creado con CircuitLab
En otras palabras, parece que hay una resistencia desplegable y que un lado del interruptor está conectado a un punto casi ideal. Fuente de voltaje. La razón por la que sugerí para el menú desplegable interno se debe a sus medidas. (Lo que puede no ser perfectamente preciso, pero probablemente suficiente). Midió el voltaje a través del interruptor, cuando estaba abierto, como . Entonces, suponiendo que su voltímetro presente impedancia (una suposición común, que carece de mejor información) esto solo significa resolver . y obtengo . El menú desplegable podría ser , aunque. No sé mucho acerca de su medidor. Pero la idea básica sigue siendo la misma. Parece que hay una resistencia desplegable del lado bajo con el botón conectado al lado alto. El punto medio probablemente se usa internamente (se muestra con la flecha) para cualquier propósito, que puede ser simplemente alimentar el circuito interno.
Ahora, antes de continuar, es posible que no haya ninguna resistencia desplegable. Puede ser que esta sea la resistencia que presenta el circuito al que apunta la flecha, cuando la resistencia en serie de su voltímetro se inserta entre la fuente de alimentación y el circuito. Y si hay una resistencia desplegable, entonces en paralelo con el circuito, presenta algo del orden de lo que estoy mostrando arriba. Solo quiero asegurarme de que no asumas que tengo razón. Este es solo un "modelo" que estoy usando para ilustrar sus medidas.
El hecho de que un La resistencia se puede agregar en serie con SW solo significa que el circuito señalado por la flecha probablemente no consuma más de . Podrías jugar con muchos valores diferentes. Pero no creo que sea necesario.
Lo principal es esto:
El signo de interrogación gigante ahora se completará para usted:
Eso debería usar casi cualquier par NPN de caja de chatarra. NO necesitan ser emparejados para o o mucho de cualquier otra cosa y también debería funcionar bien en un amplio rango de temperatura ambiente.
La fuga del pin de E/S en el peor de los casos (configurado como una entrada) para el ATmega32U4 es . Entonces el Las resistencias que he usado no deberían verse afectadas por más de aproximadamente debido a una fuga en el pin de E/S. Y no veo ningún problema con eso.
El circuito funcionará igual de bien en y rieles de fuente de alimentación desde el lado ATmega. El pin de E/S a la MCU desde este circuito simplemente usará el voltaje del riel dado, por lo que los niveles de voltaje de E/S coincidirán con los requisitos para el pin de E/S de la MCU.
El circuito también tiene una histéresis sustancial. Exceso de temperatura y BJT no coincidentes, debe haber al menos una banda que sea de ancho, pero probablemente más que eso por un margen justo.
Hay un filtro RC de la fuente de alimentación ATmega ( y ) para ayudar a evitar que el ruido del ATmega ingrese al circuito. También hay un condensador añadido ( ) desde el lado del interruptor para ayudar a moderar el ruido también desde ese lado.
Hay mucha histéresis en el circuito y, por lo tanto, mucho espacio para ajustar los valores de la resistencia (con el costo de un margen algo menor frente a las variaciones de la pieza). Así que no se preocupe mucho por encontrar los valores exactos.
La idea básica del circuito no es compleja. si solo miras , , y - , puede ver que el circuito se ve "equilibrado".
Pero fíjate que si se supone que está encendido entonces El cobrador tira hacia abajo causando estar apagado _ Con off , su colector está "abierto" y así y son libres de suministrar corriente base a de modo que, de hecho, está **encendido*. En otras palabras, es una suposición estable.
Pero también tenga en cuenta que lo contrario también es cierto, si asumió que está encendido _ Entonces eso también sería una suposición estable para un razonamiento similar.
Cuando tienes un circuito como ese, no sabes en qué dirección irá.
Ahora, agregué (que tiene otro propósito del que hablaré más adelante) y a un lado. Esto significa que al momento del encendido, está prácticamente garantizado que estará apagado y, por lo tanto, el circuito saldrá del encendido con en y apagado _ Dado que la salida se toma de 's coleccionista, y desde se enciende como encendido , la salida al pin de E/S debe ser "BAJO" y leerse como "0". Ese es el caso sin nada más que perturbe el circuito.
Luego agregué para hacer un puente entre este circuito y el interruptor de su otro circuito. Cuando el otro circuito se encienda (su interruptor esté encendido), entonces habrá alrededor de un aumento de voltaje en el capacitor a medida que la corriente se filtra a través . Así que no pasa mucho tiempo hasta que La base de se eleva lo suficiente como para comenzar a encenderlo. La corriente a través comenzará cerca de pero como alguna corriente alimenta la base de y drena a través , caerá quizás tan bajo como . La mitad de eso se hundirá , pero queda suficiente para activar . Y como se activa, su colector se hundirá suministro base a través de . Ya que, a lo sumo, solo puede suministrar sobre y dado que incluso completamente saturado y un la base de necesidades . Y eso se suministra fácilmente. No sólo eso, tan pronto como es sacado por este proceso, y empezar a suministrar corriente de base adicional en para colocarlo en el estado activado . Y ahí es donde permanece... mientras el circuito externo continúe suministrando algo de corriente adicional.
Una vez que el dispositivo externo esté apagado, ya no suministra corriente. Incluso podría retirar algunos. Pero eso depende de su dispositivo externo. Supongamos que no hay corriente a través de . Cuando eso ocurre, y aquí está el otro propósito de , comenzará a drenar y hundirá suficiente corriente para tirar apagado _ Así que este es el otro propósito de . Es necesario para permitir que el circuito vuelva a su estado predeterminado.
Calcular su valor es importante. Demasiado pequeño de un valor y se mantendrá apagado sin importar lo que suceda con el circuito externo. Un valor demasiado grande y no puede absorber suficiente corriente para que el circuito funcione correctamente y se reinicie. Entonces el valor de es importante, su valor determina la posición central de la histéresis, y dado que hay variaciones en las partes del transistor y detalles de la temperatura ambiente de los que preocuparse, no quiere meterse demasiado con su valor.
Sin embargo, puede reducir la histéresis aumentando los valores de y . Una histéresis más estrecha proporcionará menos rechazo de ruido pero permite más espacio para el cambio con , también.
Con el circuito anterior, hágalo funcionar a temperaturas por debajo de la temperatura ambiente y hasta y sobre variaciones parciales de de 100 a 300 y un factor de variación de 5 en las corrientes de saturación para los BJT, el siguiente gráfico de histéresis se simula como:
(En la simulación, tiene el papel de en el esquema que se muestra arriba).
Este cuadro sugiere que es bastante seguro usar piezas de la caja de chatarra. Y si aumentaste y a la parte inferior de la banda de histéresis cambia de centrada alrededor a estar centrado alrededor . Un montón de histéresis, todavía.
broma
jonathan w.
broma
jonathan w.
broma
jonathan w.
broma
jonathan w.
broma
broma
jonathan w.
broma