En este artículo hablaré sobre el proyecto de un potente atenuador de cuatro canales para tiras LED y lámparas (hasta 200 vatios de potencia total, 50..100 vatios por canal) con una alta frecuencia de regulación PWM (1 kilohercio con una profundidad de color de 10 bits), para iluminación de alta calidad . Además, tiene una entrada para el sensor de luz, funciones de retroalimentación (emisión de información al controlador sobre el voltaje de entrada, voltaje en las entradas de medición, etc.) e incluso aislamiento galvánico del puerto de control en serie.

Sucedió que decidí cambiar mi perfil y ocuparme de los microcontroladores y la automatización, y después de unos meses recibí una oferta tentadora para hacer una "casa inteligente" en la República Dominicana, de modo que casi todos los aspectos de la vida de una villa bastante grande de tres grandes sean administrados y automatizados. edificios, desde iluminación y clima, hasta robots de jardín y sistemas de riego. Como estaba cansado de la nieve y las heladas durante mucho tiempo, era imposible rechazar tal oferta, más aún porque me ayudaron mucho con el movimiento y la adaptación.
Por supuesto, una de las tareas más importantes es controlar la iluminación, tanto en muchas habitaciones como en exteriores. Para ahorrar energía que es costosa aquí, se utilizarán tiras de LED y lámparas de 12 voltios en casi todas partes, que se deben controlar con atenuadores. Los modelos de atenuador existentes no fueron muy satisfactorios en todos los aspectos (una frecuencia de regulación lo suficientemente alta, para la ausencia de parpadeo; potencia, para controlar tiras largas brillantes o lámparas / focos; protocolos de intercambio cerrados, etc.). Entonces decidí hacer mi dimmer.
Un punto muy doloroso en la etapa de diseño fue la elección de obtener energía de bajo voltaje a partir de 110 voltios de corriente alterna. Incluso se consideró una opción exótica con una reducción sin transformador inmediatamente hasta 12 voltios, pero debido a consideraciones eléctricas y de seguridad contra incendios se rechazó. Las fuentes de alimentación listas para usar 110-> 12 no eran tan caras ($ 20 por 120 vatios y $ 40 por 200), aunque en general. Pero, afortunadamente, había mucho espacio para el equipo, así que me decidí por esta opción.
El circuito resultó ser relativamente simple (a excepción del nodo de aislamiento galvánico del puerto serie en cuatro optoacopladores): el microcontrolador STM32F030F4P6, dos controladores ADP3624 MOSFET y transistores de tecla IRLB8748, seleccionados con un gran margen (con una carga de 100 vatios por canal; apenas estaban calientes) , más un módulo de reducción de pulsos chino ya preparado a 3,3 voltios. Los controladores seleccionados le permiten controlar a frecuencias de hasta megahercios, lo que da la frecuencia del voltaje de salida en kilohercios, con un paso PWM de un microsegundo. En la práctica, incluso se probó un modo con una frecuencia PWM de ocho kilohercios y un paso de 125 nanosegundos, pero en la práctica, una frecuencia de ajuste tan alta amenaza cierta inestabilidad en la salida: los transistores simplemente no tienen tiempo para cerrarse tan rápido y la calidad del ajuste "flotará".

El cableado de la placa para corrientes tan altas fue un desafío bastante difícil para mí, nunca antes me había encontrado con tales tareas. Se decidió hacerlos lo más anchos posible (un conductor con un ancho de al menos 10 mm en una capa de 70 micras de cobre), y cuando esto no sea posible, use la segunda capa, combinándolas con una gran cantidad de vías. Quité la máscara de los conductores de alta carga para que, si fuera necesario, se pudiera aplicar un bus de cobre en la parte superior (pero esto no era necesario, incluso con una carga máxima de 200 vatios: la placa se calienta hasta solo 40 grados en una caja cerrada).
El protocolo de intercambio, debido a la falta de memoria flash, se eligió extremadamente simple, los comandos se envían línea por línea, en forma de texto "0: 512" (canal cero, PWM 512), los datos de salida se transmiten de la misma manera (voltaje, datos del primer fotorresistor, datos del segundo fotorresistor, voltaje de entrada a la entrada de ADC3, voltaje de entrada a la entrada de ADC5, voltaje del controlador, temperatura del chip). Sería más correcto usar el protocolo MQTT, pero temía que no encajara en flash (kilobytes de espacio libre permanecían fuera de 16).
→
Código fuente en githubSe parpadea un atenuador a través del mismo puerto de control (debe aplicar una unidad al 4 ° pin, luego el pulso al 5 °, después de lo cual el microcontrolador se puede cargar usando el protocolo serie estándar STM32. Para controlar un atenuador ya parpadeado, tres cables son suficientes, + 3.3 / + 5V en el primer pin, datos en el tercero, en el sexto - la tierra. La configuración del puerto de control en el firmware es 38400 baudios, 8n1.
Por supuesto, la primera versión del dimmer no estuvo exenta de defectos. Resultó que un condensador 470 microfaradios por 12 voltios no es suficiente, se calienta demasiado con una carga pesada (especialmente si los cables a la fuente de alimentación son delgados para tales corrientes), necesitamos agregar un par más más potentes (de acuerdo con la corriente máxima permitida). El módulo de alimentación chino también resultó ser una solución fallida, uno de los módulos falló durante las pruebas sin razón aparente, lo reemplazaré con un convertidor en TPS62177, además también agregaré otro convertidor opcional en AP1501 (24-> 12), para el caso de la fuente de alimentación del atenuador de 24 voltios Bueno, necesitará un circuito de control para un ventilador de 120 mm para la fuente de alimentación (en los casos en que la carga esté cerca del máximo), con control térmico e infinitamente ajustable. También decidí reemplazar el complejo aislamiento galvánico del puerto de control con el chip SI8641.
Hay problemas en la parte del software: a veces la lectura del puerto serie se bloquea, bloquea el control (la experiencia con STM32 todavía no es muy grande para mí), y el protocolo resultó ser demasiado idiota, tal vez intente introducir un MQTT normal allí.
Aquí hay un ejemplo del uso de un atenuador en un banco de pruebas (mi puerta de entrada), junto con un sensor de distancia IR (el color y el brillo de la tira RGBW es ajustable, dependiendo de la distancia, a través de openhab):
En el próximo artículo hablaré sobre una unidad de conmutación de cuatro canales de cargas de CA de ocho kilovatios con relés biestables (para reducir la energía consumida en vano) midiendo el consumo de corriente en cada canal.
Bueno, terminaré con una nota positiva. Al final resultó que, en la República Dominicana, el 99% del alcohol isopropílico o etílico no se puede encontrar para lavar placas de circuito (y también gasolina pura). Puede encontrar un 70% mezclado, obviamente, no con agua destilada, dejando manchas. Y aún puede encontrar fácilmente el 99,6% de metilo (no sé por qué lo venden en absoluto, incluso da miedo usarlo como solvente; puede respirar en pares). Decidí intentar enjuagar el primer tablero de dimmer con agua destilada, que compré en una tienda de artículos para el hogar. Afortunadamente, no me di cuenta de la idea de verificar el sabor del destilado. Pero la placa de circuito y el fregadero galvanizado realmente no me gustó cuando los vertí con electrolito de batería (las botellas de agua estaban en el estante con él, obviamente agarré el equivocado cuando lo puse en la cesta) ...