Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Arduino con optoacopladores NeoPixel controlando muchos relés

Componentes y suministros

SparkFun LilyPad Rainbow LED (tira de 7 colores)
o similar (cortado de una tira de LED de 5 m / rollo DC5V ws2812b 300led Direccionable individualmente 60 ledes / m 5050 RGB ), varios proveedores
× 1
Resistencia de 10k ohmios
27 k Ohm
× 4
Foto resistor
también llamado LDR (resistencia dependiente de la luz) https://en.wikipedia.org/wiki/Photoresistor
× 4
RobotGeek Relay
o https://www.conrad.nl/p/relaiskaart-5vdc-4-voudig- voor-arduino-raspberry-pi-etc-095841
× 4
Lámpara LED
× 1
Arduino UNO
se puede usar cualquier tipo de Arduino, en esta aplicación utilicé un Node MCU ESP32
× 1

Herramientas y máquinas necesarias

Soldador (genérico)
Herramientas comunes
como estará disponible en un hogar / taller normal

Aplicaciones y servicios en línea

Película

Acerca de este proyecto

Este proyecto trata sobre el control de múltiples relés u otros actuadores desde un solo pin de salida Arduino.

Esta solución se puede utilizar para situaciones típicas en las que la cantidad de pines de salida Arduino disponibles es insuficiente y es necesario controlar más actuadores, como relés, en paralelo desde un solo pin de salida.

El principio de funcionamiento se basa en el uso de una tira de LED de varios NeoPixels (LED SMD5050 con chips controladores WS2812B). Cada píxel se combina con un LDR (resistencia dependiente de la luz), lo que crea un optoacoplador de bricolaje (tantos como desee, solo limitado por la longitud de la tira de LED, por ejemplo, 300 píxeles y una fuente de alimentación de 5 V disponible). De esta manera se crea una conversión de serie a paralelo (de 1 a muchos)

Cada LED individual se direcciona desde un mismo pin de salida Arduino. Cada LDR (en serie con una resistencia de 27kOhm), está conectado a un relé de 5V. De esta manera, muchas combinaciones de NeoPixel / LDR se pueden controlar desde 1 PIN de salida de Arduino usando la biblioteca Adafruit NeoPixel. En lugar de relés, también se podrían conectar otros dispositivos actuadores, utilizando los LDR como entrada a cualquier circuito.

Para este proyecto, que es parte de un plan más grande, se utiliza un ESP32 (NodeMCU); sin embargo, un Arduino Uno normal (o casi cualquier otro modelo) hará el trabajo.

Paso 1:hacer los optoacopladores NeoPixel

El optoacoplador de bricolaje está fabricado con los siguientes materiales:

  • una pieza de tira de LED que consta de 10 LED WS2812 (cortados de una tira más larga), solo 4 se utilizan realmente en el proyecto
  • un trozo de espuma gris oscuro
  • una tira de tablero
  • cinta de pato negra

Nota:la separación de los puntos es igual a la separación de los LED.

Es importante separar la luz de cada LED individual de los LDR de los demás para evitar "interferencias ligeras . "Resultó que en la práctica esto es casi imposible y, por lo tanto, la cantidad de luz emitida por cada LED en el estado" encendido "se ha establecido en niveles bajos en el software.

La tira de LED utilizada tiene 10 LED de largo, pero solo se usan 4 píxeles en combinación con 4 LDR en este proyecto (para simplificarlo)

Paso 2:la configuración electrónica

En la configuración de la placa de pruebas, utilicé un ESP32 (NodeMCU), sin embargo, cualquier Arduino puede hacer el trabajo.

El diagrama del circuito (hecho con Fritzing) es el siguiente:

En la práctica, esto se ve de la siguiente manera:

Como puede ver, solo se usa 1 pin de salida para controlar 4 relés en paralelo. ¡Este número puede llegar hasta 300! (tantos LED como estén disponibles en una tira de 5 m de largo).

El dispositivo ESP32 funciona a niveles de 3.3 Voltios (un regulador de voltaje de 3.3V incorporado), mientras que la tira de LED con 5050 leds funciona con 5 V. El ESP32 se alimenta con 5 V de alimentación (a través del puerto USB de un adaptador de 5V o 5V Banco de energía). Los LED NeoPixel obtienen el suministro de 5 V directamente del pin de 5 voltios del ESP32 y los relés utilizados también son del tipo 5V.

En este ejemplo, se utilizan 4 circuitos optoacopladores que controlan 4 relés conectados a una lámpara de 230 V cada uno.

El pin de salida utilizado es GPIO PIN 21 y los relés se controlan mediante los números de píxeles 1, 2, 3, 4.

Paso 3:creación del software

La función de bucle en Arduino Sketch es simple y consta de una serie de bucles "para" para mostrar diferentes patrones de conmutación de las lámparas controlando cada uno de los relés.

