Contactos

Controlador de guirnalda de árbol de Navidad en una imagen de microcontrolador. Cómo hacer una poderosa guirnalda de Año Nuevo con sesos chinos. Explicación del código del programa.

Queda muy poco para el Año Nuevo, y en tiendas y mercados ofrecen opciones gran cantidad todo tipo de guirnaldas chinas. Todo esto está bien, pero decidí hacer yo mismo una guirnalda de Año Nuevo para el árbol de Navidad utilizando un microcontrolador.

En primer lugar, solo quería creatividad y, en segundo lugar, mi propia guirnalda casera de alguna manera brilla con más alegría y alegría que las compradas.
La guirnalda está montada sobre un microcontrolador ATmega8 y consta de 42 LED.
El autor de este proyecto es Dmitry Bazlov (Dima9350) y escribió el código para el microcontrolador, que contiene 11 efectos (programas) para implementar el dispositivo, de los cuales 8 programas para LED azules, rojos y amarillos (según el diagrama de la fila superior ), y 3 efectos (programas ) para LED blancos (fila inferior de LED), entre los que se encuentra el efecto de un copo de nieve que cae.
El voltaje de alimentación de la guirnalda es de 7 a 15 voltios (es posible hasta 24 voltios si coloca un pequeño radiador en el estabilizador), o si no tiene un regulador de voltaje L7805, entonces 5 voltios, por ejemplo: Puerto USB computadora. La longitud de la guirnalda en la versión del autor era de un metro. A continuación se muestra un vídeo de la guirnalda del autor alimentada por un puerto USB.

El circuito del dispositivo consta de:
- Microcontrolador ATmega8;
- resistencias de chip para LED de 300-330 ohmios - 21 piezas;
- chip L293:
- 2 condensadores de 16 voltios 10uF;
- Estabilizador de 5 voltios - 7805.
Los bits de fusible del microcontrolador están configurados a 8 MHz desde el oscilador interno.

Foto 1.
Diagrama de guirnalda.

Placa de circuito impreso de la guirnalda.

Figura 2.
Placa de circuito impreso de la guirnalda.

Apariencia guirnalda recogida en placa de circuito impreso desde el lado de los detalles.

Figura 3.
Aspecto de la guirnalda montada sobre una placa de circuito impreso desde el lado de las piezas.

Aspecto de la guirnalda ensamblada en una placa de circuito impreso desde el lado de instalación.

Figura 4.
Aspecto de la guirnalda ensamblada en una placa de circuito impreso desde el lado de instalación.

Entonces, como en la versión del circuito del autor, la guirnalda contiene un microcircuito L293 (controlador de control LED de 4 canales), que es comparable en precio a un microcontrolador y probablemente no esté disponible en todas partes, el circuito se modificó ligeramente y el El controlador fue reemplazado por dos transistores de diferente conductividad (KT814, KT815 y una resistencia de 1 kOhm), que hacen su trabajo bastante bien.
El diagrama de guirnalda actualizado se muestra en la siguiente figura.

Figura 5.
Diagrama de guirnalda.

La fila inferior de LED en el diagrama son LED blancos, la fila superior alterna LED por color: azul, amarillo, rojo, etc.
Los colores pueden quedar a tu discreción. Es recomendable utilizar LED con mayor brillo brillo.
El inicio de la guirnalda (o su final, como se desee) va de derecha a izquierda. Los “copos de nieve” caen desde el LED blanco HL2 hasta el LED HL42, es decir, los LED HL1 y HL2 deben ubicarse en la parte superior (la guirnalda termina o comienza con ellos).
Aquí se utilizan dos transistores como controlador. diferentes estructuras. Se utilizaron transistores KT814 y KT815, como se mencionó anteriormente. Los transistores KT315 y KT361 también funcionarán bastante bien en este circuito, pero no he intentado instalarlos.

En la versión del autor, los LED blancos se instalan al mismo nivel que los de colores, ya que están conectados en paralelo a ellos, pero con diferentes polaridades. La distancia entre los LED es de 4-5 cm, por lo que la longitud de la guirnalda era de un metro.
Coloqué los LED blancos y de colores por separado y a una distancia de 5-6 cm. La longitud de la guirnalda en mi versión es de poco más de dos metros, lo que es bastante adecuado para un árbol de Navidad de tamaño mediano. Además, soldé el tablero en media hora, pero tuve que retocar un poco la guirnalda. Es recomendable utilizar cables finos y trenzados para conectar los LED. Utilicé cables trenzados conectados con un diámetro de 0,5 a 0,6 mm. (junto con el aislamiento) y guirnaldas de hilo cerca del tablero, resultó que no era grueso.

Mire un vídeo de demostración de la guirnalda de Año Nuevo en acción.

