Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Arduino с оптопарами NeoPixel, управляющими множеством реле

Компоненты и расходные материалы

SparkFun LilyPad Rainbow LED (полоска из 7 цветов)
или аналогичный (вырезан из светодиодной ленты 5 м / рулон DC5V ws2812b 300led с индивидуальной адресацией 60 светодиодов / м 5050 RGB ), различные поставщики
× 1
Резистор 10 кОм
27 кОм
× 4
Фоторезистор
также называется LDR (светозависимый резистор) https://en.wikipedia.org/wiki/Photoresistor
× 4
RobotGeek Relay
или https://www.conrad.nl/p/relaiskaart-5vdc-4-voudig- voor-arduino-raspberry-pi-etc-095841
× 4
Светодиодная лампа
× 1
Arduino UNO
можно использовать любой тип Arduino, в этом приложении я использовал Node MCU ESP32
× 1

Необходимые инструменты и машины

Паяльник (универсальный)
Общие инструменты
как будет доступно в обычном доме / мастерской

Приложения и онлайн-сервисы

Фильм

Об этом проекте

Этот проект посвящен управлению несколькими реле или другими исполнительными механизмами с одного выходного контакта Arduino.

Это решение можно использовать в типичных ситуациях, когда количество доступных выходных контактов Arduino недостаточно и требуется параллельное управление большим количеством исполнительных механизмов, таких как реле, с одного выходного контакта.

Принцип работы основан на использовании светодиодной ленты из ряда NeoPixels (светодиоды SMD5050 с микросхемами контроллера WS2812B). Каждый пиксель соединяется с LDR (светозависимым резистором), создавая, таким образом, оптопары DIY (столько, сколько вы хотите, ограничивается только длиной светодиодной ленты, например, 300 пикселей, и доступным источником питания 5 В). Таким образом создается последовательное преобразование в параллельное (от 1 до многих)

К каждому отдельному светодиоду обращаются с одного и того же выходного контакта Arduino. Каждый LDR (последовательно с резистором 27 кОм) подключен к реле на 5 В. Таким образом, можно управлять многими комбинациями NeoPixel / LDR с помощью 1 выходного PIN-кода Arduino с помощью библиотеки Adafruit NeoPixel. Вместо реле могут быть подключены другие исполнительные устройства, использующие LDR в качестве входа в любую цепь.

Для этого проекта, который является частью более крупного плана, используется ESP32 (NodeMCU); однако обычная Arduino Uno (или почти любая другая модель) справится с этой задачей.

Шаг 1. Изготовление оптопар NeoPixel

Оптрон своими руками изготовлен из следующих материалов:

  • кусок светодиодной ленты, состоящий из 10 светодиодов WS2812 (вырезанных из более длинной полосы), только 4 реально используются в проекте.
  • кусок темно-серой пены
  • полоса макета
  • черная утиная лента

Примечание:расстояние между точками равно расстоянию между светодиодами.

Важно отделить свет каждого отдельного светодиода от LDR других, чтобы избежать перекрестных наводок света . . «Оказалось, что на практике это практически невозможно, и поэтому количество света, излучаемого каждым светодиодом во включенном состоянии, было установлено в программном обеспечении на низкий уровень.

Используемая светодиодная лента состоит из 10 светодиодов, но в этом проекте используются только 4 пикселя в сочетании с 4 LDR (для простоты)

Шаг 2. Электронная установка

В макете я использовал ESP32 (NodeMCU), однако с этой работой справится любой Arduino.

Принципиальная схема (сделанная с помощью Fritzing) выглядит следующим образом:

На практике это выглядит следующим образом:

Как видите, только 1 выходной контакт используется для параллельного управления 4 реле. Это число может доходить до 300! (столько светодиодов, сколько доступно на полосе длиной 5 м).

Устройство ESP32 работает с уровнями 3,3 В (встроенный стабилизатор напряжения 3,3 В), а светодиодная лента с 5050 светодиодами работает от 5 В. ESP32 получает питание 5 В (через порт USB от адаптера 5 В или 5 В. внешний аккумулятор). Светодиоды NeoPixel получают питание 5 В напрямую от 5-вольтового вывода ESP32, и используемые реле также относятся к типу 5 В.

В этом примере используются 4 цепи оптопары, управляющие 4 реле, каждое из которых подключено к одной лампе 230 В.

Используемый выходной контакт - это GPIO PIN 21, а реле управляются через номера пикселей 1, 2, 3, 4.

Шаг 3. Создание программного обеспечения

Функция цикла в Arduino Sketch проста и состоит из ряда циклов «для», показывающих различные шаблоны переключения ламп путем управления каждым из реле.