Para controlar un relé en particular, se llama a la siguiente función desde el código de bucle :

  void ControlRelais (int RelaisNo, bool RelaisState) {strip.setPixelColor (RelaisNo, RelaisState * 15, RelaisState * 15, RelaisState * 15); // enciende / apaga el LED que pertenece a RelaisNo strip.show (); Serial.print ("RelaisNo"); Serial.print (RelaisNo); Serial.print ("="); Serial.println (RelaisState); }  

De hecho, lo único que hace esta función es encender un LED en particular o apagarlo.

Una dirección de LED se corresponde con el número de relé respectivo. Los LED se encienden con un nivel de luz bajo, lo suficiente para activar el relé a través del LDR y, por lo tanto, evitar la contaminación lumínica (también conocida anteriormente como "intercomunicación ligera".

El resultado de todo el esfuerzo y el boceto particular, se muestra en la siguiente película:

Código

  • Esquema para controlar múltiples relés a través de optoacopladores NeoPixel de fabricación propia
Boceto para controlar múltiples relés a través de optoacopladores NeoPixel de fabricación propia Arduino
Este boceto muestra cómo controlar varios relés a través de múltiples optoacopladores hechos con NeoPixels controlados desde 1 pin de salida ARDUINO
 / * Este código para controlar múltiples Relais u otros actuadores desde un solo pin de salida Arduino, ha sido desarrollado y producido por Pierre Pennings (diciembre de 2018) Esta solución se puede utilizar para situaciones típicas en las que la cantidad de pines de salida Arduino disponibles es insuficiente y es necesario controlar más actuadores como Relais en paralelo El principio de funcionamiento se basa en el uso de una tira de varios Neopixels (LED SMD5050 con chips de controlador WS2812B) Cada píxel se junta con un LDR (resistencia dependiente de la luz), creando así un optoacoplador de bricolaje Cada LED individual se direcciona desde el mismo pin de salida ARDUINO y el LDR (en serie con una resistencia de 27kOhm ), está conectado a un Relais de 5V.De esta manera, muchas combinaciones de Neopixel / LDR se pueden controlar desde 1 PIN de salida de Arduino usando la biblioteca Adafruit Neopixel. Para este proyecto, que es parte de un plan más grande, se usa un ESP 32 (NodeMCU), sin embargo, un ARDUINO UNO normal (o casi cualquier otro modelo) hará el trabajo (por supuesto, la configuración en el código deberá ajustarse , por ejemplo, debido a diferentes asignaciones de pines) El dispositivo ESP 32 funciona a niveles de 3,3 voltios (un regulador de voltaje integrado de 3,3 V), mientras que la tira de LED con 5050 leds funciona con 5 V El ESP 32 se alimenta con 5 V de potencia (a través de el puerto USB de un adaptador de 5V o powerbank de 5v) Los LED de Neopixel obtienen el suministro de 5V directamente del pin de 5 voltios del ESP 32 y los Relais utilizados también son de 5V. En este ejemplo se utiliza una tira de LED de 10 LED, por razones de simplicidad solo se hacen 4 circuitos optoacopladores controlando 4 Relais conectados a una lámpara LED de 230V cada uno. El pin de salida utilizado es GPIO PIN 21 y los RELAIS se controlan mediante números de píxeles 1,2,3,4 Este código tiene licencia GPL3 +. * / # Include  #define NUM_LEDS 10 ////// /////////////////////////////////////////// inicializar GPIO pinconst int RelaisPin =21; // el pin 21 envía datos de control (0 -3,3 V) al Relaisint RelaisNo =0; // Variable para el control del Relais aplicablebool RelaisState =false; int r =0; Adafruit_NeoPixel strip =Adafruit_NeoPixel (NUM_LEDS, RelaisPin, NEO_RGB + NEO_KHZ800); /////////////////// //////////////////////////////////// El código de configuración que sigue, se ejecutará una vez después de "Encendido" o después una configuración RESETvoid () {Serial.begin (115200); pinMode (RelaisPin, SALIDA); // Inicializa el RelaisPin como salida strip.begin (); // Inicializar todos los LED en "apagado" para (int t =0; t <10; t ++) {strip.setPixelColor (t, 15, 15, 15); // Después del encendido, todos los LED de la tira se prueban una vez strip.show (); // tenga en cuenta que el orden de colores de la tira de LED WS2812 es R, G, B delay (500); strip.setPixelColor (t, 0, 0, 0); // Y de nuevo al apagado}} //////////////////////////////////////////// ///////// el código de ciclo que sigue, se ejecutará repetidamente hasta que "Apague" o un RESETvoid loop () {for (int r =1; r <5; r ++) // encienda el 4 Relais uno tras otro contando de 1 a 4 {retraso (500); ControlRelais (r, verdadero); retraso (500); ControlRelais (r, falso); } for (int k =4; k> 0; k--) // enciende los 4 Relais uno tras otro contando de 4 a 1 {delay (500); ControlRelais (k, verdadero); retraso (500); ControlRelais (k, falso); } for (int r =1; r <5; r ++) // enciende los 4 Relais en un patrón {for (int k =4; k> 0; k--) {delay (500); ControlRelais (r, verdadero); ControlRelais (k, verdadero); retraso (500); ControlRelais (r, falso); ControlRelais (k, falso); }}} //////////////////// FIN DEL BUCLE //////////////////////////// //////////////////////////////////// ////////////////// ///////////////////////////////////// De aquí en adelante sigue la Función para controlar el Relais (llamado desde dentro del bucle) void ControlRelais (int RelaisNo, bool RelaisState) {strip.setPixelColor (RelaisNo, RelaisState * 15, RelaisState * 15, RelaisState * 15); // enciende / apaga el LED que pertenece a RelaisNo strip.show (); Serial.print ("RelaisNo"); Serial.print (RelaisNo); Serial.print ("="); Serial.println (RelaisState); } 

Esquemas

Configurado para controlar múltiples relés u otros actuadores desde un solo pin Arduino neopixel_optocoupler_relais__hNIrhGIMtD.fzz

Proceso de manufactura

  1. Control de un efecto con sensores reales
  2. Panel LCD con Arduino para Flight Simulator
  3. Panel de interruptores / LED con Arduino para FS2020
  4. Diversión con giroscopio con NeoPixel Ring
  5. Persianas inteligentes
  6. ¡Arduino con Bluetooth para controlar un LED!
  7. Sensor de obstáculos simple con Arduino
  8. Controlar un robot Roomba con Arduino y un dispositivo Android
  9. Arduino Cuadrúpedo
  10. Control del servomotor con Arduino y MPU6050
  11. Control del brillo del LED usando Bolt y Arduino