¡Se acercan las vacaciones de Año Nuevo y en esta ocasión quiero hacer algo brillante y festivo! Decidí hacer una guirnalda de Año Nuevo. ¿Qué podría ser más brillante y festivo que guirnalda de año nuevo? :). ¡Decidí hacer no una guirnalda simple, sino sofisticada! 12 canales más control desde un mando a distancia IR. Para no hacer una guirnalda desde cero, se decidió utilizar donantes. órganos internos Como repuestos, utilice guirnaldas chinas confeccionadas. Esto tiene sentido por las siguientes razones:
— el costo de las guirnaldas, seamos honestos, el costo es una miseria. Intente comprar cables, LED, repuestos por el mismo dinero... Y si no tiene como objetivo una guirnalda de LED, entonces las guirnaldas de bombillas ahora se venden por casi nada;
— un factor importante son las líneas LED ya preparadas y soldadas entre sí. Soldarse, termocontraer, cometer errores y rehacer 12 líneas es un trabajo bastante tedioso;
- todavía, no sé ustedes, pero lo tengo por ahí Una cierta cantidad de guirnaldas que no funcionan (a menudo me las traen para que las repare; como resultado, terminan) no puedes gastar dinero en otras nuevas, sino recolectarlas de lo que tienes.

Para empezar, mira el vídeo:

¡ATENCIÓN!
voltaje peligroso 220V!

¡AMENAZA LA VIDA!
ES POR ESO:




Si usted darse cuenta del peligro armar tal guirnalda y comprometerse a cumplir las normas de seguridad Cuando trabaje con voltaje peligroso, puede leer más sobre cómo armar una súper guirnalda.

1 Pacientes de Guirnaldas.

Como sacrificio, se compraron 3 nuevas guirnaldas LED: son una belleza :)

Cuesta 3 dólares por pieza (100 LED). ¡Pero si los chinos no ahorran, se engañarán a sí mismos! De hecho, las guirnaldas contenían 3 canales. Es decir, el controlador en sí es de cuatro canales, pero hay tres tiristores y tres líneas de LED. Para disimular tal desgracia, los chinos mezclan LED de dos colores en una línea. En resumen, tuve que comprar otro :(. Pero este no es el límite de ahorro, ¡a menudo hay dos canales! Tenga cuidado: abra la caja y vea cuánto cuestan los tiristores.

De los controladores originales, se utilizarán resistencias para la guirnalda mejorada, diodos rectificadores, tiristores, botón, cajas. Necesitará comprar un poco más de una docena de resistencias, un par de condensadores, un microcontrolador ATtiny2313 y otras cositas.

2 Esquema.

Aquí hay un diagrama de la guirnalda original:

El diagrama muestra que la atenuación de los canales LED se realiza mediante tiristores. PCR406

Hoja de datos para tiristor PCR406

No veo ningún sentido en cambiarlos por otra cosa. Para generar tensión de alimentación controlador original Se utiliza una resistencia de extinción (la resistencia de extinción junto con la resistencia interna del controlador forma un divisor de voltaje). La solución es controvertida, pero en este caso se justifica por su bajo coste (la corriente del controlador es insignificante y la potencia asignada a la resistencia es muy pequeña). Después de sopesar los pros y los contras de tal decisión, decidí hacer algo similar en mi esquema. Es cierto que la corriente del ATtiny2313 (dentro de 8 mA) es significativamente mayor que la del controlador original, pero aún permite el uso de resistencias de extinción.

Diagrama del nuevo controlador de guirnaldas:

6 Montaje de la placa de alimentación.

Antes de ensamblar la placa de alimentación, es necesario realizar ciertas mediciones para calcular el valor de las resistencias de extinción. Para ello, conectamos la placa controladora soldada con el microcontrolador firmware a una fuente EXTERNA de 5 voltios (pads +5v y -5v) y medimos el consumo de corriente. No es necesario conectar las líneas LED, prácticamente no tienen ningún efecto sobre el consumo de corriente. Para un microcontrolador ATtiny2313 normal sin índices de letras El consumo actual debe ser de aproximadamente 7 - 9 mA. Para un microcontrolador ATtiny2313 con índices (tal vez A, P...) la corriente será diferente.

En función del consumo de corriente recibido (Ipot), calculamos la resistencia de las resistencias de extinción de la batería (aceptamos la más grande del rango estándar):

R = 430 / Ipot

Por ejemplo, mi consumo actual fue de 9 mA, lo que significa R = 430 / 0,009 = 47777 Ohm (suponiendo 47 kOhm).

El apilamiento de resistencias de extinción está diseñado para distribuir la disipación de energía y reducir el calentamiento. Las resistencias deben tener una potencia de al menos 0,5 W (y preferiblemente 1 W cada una).

Los diodos rectificadores y la resistencia de extinción se migran del circuito original; el resto deberá comprarse. tablero listo Colocamos las guirnaldas en el cuerpo.

Conectamos la fuente de alimentación y la placa controladora (tomamos los cables y el enchufe de la guirnalda original). No olvides asegurar los cables soldados a las placas con pegamento caliente, ya que los cables utilizados por los chinos son, por decirlo suavemente, basura y pueden caerse en cualquier momento.

7 Formación de líneas de LED.

Lo que tendrás que hacer es jugar con la formación de 12 canales de líneas de LED. Será necesario montar un arnés común con doce líneas (más un cable común) a partir de tres haces (y en el caso de tres canales en una guirnalda, cuatro haces) de las guirnaldas originales. No es necesario simplemente enrollar las guirnaldas, sino que también se debe tener cuidado de que los LED de los doce canales estén dispuestos secuencialmente, uno tras otro. Además, si la guirnalda es multicolor, debes asegurarte de que los colores se mezclen tanto como sea posible.

En general, para una mejor visualización de los efectos, las guirnaldas de un solo color son más adecuadas, pero para crear una imagen más brillante, quizás ganen las guirnaldas de varios colores. Aquí debes decidir entre efectos más expresivos o una impresión más colorida.

Se necesita mucho tiempo para explicarlo con palabras: mire las imágenes o piense usted mismo cómo torcer los paquetes:

Los arneses están retorcidos; ahora los soldamos al controlador para que los LED del canal se sigan en serie.

8 Descripción del funcionamiento de la guirnalda.

Cuando conectas la guirnalda a la red, inmediatamente comienza a funcionar con un efecto aleatorio. Durante la operación, los efectos cambiarán aleatoriamente entre sí. Si presiona el botón, los efectos se reemplazarán secuencialmente entre sí:
1 ola
2 estrella fugaz
3 chispas
4 Desbordamiento lento
5 luces de marcha
6 luces parpadeantes
7 Todo arde y se apaga
8 Todo está en llamas
0 Todo apagado

Cuando seleccionas un efecto con el botón, permanece por más tiempo, pero luego los efectos comenzarán a reemplazarse entre sí nuevamente.

La operación desde el control remoto es similar a la operación del botón en el controlador (presione el botón en el control remoto; los efectos cambian secuencialmente). Para estudiar el botón de cualquier control remoto por infrarrojos, debe mantener presionado el botón del controlador hasta que se apague la guirnalda (aproximadamente 3 segundos), luego debe presionar el botón seleccionado en el control remoto. El código del botón se escribirá en la memoria no volátil y la guirnalda volverá a los efectos. Dado que el código se almacena en una memoria no volátil, la guirnalda "recordará" el control remoto incluso después de desconectarse de la red.

Finalmente, creo que vale la pena recordar:

¡ATENCIÓN!
El circuito guirnalda no está aislado galvánicamente de la red. voltaje peligroso 220V!
Tocar cualquier parte conductora de la guirnalda conectada a la red.
¡AMENAZA LA VIDA!
ES POR ESO:

- si no conoce bien la electricidad, no repita este diseño;
— cualquier acción (soldadura, medición, etc.) con el circuito debe realizarse únicamente después de desconectarse de la red;
— la programación del microcontrolador debe realizarse por separado de la placa (por ejemplo, en una placa especialmente ensamblada para este propósito), o alimentando la placa garland desde fuente externa voltaje 5 voltios (por ejemplo, de baterías);
— la estructura terminada debe estar bien aislada y ser inaccesible a niños pequeños y animales;
- ¡Cuidado al montar la estructura!

Y aquí hay ejemplos, por así decirlo, en vivo:

Envía los tuyos y los agregaré aquí.

árbol de navidad de AndreevKV.¡Resultó grande! 🙂

árbol de navidad de chicoka59. Todos mis amigos y especialmente los niños están encantados con ella)

