Управляйте до 65 280 реле с помощью Arduino!
Компоненты и расходные материалы
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Приложения и онлайн-сервисы
|
Об этом проекте
Используйте расширитель ввода-вывода и расширитель реле для управления до 65 280 реле.
Нужно добавить в свой проект много реле? Тогда вам понадобится расширитель ввода-вывода с расширителями реле. Каждый расширитель ввода-вывода может управлять до 16 последовательно подключенными расширителями реле, что в общей сложности составляет 256 реле. Затем, соединив вместе 255 расширителей ввода-вывода, вы сможете выборочно управлять до 65 280 реле.
Управляющие реле с одним расширителем ввода-вывода <рисунок>
Список возможностей
- Используйте дешевые релейные платы Arduino 16 за 15 долларов.
- Простые в использовании команды управления реле.
- Управляйте отдельным реле или банком одновременно.
- Драйвер не требуется. Экономьте место для кода.
- Нет места для данных для поддержания состояния реле.
- Никакого дополнительного источника питания не требуется.
Детали, необходимые для создания банка реле
- Расширитель ввода-вывода
- Расширитель ввода-вывода
- Расширитель реле
- Релейная плата Arduino 16
Схема подключения <рисунок>
Примечание. На приведенной выше схеме подключения IO Expander и Arduino Nano получают питание от первой релейной платы. Все релейные расширители получают питание от релейной платы, к которой они подключены.
/ * IO Expander
*
* Control 64 Relays
*
* /
#include
# include "IOExpander.h"
#include
// # определить SERIAL_DEBUG
#define MAX_RELAYS 64
#ifdef SERIAL_DEBUG
SoftwareSerial swSerial ( 8,7);
#endif
char cmd [10];
void setup ()
{
Serial.begin (115200);
# ifdef SERIAL_DEBUG
swSerial.begin (115200);
swSerialEcho =&swSerial;
#endif
wdt_enable (WDTO_8S);
sprintf (cmd, "eb% d", MAX_RELAYS / 16);
SerialCmdDone (cmd);
}
void loop ()
{
static int i =1;
sprintf (cmd, "e% df", i);
SerialCmdDone (cmd);
if (i ++> =MAX_RELAYS) i =1;
sprintf (cmd, "e% do", i);
SerialCmdDone (cmd);
delay (100);
wdt_reset ();
}
Управление реле с несколькими расширителями ввода-вывода
Другой способ управления реле - использование нескольких расширителей ввода-вывода. Это дает нам возможность распределять датчики и реле по центральной или звездообразной сети, но при этом соединять все расширители ввода-вывода на одной последовательной шине. Если вам необходимо разделить расширители ввода-вывода на расстояние до 4000 футов, используйте расширители ввода-вывода, как показано ниже, со стандартным синим сетевым проводом Cat5.
<рисунок>
Схема подключения <рисунок>
Примечание. На приведенной выше схеме подключения все расширители ввода-вывода и Arduino Nano получают питание от первой релейной платы через последовательную шину. Все релейные расширители получают питание от релейной платы, к которой они подключены.
/ * IO Expander
*
* Relay Bonnaza с IO Expanders!
*
* /
#include
# include "IOExpander9Bit.h"
#include
#define MAX_BOARDS 4
char cmd [10];
void setup ()
{
Serial9Bit.begin (115200, SERIAL_9N1);
Serial9Bit.write (0); // Установите 9-битные расширители ввода-вывода
wdt_enable (WDTO_8S);
for (int board =1; board <=4; board ++)
SerialCmdDone (board, "eb1");
}
void loop ()
{
static int board =1;
static int relay =1;
sprintf (cmd, "e% df" , relay);
SerialCmdDone (board, cmd);
if (++ relay> 16) {
relay =1;
if (++ board> MAX_BOARDS) board =1;
}
sprintf (cmd, "e% do", relay);
SerialCmdDone (board, cmd);
delay (100);
wdt_reset ( );
}
Так зачем мне управлять таким количеством реле?
Одно из таких приложений - аквапоника или гидропоника. Необходимо автоматизировать множество датчиков и устройств, вплоть до каждой грядки или отдельного растения. Для этого требуется экстремальный ввод-вывод, и расширитель ввода-вывода обеспечивает это.
<рисунок>Так что приобретите расширитель ввода-вывода сегодня и соберите свою систему!
Код
- Управление 64 реле с помощью одного расширителя
- Управление 64 реле с помощью нескольких расширителей
Управление 64 реле с помощью одного расширителя C / C ++
/ * IO Expander * * Control 64 Relays * * / # include#include "IOExpander.h" #include // # define SERIAL_DEBUG # define MAX_RELAYS 64 # ifdef SERIAL_DEBUGSoftwareSerial swSerial (8,7); # endifchar cmd [10]; void setup () {Serial.begin (115200); # ifdef SERIAL_DEBUG swSerial.begin (115200); swSerialEcho =&swSerial; #endif wdt_enable (WDTO_8S); sprintf (cmd, «eb% d», MAX_RELAYS / 16); SerialCmdDone (cmd);} void loop () {static int я =1; sprintf (cmd, "e% df", i); SerialCmdDone (cmd); если (i ++> =MAX_RELAYS) i =1; sprintf (cmd, «e% do», i); SerialCmdDone (cmd); задержка (100); wdt_reset ();}
Управление 64 реле с несколькими расширителями C / C ++
/ * IO Expander * * Relay Bonnaza с IO Expanders! * * / # include#include "IOExpander9Bit.h" #include #define MAX_BOARDS 4char cmd [10]; void setup () {Serial9Bit.begin (115200, SERIAL_9N1); Serial9Bit.write (0); // Установить 9-битные расширители ввода-вывода wdt_enable (WDTO_8S); for (int board =1; board <=4; board ++) SerialCmdDone (board, «eb1»);} void loop () {static int board =1; статическое реле int =1; sprintf (cmd, "e% df", relay); SerialCmdDone (доска, cmd); если (++ реле> 16) {реле =1; если (++ доска> MAX_BOARDS) доска =1; } sprintf (cmd, "e% do", relay); SerialCmdDone (доска, cmd); задержка (100); wdt_reset ();}
Схема
Производственный процесс
- Включение Alexa Control для потолочного вентилятора
- Управление монетоприемником с помощью Arduino
- Центр управления Arduino
- Arduino с Bluetooth для управления светодиодом!
- Управление увлажнителем Arduino
- Arduino Nano:управление двумя шаговыми двигателями с помощью джойстика
- Управляйте своим светодиодом с помощью Cortana
- ThimbleKrox - управление мышью пальцами
- Управление световой системой с помощью смартфона
- 4-контактный ШИМ-контроль вентилятора, 25 кГц, с Arduino Uno