Для управления конкретным реле из кода цикла вызывается следующая функция:

  void ControlRelais (int RelaisNo, bool RelaisState) {strip.setPixelColor (RelaisNo, RelaisState * 15, RelaisState * 15, RelaisState * 15); // включение / выключение светодиода RelaisNo strip.show (); Serial.print («RelaisNo»); Serial.print (RelaisNo); Serial.print ("="); Serial.println (RelaisState); }  

Фактически все, что делает эта функция, - это либо включает определенный светодиод, либо выключается.

Адрес светодиода соответствует номеру соответствующего реле. Светодиоды горят при слабом уровне освещенности, достаточном для срабатывания реле через LDR и, таким образом, избегая светового загрязнения (также упоминаемого выше как «световой перекрестный ток».

Результат всех усилий и конкретный набросок показан в следующем фильме:

Код

  • Схема управления несколькими реле с помощью самодельных оптопар NeoPixel
Эскиз для управления несколькими реле с помощью самодельных оптопар NeoPixel Arduino
В этом эскизе показано, как управлять несколькими реле с помощью нескольких оптопар, созданных с помощью NeoPixels, управляемых с 1 выходного контакта ARDUINO
 / * Этот код для управления несколькими реле или другими исполнительными механизмами с одного выходного контакта Arduino был разработан и произведен Пьером. Пеннингс (декабрь 2018 г.) Это решение можно использовать в типичных ситуациях, когда количество доступных выходных контактов Arduino недостаточно и требуется параллельное управление дополнительными исполнительными механизмами, такими как Relais. Принцип работы основан на использовании полосы из нескольких неопикселей. (Светодиоды SMD5050 с микросхемами контроллера WS2812B) Каждый пиксель объединяется с LDR (светозависимым резистором), создавая тем самым DIY-оптопару. К каждому отдельному светодиоду обращаются с одного и того же выходного контакта ARDUINO и LDR (последовательно с резистором 27 кОм. ), подключен к реле 5V. Таким образом, можно управлять многими комбинациями Neopixel / LDR с 1 выходного PIN-кода Arduino с помощью библиотеки Adafruit Neopixel. Для этого проекта, который является частью более крупного плана, используется ESP 32 (NodeMCU), однако обычная ARDUINO UNO (или почти любая другая модель) выполнит эту работу (конечно, настройки в коде необходимо будет скорректировать. (например, из-за разного назначения контактов) Устройство ESP 32 работает с уровнями 3,3 В (встроенный регулятор напряжения 3,3 В), а светодиодная лента со светодиодами 5050 работает от 5 В. На ESP 32 подается питание 5 В (через USB-порт от адаптера 5V или powerbank 5V) Светодиоды Neopixel получают питание 5V напрямую от 5-вольтового контакта ESP 32, а используемые Relais также относятся к типу 5V. В этом примере используется светодиодная лента из 10 светодиодов, для простоты сделано только 4 цепи оптопары, управляющие 4 реле, подключенными к одной светодиодной лампе 230 В. каждая. Используемый выходной контакт - это GPIO PIN 21, а RELAIS управляется через номера пикселей 1,2,3,4. Этот код под лицензией GPL3 +. * / # Include  #define NUM_LEDS 10 ////// /////////////////////////////////////////// инициализировать константу вывода GPIO int RelaisPin =21; // вывод 21 отправляет управляющие данные (0–3,3 В) на Relaisint RelaisNo =0; // Переменная для соответствующего Relais, которым необходимо управлять bool RelaisState =false; int r =0; Adafruit_NeoPixel strip =Adafruit_NeoPixel (NUM_LEDS, RelaisPin, NEO_RGB + NEO_KHZ800); ///////////////// ////////////////////////////////// Следующий код настройки будет запущен один раз после "Power On" или после установка RESETvoid () {Serial.begin (115200); pinMode (RelaisPin, ВЫХОД); // Инициализирует RelaisPin как выходную полосу .begin (); // Инициализируем все светодиоды в положение "выключено" for (int t =0; t <10; t ++) {strip.setPixelColor (t, 15, 15, 15); // После включения питания все светодиоды полосы проверяются один раз strip.show (); // обратите внимание, что порядок цветов светодиодной ленты WS2812 - R, G, B delay (500); strip.setPixelColor (t, 0, 0, 0); // И обратно в выключенное состояние}} ////////////////////////////////////////// ///////// код цикла, который следует за ним, будет выполняться многократно до тех пор, пока не будет выполнено «Power Off» или RESETvoid loop () {for (int r =1; r <5; r ++) // включите 4 реле один за другим счет от 1 до 4 {delay (500); ControlRelais (r, истина); задержка (500); ControlRelais (r, ложь); } for (int k =4; k> 0; k--) // поочередно включаем 4 реле, считая от 4 до 1 {delay (500); ControlRelais (k, истина); задержка (500); ControlRelais (k, ложь); } for (int r =1; r <5; r ++) // включить 4 реле в шаблоне {for (int k =4; k> 0; k--) {delay (500); ControlRelais (r, истина); ControlRelais (k, истина); задержка (500); ControlRelais (r, ложь); ControlRelais (k, ложь); }}} ////////////////// КОНЕЦ ПЕТЛИ ////////////////////////// ////////////////////////////////////////////////// /////////////////////////////////// Далее следует функция для управления реле (вызывается из цикла) void ControlRelais (int RelaisNo, bool RelaisState) {strip.setPixelColor (RelaisNo, RelaisState * 15, RelaisState * 15, RelaisState * 15); // включение / выключение светодиода RelaisNo strip.show (); Serial.print («RelaisNo»); Serial.print (RelaisNo); Serial.print ("="); Serial.println (RelaisState); } 

Схема

Настройка для управления несколькими реле или другими исполнительными механизмами с одного вывода Arduino neopixel_optocoupler_relais__hNIrhGIMtD.fzz

Производственный процесс

  1. Управление эффектом с помощью реальных датчиков
  2. ЖК-панель с Arduino для симулятора полета
  3. Переключатель / светодиодная панель с Arduino для FS2020
  4. Удовольствие от гироскопа с кольцом NeoPixel
  5. Умные жалюзи
  6. Arduino с Bluetooth для управления светодиодом!
  7. Простой датчик препятствий с Arduino
  8. Управление роботом Roomba с помощью Arduino и устройства Android
  9. Четвероногий Arduino
  10. Управление серводвигателем с помощью Arduino и MPU6050