¡Y además!

¡Feliz año nuevo!

Todos Que tengas buen humor y felices fiestas!

Actualización 1 (2013)

Realmente no planeaba hacer nada con esta guirnalda, ya que no tengo tiempo para ella este año, ¡pero a pedido de los lectores aún así me decidí por una pequeña actualización!

Poco cambió.
Se agregaron 6 nuevos efectos:
— una ola de 2 LED que se ejecutan en diferentes direcciones
— llenado y disminución secuencial
— llenado secuencial y disminución con una onda viajera variable
- llenado y eliminación aleatorios
- llenado y extracción aleatorios con onda viajera variable
- parpadeo agresivo
El tiempo de funcionamiento del efecto cuando se fuerza el cambio (control remoto o botón) casi se duplica.
Eso es todo. El circuito y los fusibles siguen siendo los mismos. Necesita ser recargado nuevo firmware.
- Súper guirnalda de 12 canales (actualización 2013)
- Fuente de la actualización de Supergarland.

¡¡¡Feliz llegada del 2014!!! 😉

Opciones de súper guirnaldas de lectores de blogs

Sergey Cherniy (Bleck_S)
La guirnalda se implementa en una placa utilizando componentes SMD.

¡El año nuevo llegará pronto! En las estanterías de las tiendas aparecen adornos para árboles de Navidad junto a mandarinas, dulces y champán: bolas multicolores, oropel, todo tipo de banderas, abalorios y, por supuesto, guirnaldas eléctricas.

Probablemente no puedas comprar una guirnalda normal de bombillas multicolores. Pero existen innumerables luces intermitentes diferentes, en su mayoría fabricadas en China. Las bombillas microscópicas se pueden colocar sobre un trozo de cartón o tejer una alfombra de alambres que se puede utilizar para decorar una ventana entera a la vez.

Las guirnaldas para árboles de Navidad también se distinguen por una gran variedad, especialmente en apariencia y diseño. El coste de estas guirnaldas es bajo, al igual que la potencia de las bombillas.

