editar: esquema cargado: soy un novato, este diagrama puede no ser correcto pero debería transmitir el intento.
Quiero encender un microcontrolador arduino cuando está oscuro.
Escribí un ejemplo en la pizarra y cargué el diagrama a continuación.
Fuerza
Usando una fotorresistencia y un transistor, planeo cambiar el lado alto que lleva energía al arduino desde un adaptador de 5v CC (eventualmente, un paquete de baterías).
LED
Planeo controlar la potencia de 5v a los LED a través de los puertos de salida del arduino y usar resistencias de 200Ω para regular la corriente en el lado de tierra.
Pregunta:
¿Cómo determino los valores de resistencia para R1 y R2? Soy nuevo en EE y la ley de ohm, lo siento.
¿Es mi lógica sólida? ¿Es esto terriblemente ineficiente?
Referencia
Un problema como este se puede implementar con mayor precisión con un fotodiodo y un diseño TIA Op Amp o un "sensor de luz" activo. Los PD tienen tolerancias mucho más precisas que los LDR, por lo que no necesita un potenciómetro para ajustar.
Un solo transistor es un comparador que usa el voltaje de referencia Vbe, pero la ganancia no es muy alta en comparación con un comparador y el voltaje de referencia está sujeto a variaciones con la corriente de polarización, pero puede ser adecuado.
Luego, todo lo que necesita hacer es apuntarlo en la dirección correcta para evitar errores de luz nocturna y determinar los umbrales de encendido y apagado. En lugar de un detector de gran angular, puede ser un tubo estrecho de termorretráctil para bloquear la luz no deseada.
Si la luz reflejada detectada de una luz nocturna es más baja que la luz ambiental, entonces el diseño óptico del sensor es más simple.
Sugiero analizar los diseños existentes y encontrar cómo se discuten las tolerancias de error para comprender más. Luego estudie comparadores para umbral con histéresis. Las respuestas a estos dependen de sus búsquedas de palabras clave.
Un diseño simple debe cumplir con todos los requisitos de detalle, así que siga preguntándose qué es la tolerancia de entrada y salida, para que comprenda la tolerancia de la función de transferencia, donde importa. https://www.google.com/search?q=ldr+light+switch+design&num=50&client=firefox-b&tbm=isch&tbo=u&source=univ&sa=X&ved=2ahUKEwjk04r39dHcAhVH1qwKHSWRD3gQsAR6BAgBEAE&biw=818&bih=810
Daniel tiene un enfoque excelente: mantenga el microcontrolador encendido y vivo siempre.
Dado que un fotorresistor tiene una alta resistencia en la oscuridad, utilícelo para cargar un capacitor en uno de los pines de entrada del microcontrolador. Se cargará lentamente en la oscuridad, mucho más rápido cuando esté iluminado. Cualquier microcontrolador es muy hábil para medir este tiempo de carga.
simular este circuito : esquema creado con CircuitLab
Quizás la fotorresistencia suba a 500Kohms a medida que se acerca la oscuridad. Si C1 comienza a cero voltios (descargado), su voltaje aumentará exponencialmente a aproximadamente 3V en medio segundo. En total oscuridad, el tiempo de carga será mayor.
Las corrientes de fuga del pin de entrada no se han tenido en cuenta, pero suelen ser bastante pequeñas.
Una vez que se ha detectado un nivel lógico alto en el pin de entrada, puede cambiarlo para que sea un pin de salida , de modo que C1 pueda volver a descargarse a cero voltios. Esto tomará alrededor de 500 microsegundos. Una vez descargado a cero voltios, el pin se vuelve a cambiar a un pin de entrada y se inicia un temporizador. Cuando el pin de entrada cambia de 0 lógico a 1 lógico, el temporizador se detiene; el tiempo tomado es una medida de "oscuridad".
También es posible usar el convertidor de analógico a digital del microcontrolador para medir la velocidad del aumento de voltaje en C1.
La mayoría de los microcontroladores tienen un estado de bajo consumo de energía que consume muy poca corriente de su suministro (V1). Si se va a minimizar el consumo de corriente del suministro, el microcontrolador puede pasar la mayor parte del tiempo dormido, despertándose de vez en cuando para probar la oscuridad. En este caso, C1 podría hacerse mucho más pequeño para minimizar el tiempo que tarda en aumentar su voltaje.
Mantenga LDR1 ópticamente aislado de las fuentes de luz LED.
El principal problema con su plan es que la resistencia del LDR cambia gradualmente a medida que cambia el nivel de luz, lo que significa que la energía suministrada al Arduino también cambiaría gradualmente. Lo que necesita es algo que se encienda completamente cuando está oscuro y luego se apague completamente cuando hay luz.
Puede conectar en cascada varias etapas de transistores para aumentar la ganancia. Use un PNP de potencia para la etapa final y omita R2... debe ser cero ohmios. Entiendo que es posible que este consejo no lo lleve a un circuito real, pero me temo que esto está un poco por encima de su cabeza.
El enfoque de apagar el Arduino solo tiene sentido si está utilizando algo como un Arduino UNO o similar donde hay dispositivos (serie a USB) y LED indicadores que darían como resultado un consumo de corriente inevitable.
Si está utilizando solo el ATMega328P (sin chips auxiliares), tiene más sentido simplemente poner la MCU en reposo.
La lógica que propone usar el LDR con un transistor no funcionará bien, ya que el Arduino podría apagarse en cualquier momento (una consecuencia no deseada) si el nivel de luz cae (como una mano sobre el LDR). Tiene un control muy pobre a menos que tenga definidos puntos de histéresis definidos.
Sugeriría que necesita algún tipo de lógica en la entrada y sería mucho mejor usar un FET en lugar de un transistor como interruptor de encendido. Tal vez algo en este sentido:
simular este circuito : esquema creado con CircuitLab
Aquí he sugerido un dispositivo TinyLogic, el NC7SV57 . Este dispositivo es configurable y se muestra aquí como una puerta NOR de 2 entradas que se utiliza para controlar la puerta de un FET de canal P.
La configuración del NC7SZ57 es la siguiente:
La MCU utiliza la segunda entrada para garantizar que, una vez que haya encendido, pueda usar un pin DIO del Arduino para asegurarse de que el interruptor de encendido permanezca encendido (establezca el pin IO alto) hasta que decida cambiar el estado. Cuando el Arduino está apagado, R2 mantiene bajo este pin para que solo se use la entrada LDR.
También vale la pena leer sobre el uso de un LED como sensor óptico en una solución en la que puede poner la MCU en reposo. Esto tiene la ventaja de que no necesita amplificadores operacionales de alta ganancia, comparadores de nivel, LDR o fotodiodos. Todo lo que tiene que hacer es usar dos pines DIO para controlar uno de sus LED (un poco como un puente H). A continuación, puede utilizar un bucle de tiempo para determinar el nivel de luz.
{}
en la barra de herramientas del editor. Edite su pregunta para formatear el código correctamente. También hay un botón de editor de esquemas que es fácil de usar y crea esquemas de apariencia profesional.{}
botón de código. (Agrega cuatro espacios al comienzo de cada línea). Mire la vista previa antes de enviar la respuesta y corríjala si aún no es correcta. Elimina las líneas en blanco y sangra correctamente.
Pico de voltaje
Daniel
glen_geek
usuario3228313
Daniel
usuario3228313