La mayoría de las guirnaldas tienen una pequeña caja de plástico con un botón, un cable con un enchufe y cables que van a una guirnalda de bombillas multicolores. El diseño de la guirnalda puede ser muy diverso.

La opción más sencilla y económica consiste en insertar bombillas microscópicas. En la parte posterior de la caja hay instrucciones para reemplazar las bombillas y precauciones de seguridad, aunque no se incluyen bombillas de repuesto. Estas son las guirnaldas que se venden en la cadena de tiendas Vse po 38, sin embargo, en Últimamente ya cuarenta rublos.

Figura 1. Guirnalda por cuarenta rublos.

Las guirnaldas de otro estilo tienen pequeñas pantallas de plástico en las bombillas, por ejemplo, en forma de flores transparentes con pétalos. Pero la caja con el botón sigue siendo la misma, aunque el precio de la guirnalda llega a doscientos rublos. Intentemos abrir la caja y ver qué hay dentro.

Figura 2. Aspecto de un controlador guirnalda con tres tiristores

En la parte inferior de la figura se muestran dos cables, así es como se conecta el dispositivo a la red. Aquí también hay un botón que cambia los modos de funcionamiento. En la parte superior puedes ver tres tiristores y cables que van a las guirnaldas.

En el medio del tablero hay una gota negra montada sobre una pequeña placa de circuito impreso. La placa tiene almohadillas de contacto con las que se suelda el controlador a la placa principal.

¿Cuántos tiristores hay en el tablero?

Los electrodos de control de los tiristores, que encienden cadenas de bombillas, están conectados a las salidas del microcontrolador. El microcontrolador tiene cuatro salidas, pero a menudo, en lugar de cuatro tiristores, solo se instalan tres en la placa y, en algunos casos, solo dos.

Necesario efecto visual Se logra conectando guirnaldas y colocando bombillas: en una guirnalda se sellan bombillas de dos o incluso tres colores. En la Figura 2 se muestra un tablero de este tipo.

Si miras esta placa desde la placa de circuito impreso, puedes ver que tres tiristores están soldados y debajo del cuarto hay orificios con almohadillas de contacto estañadas, como se muestra en la Figura 3. En algunos casos, los orificios ni siquiera están perforados, dicen, quien quiera perforarlo él mismo.

Figura 3. Placa controladora Garland. Espacio libre para tiristor

Aquí vale la pena señalar esta característica: si la salida del controlador no está conectada en ningún lugar, esto no significa que no esté funcionando. El programa en todos los controladores es aparentemente el mismo, se utilizan todas las salidas del controlador.

Esto se puede verificar fácilmente usando probador de puntero. Si lo pruebas presión constante en la pierna libre, la flecha saltará, se contraerá y se desviará junto con el parpadeo de otras guirnaldas. Basta con soldar el tiristor que falta en la placa y, por favor, obtenemos una guirnalda de cuatro canales completa.

El tiristor se puede tomar de una placa vieja defectuosa (sucede que el controlador queda inutilizable) o puede comprar una guirnalda adicional por cuarenta rublos y quitar el tiristor de allí. ¡Por una buena causa, los costes son extremadamente pequeños!

Diagrama esquemático de la guirnalda.

Usando una placa de circuito impreso es fácil de crear. diagrama esquemático. Hay dos tipos de esquemas, ligeramente diferentes entre sí. La primera opción, la más avanzada, se muestra en la Figura 4.

Figura 4. Controlador de guirnaldas chinas. Opción 1

Todo el circuito se alimenta a través de VD1...VD4. Las guirnaldas funcionan con voltaje pulsante y son encendidas por el controlador a través de tiristores VS1...VS4. La resistencia R1 y el microcontrolador DD1 forman un divisor de voltaje, cuya salida es un voltaje de 12V.

El condensador C1 suaviza las ondulaciones del voltaje rectificado. A través de la resistencia R7, se suministra tensión de red a la entrada del controlador 1 para sincronizar el circuito con la frecuencia de red de 220 V, lo que permite el control de fase de los tiristores. Esta sincronización permite un suave encendido y extinción de las guirnaldas. Estos son los tipos de tablas que se pueden encontrar en guirnaldas caras.

La placa que se muestra en la Figura 3 se ensambla según un circuito algo simplificado, que se muestra en la Figura 5.

Figura 5. Controlador de guirnaldas chinas. opcion 2

Inmediatamente llama la atención que solo quedan tres tiristores y solo queda un diodo del puente rectificador. Las resistencias también desaparecieron de los electrodos de control de los tiristores. Pero, en general, las propiedades del consumidor se mantuvieron iguales que en el circuito anterior, a pesar de que las bombillas se encienden solo cuando hay un semiciclo positivo de la tensión de red en el cable superior del circuito. Sin puente rectificador se obtiene una rectificación de media onda.

Esta versión del diseño del circuito es inherente a esas guirnaldas que son "las cuarenta". De hecho, eso es todo lo que se puede decir sobre el diseño del circuito de las guirnaldas de árboles de Navidad chinos.

Cómo conectar lámparas potentes.

El poder de las guirnaldas es bajo, las bombillas son simplemente microscópicas y es poco probable que quepan en ningún otro lugar que no sea el árbol de Navidad de su casa. Pero a veces necesitas conectar una guirnalda con lámparas potentes incandescentes, por ejemplo para la iluminación decorativa de fachadas de edificios. Esta modificación ya se ha dado en el artículo. El diagrama de la guirnalda modificada se muestra en la Figura 8 del artículo mencionado.

Si no quieres rehacer el tablero

Es mucho más fácil hacerlo sin reelaborar la placa del controlador. Todo lo que tiene que hacer es crear cuatro potentes interruptores de salida con aislamientos de optoacoplador y conectarlos en lugar de guirnaldas de bajo consumo. El circuito del interruptor de alimentación se muestra en la Figura 6.

Figura 6. Potente interruptor de encendido con aislamiento de optoacoplador

En realidad, el esquema es típico, funciona a la perfección y no presenta ningún inconveniente. Tan pronto como se enciende el LED del optoacoplador MOC3021, el tiristor del optoacoplador de baja potencia se abre y el electrodo de control y el ánodo del triac BTA16-600 se conectan a través de los pines 4, 6 y la resistencia R1. El triac se abre y enciende la carga, en este caso una guirnalda.

Se debe utilizar un optoacoplador sin un circuito CrossZero incorporado (detector de cruce por cero de voltaje de línea), por ejemplo, MOC3020, MOC3021, MOC3022, MOC3023. Si el optoacoplador tiene un nodo CrossZero, ¡entonces el circuito NO FUNCIONARÁ! Esto no debería olvidarse.

El triac BTA16-600 tiene los siguientes parámetros: corriente directa 16A, voltaje inverso 600V. Con una corriente de 5 A y un voltaje de 220 V, la potencia de carga ya es de un kilovatio completo. Es cierto que necesitarás instalar un triac en el radiador.

El sustrato metálico está aislado del cristal, como lo indica la letra A en la marca del triac. Esto permite instalar triacs en un radiador sin espaciadores de mica ni aisladores para el tornillo. Por cierto, son estos triac los que se utilizan en los reguladores de potencia de las aspiradoras domésticas, mientras que el radiador es soplado por el flujo de aire en la salida de la aspiradora.

Si la potencia de carga no supera los 400 W, entonces puede prescindir de un radiador. La distribución de pines del triac se muestra en la Figura 7.

Figura 7. Distribución de pines del triac BTA16-600

Este dibujo será útil al ensamblar un circuito de interruptor de alimentación. Lo mejor es montar los cuatro interruptores de alimentación en una placa de circuito impreso común. Es mejor ensamblar la resistencia R a partir de dos resistencias de 2W, lo que evitará su calentamiento excesivo. La corriente máxima del LED de entrada del optoacoplador es de 50 mA, por lo que una corriente de 20...30 mA garantizará su funcionamiento sin problemas a largo plazo.

Figura 8. Conexión de interruptores de alimentación a la placa del controlador

En general, todo es claro y sencillo. Las guirnaldas se desoldan del controlador y los circuitos de entrada de los interruptores de alimentación se sueldan en su lugar. En este caso, no es necesaria ninguna intervención en el cableado del circuito impreso del controlador. La única excepción es la soldadura de un tiristor adicional, siempre que se pueda encontrar. También tendrás que hacer un poco más grueso el cable de alimentación y el enchufe, ya que el original tiene una sección muy pequeña.

Si se instala correctamente y las piezas están en buen estado de funcionamiento, no es necesario configurar el circuito. El diseño del dispositivo es arbitrario, es mejor en Estuche de metal, de tamaño adecuado, que actuará como radiador para triacs.

Para garantizar la seguridad eléctrica, el dispositivo debe encenderse mediante cortacircuitos, o al menos un fusible.

La guirnalda ATtiny2313 es muy fácil de montar. En este sencillo artículo haremos una mini guirnalda de 4 LED.

¿Estás, nuestro botón, presionado o liberado?” – esta es exactamente la pregunta que hicimos en el último artículo. Y dependiendo del estado del botón, hicimos un efecto de 4 LED. En este artículo analizaremos una situación similar. ¡Entonces vamos!

¿Recuerdas la guirnalda china por 100 rublos?

Pulsamos el botón y el efecto de parpadeo se vuelve completamente diferente;-) Esto es exactamente lo que haremos en este artículo;-)

No haremos una guirnalda china con N número de bombillas, pero haremos un diagrama simplificado de dicha guirnalda utilizando un AVR Tiny2313 MK y cuatro LED. Usando el botón cambiaremos el efecto de parpadeo.

Entonces, nuestra tarea literalmente suena así:

Cree una guirnalda en el microcontrolador AVR Tiny2313 a partir de cuatro LED y un botón de retorno automático (un botón que se presiona y se libera solo). Presionamos el botón una vez: aparece el primer efecto de parpadeo del botón, presionamos el botón por segunda vez: aparece el segundo efecto de parpadeo, y así sucesivamente. Tendremos siete efectos en total. La condición es que mientras los LED parpadean, nuestro MK no responde al botón. Es decir, hasta que el efecto haya pasado, presionar el botón no se refleja en el efecto de ninguna manera. El efecto NO se interrumpe. Cuando finalice el efecto, solo entonces el MK procesará la pulsación del botón.

La tarea parece clara. Primero, creemos un circuito simple en Proteus. El diagrama se verá así (haga clic para ampliar, se abre en una nueva ventana):


¿Todo? ¡No, no todo! Ahora cosimos nuestro MK con una lima HEX. ¿Dónde puedo conseguirlo? De Atmel Studio 6. Pero para crearlo, primero necesitamos escribir un programa que usará nuestro MK. Cómo hacer todo esto, mira en este artículo.

A continuación se muestra el texto con comentarios:



También preste atención a la línea de código:

(_delay_ms(50); // habilita un retraso de 50 milisegundos para anti-rebote

El programa Proteus funcionaría sin esta línea de código. ¿Por qué lo pusimos entonces? La cuestión es que la situación real es un poco peor. El chivo expiatorio en este caso será el botón más inofensivo, que colocaremos en el circuito de conmutación de guirnaldas, montándolo en una placa de pruebas.

¿Qué hace el botón en el circuito según el diseño del circuito MK? Proporciona un cero o uno lógico al pin MK. ¿Entonces? Entonces. Pero en un circuito real, no cierra ni abre inmediatamente el circuito. Al cerrar o abrir el botón, no tenemos un cambio claro de los niveles de señal del uno lógico al cero y viceversa. Cambiar usando un botón se parece a esto:

Del uno lógico al cero algo como esto:


De cero a uno algo como esto:


Todo este cartel al cambiar un botón se llama rebote de contacto y molesta a los desarrolladores de dispositivos lógicos. El hecho es que el MK puede contar estos impulsos caóticos como uno lógico o como cero. Este malentendido ahora se ha resuelto con una simple línea de código.

Adjunto SIshnik, HEX y el archivo Proteus al proyecto.

Como dice la gente: prepara tu trineo en verano...
Seguramente en Año Nuevo Decoras el árbol de Navidad con todo tipo de guirnaldas, y lo más probable es que hace tiempo que se han vuelto aburridas con la monotonía de sus parpadeos. Me gustaría hacer algo para que, vaya, parpadee como en los árboles de Navidad de la capital, sólo que en menor escala. O, como último recurso, cuélgalo en la ventana para que esta belleza ilumine la ciudad desde el quinto piso.
Pero, lamentablemente, no existen tales guirnaldas a la venta.

En realidad, este es exactamente el problema que había que resolver hace dos años. Además, por pereza, pasaron 2 años desde la idea hasta la implementación, como es habitual, y todo se hizo en el último mes. En realidad, tendrás más tiempo (¿o no entiendo nada sobre psicología humana y todo se hará exactamente igual en las últimas 2 semanas antes del nuevo año?).

El resultado es un diseño bastante simple de módulos individuales con LED y uno común que transmite comandos desde la computadora a la red de estos módulos.

La primera versión del módulo fue concebida para conectarlos a la red mediante dos cables, para que hubiera menos confusión y todo eso, pero no funcionó, al final se requirió un interruptor bastante potente y de alta velocidad. Cambiar la alimentación incluso de una pequeña cantidad de módulos es una exageración obvia para la simplicidad del diseño, por lo que di preferencia al tercer cable, no es tan conveniente, pero es mucho más fácil organizar un canal de transmisión de datos.

Cómo funciona todo.

La red desarrollada es capaz de direccionar hasta 254 módulos esclavos, que en adelante se llamarán SLAVE; están conectados por solo 3 cables, como habrás adivinado: dos cables son fuente de alimentación de +12 V, común y el tercero es señal.
tienen un esquema simple:


Como puede ver, admite 4 canales: rojo, verde, azul y violeta.
Es cierto que, según los resultados de las pruebas prácticas, el color púrpura es claramente visible solo de cerca, ¡pero cómo! Además, debido a que los colores están demasiado lejos unos de otros, la mezcla de colores sólo se puede ver a 10 metros de distancia; si utilizas LED RGB la situación será algo mejor.
Para simplificar el diseño, también tuvimos que abandonar estabilización de cuarzo- en primer lugar, se elimina el rendimiento adicional, en segundo lugar, el coste del resonador de cuarzo es bastante notable y, en tercer lugar, no existe una necesidad urgente.
Se ensambla una cascada protectora en el transistor para que el puerto del controlador no quede destruido por la estática; la línea aún puede ser bastante larga, en casos extremos solo el transistor se verá afectado. La cascada se calcula en MicroCap y tiene un umbral de respuesta aproximado de aproximadamente 7 voltios y una débil dependencia del umbral de la temperatura.

Naturalmente, en la mejor tradición, todos los módulos responden a la dirección número 255; de esta manera puede apagarlos todos al mismo tiempo con un solo comando.

A la red también está conectado un módulo llamado MASTER, que actúa como intermediario entre el PC y la red de módulos esclavos SLAVE. Entre otras cosas, es una fuente de tiempo de referencia para sincronizar módulos esclavos en ausencia de estabilización de cuarzo en los mismos.

Esquema:

El circuito contiene potenciómetros opcionales: se pueden usar en un programa en una PC para una configuración conveniente y rápida de los parámetros deseados, en este momento esto sólo se implementa en Programa de prueba en forma de capacidad para asignar cualquiera de los 4 canales a cualquiera de los potenciómetros. El circuito se conecta a una PC a través de un convertidor de interfaz USB-UART en un chip FT232.

Un ejemplo de un paquete enviado a la red:

Está comenzando:

Características eléctricas de la señal: log.0 corresponde a +9...12V, y log.1 corresponde a 0...5V.

Como puede ver, los datos se transfieren secuencialmente, con velocidad arreglada 4 bits cada uno. Esto se debe al margen de error necesario en la velocidad de recepción de datos: los módulos SLAVE no tienen estabilización de cuarzo y este enfoque garantiza la recepción de datos cuando la velocidad de transmisión se desvía hasta un +-5% por encima de las compensadas. método programático basado en la medición de un intervalo calibrado al comienzo de la transmisión de datos, que proporciona resistencia a la deriva de la frecuencia de referencia en otro +-10%.

En realidad, el algoritmo de funcionamiento del módulo MASTER no es tan interesante (es bastante simple: recibimos datos a través de UART y los reenviamos a la red de dispositivos esclavos), todas las soluciones más interesantes se implementan en los módulos SLAVE, que en realidad permiten adaptarse a la velocidad de transmisión.

El algoritmo principal y más importante es la implementación de un software PWM de 4 canales y 8 bits que permite controlar 4 LED con 256 gradaciones de brillo para cada uno de ellos. La implementación de este algoritmo en hardware también determina la velocidad de transferencia de datos en la red; para comodidad del software, se transmite un bit por cada paso de la operación PWM. Una implementación preliminar del algoritmo mostró que se ejecuta en 44 ciclos de reloj, por lo que se decidió usar un temporizador configurado para interrumpir cada 100 ciclos de reloj; de esta manera, se garantiza que la interrupción se ejecutará antes de la siguiente y se ejecutará. parte del código del programa principal.
En el seleccionado frecuencia de reloj generador interno a 4,8 MHz, las interrupciones ocurren a una frecuencia de 48 kHz; esta es exactamente la velocidad de bits que tiene la red de dispositivos esclavos y el PWM se llena a la misma velocidad; como resultado, la frecuencia de la señal PWM es 187,5 Hz , lo cual es suficiente para no notar el parpadeo de los LED. Además, en el controlador de interrupciones, después de ejecutar el algoritmo responsable de generar PWM, se registra el estado del bus de datos; resulta aproximadamente en la mitad del intervalo de desbordamiento del temporizador, lo que simplifica la recepción de datos. Al comenzar a recibir el siguiente paquete de 4 bits, el temporizador se reinicia, esto es necesario para una sincronización de recepción más precisa y resistencia a las desviaciones de la velocidad de recepción.
El resultado es la siguiente imagen:

Es interesante la implementación del algoritmo para ajustar la velocidad de transmisión. Al comienzo de la transmisión, MASTER emite un pulso con una duración de 4 bits log.0, a partir del cual todos los módulos esclavos determinan la velocidad de recepción requerida mediante un algoritmo simple:

LDI tmp2, st_syn_delay DEC tmp2;<+ BREQ bad_sync ; | SBIC PINB, cmd_port; | RJMP PC-0x0003 ;-+

St_syn_delay = 60: una constante que determina la duración máxima del pulso de inicio, que se considera aproximadamente 2 veces el valor nominal (para mayor confiabilidad)

Utilizando un método experimental, se estableció la siguiente dependencia del número resultante en tmp2 cuando la frecuencia del reloj se desvía de la nominal:

4,3Mhz (-10%) 51 unidades (0x33) corresponden a 90 relojes temporizadores para devolver la velocidad de recepción a la nominal
4.8Mhz (+00%) 43 unidades (0x2B) - corresponde a 100 relojes temporizadores (nominales)
5,3 Mhz (+10%) 35 unidades (0x23): corresponde a 110 relojes temporizadores para devolver la velocidad de recepción a la nominal

A partir de estos datos se calcularon los factores de corrección para el período de interrupción del temporizador (así es como se ajusta la velocidad de recepción a la frecuencia de reloj existente del controlador):

Y(x) = 110-x*20/16
x = tmp2 - 35 = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
Y(x) = (110, 108,75, 107,5, 106,25, 105, 103,75, 102,5, 101,25, 100, 98,75, 97,5, 96,25, 95, 93,75, 92,5, 91,25, 90)

Los números se redondean a números enteros y se almacenan en la EEPROM.

Si al aplicar voltaje al módulo se mantiene la línea en el estado lógico “1”, se activará una subrutina de calibración, que permitirá medir el período de la señal PWM con un frecuencímetro u osciloscopio sin corrección y, en base a en las mediciones, juzgue la desviación de la frecuencia de reloj del controlador del módulo de la nominal, con una fuerte desviación de más del 15%. Es posible que sea necesario ajustar la constante de calibración del oscilador RC incorporado. Aunque el fabricante promete calibración en fábrica y una desviación del valor nominal no superior al 10%.

Actualmente se ha desarrollado un programa Delphi que permite reproducir un patrón previamente compilado para 8 módulos a una velocidad determinada. Además de una utilidad para trabajar con un módulo separado (incluida la reasignación de la dirección del módulo).

Firmware.
para el módulo SLAVE sólo es necesario flashear los fusibles CKSEL1 = 0 y SUT0 = 0, el resto se deben dejar sin flashear. El contenido de la EEPROM se actualiza desde el archivo RGBU-slave.eep; si es necesario, puede configurar inmediatamente la dirección deseada del módulo en la red: el byte 0 de la EEPROM, de forma predeterminada se actualiza como $FE = 254 , la dirección 0x13 contiene la constante de calibración del oscilador RC incorporado del controlador, a una frecuencia de 4,8 MHz no se carga automáticamente, por lo que es necesario leer el valor de calibración de fábrica con el programador y escribirlo en esta celda - este valor es individual para cada controlador, con grandes desviaciones de frecuencia del valor nominal, se puede cambiar la calibración a través de esta celda sin afectar el valor de fábrica.

Para el módulo MASTER, es necesario flashear sólo los fusibles SUT0 = 0, BOOTSZ0 = 0, BOOTSZ1 = 0, CKOPT = 0. Dejar el resto sin flashear.

Por último, una pequeña demostración de la guirnalda situada en el balcón:

De hecho, la funcionalidad de la guirnalda está determinada por el programa en la PC: puede crear música en color, una elegante iluminación iridiscente en la habitación (si agrega controladores LED y usa LED potentes), etc. ¿Qué planeo hacer en el futuro? Los planos incluyen una grilla de 12 módulos con LED RGB de 3 vatios, e iluminación de la habitación a base de trozos de cinta RGB de 12 voltios (solo necesitas transistores de efecto de campo para cambiar la cinta de cada módulo, 3 piezas o 4 si añades Un trozo de cinta morada, otras diferencias no serán originales).

Para administrar la red, puede escribir su propio programa, incluso en BASIC; lo principal que debe hacer el lenguaje de programación elegido es poder conectarse a puertos COM inmortales y configurar sus parámetros. En lugar de la interfaz USB, puede utilizar un adaptador con RS232, lo que ofrece la posibilidad de controlar los efectos de iluminación desde una amplia gama de dispositivos que generalmente se pueden programar.
El protocolo de intercambio con el dispositivo MASTER es bastante simple: enviamos un comando y esperamos una respuesta sobre su éxito o fracaso; si no hay respuesta durante más de unos pocos milisegundos, hay problemas con la conexión o el funcionamiento del dispositivo MASTER. , en cuyo caso es necesario realizar un procedimiento de reconexión.

Los siguientes comandos están disponibles actualmente:

0x54; símbolo "T" - comando "prueba" - verifique la conexión, la respuesta debe ser 0x2B.
0x40; el símbolo "@" es el comando "descargar y transferir". Después de emitir el comando, debe esperar la respuesta "?" seguido de 6 bytes de datos:
+0: ​​Dirección del esclavo 0..255
+1: comando al dispositivo
0x21: los bytes 2...5 contienen brillo de canal que debe aplicarse inmediatamente.
0x14: establece un tiempo de espera, después del cual el brillo en todos los canales será
se restablece a 0 si no se reciben comandos durante este tiempo. El valor del tiempo de espera está en la celda roja del canal, es decir en un byte con desplazamiento +2. El valor 0-255 corresponde a un tiempo de espera de 0-25,5 segundos por defecto, tiempo de espera = 5 segundos (escrito en EEPROM durante el firmware, también se puede cambiar allí en un byte con desplazamiento +1).
0x5A: cambia la dirección del dispositivo.
Para mayor confiabilidad, el procedimiento para cambiar la dirección debe realizarse tres veces; solo entonces se aplicará y registrará la nueva dirección en la EEPROM. Al mismo tiempo, debe tener cuidado: si asigna la misma dirección a dos dispositivos, reaccionarán sincrónicamente y podrá "separarlos" solo desconectando físicamente los módulos adicionales de la red y cambiando la dirección de los restantes. uno, o usando un programador. El valor de la nueva dirección se transmite en la celda del canal rojo, es decir en un byte con desplazamiento +2.

2: Brillo rojo 0...255
+3: Brillo verde 0...255
+4: Brillo azul 0...255
+5: Brillo violeta 0...255

0x3D; símbolo "=" - comando ADC. Después de emitir el comando, debe esperar la respuesta "?" luego se debe transmitir 1 byte: el número de canal ADC 0..7 en formato binario (los números ASCII 0..9 también son adecuados para esta capacidad, ya que se ignoran los 4 bits más altos).
En respuesta, el comando devuelve 2 bytes del resultado de la medición en el rango 0...1023.

Posibles respuestas a los comandos:
0x3F; símbolo "?" - listo para la entrada de datos, significa que el dispositivo está listo para recibir argumentos de comando
0x2B; símbolo "+" Respuesta - comando ejecutado
0x2D; símbolo "-" Respuesta: el comando no está definido o es incorrecto

Se pueden obtener más detalles del código fuente ubicado en GitHub, donde también se encuentran las últimas versiones del firmware listo para usar.



¿Te gustó el artículo? Compártelo