![]() |
|
|
#1 |
|
Новый Пользователь
![]() Регистрация: 20.04.2009
Возраст: 42
Город: Петербург
Регион: 78, 98
Машина: Ford Focus
Сообщений: 16
![]() |
Есть интересный плагинчик у буржуев :
http://forums.fluxmedia.net/plugin-d...html#post47479 За неимением USB платы попробовал подключить к этому делу ардуино: Плагин общается с ком портом так: реле 1 - FF 01 01 - включение FF 01 00 - выключение ............................................ реле 16 - FF 16 01 FF 16 00 где FF - заголовок пакета, 01...16 - байты выбора реле, 01-00 - состояние реле (01 - вкл., 00 - выкл.) код для ардуино: Код:
int relay1 = 2;
int relay2 = 3;
int relay3 = 4;
int relay4 = 5;
int relay5 = 6;
int relay6 = 7;
int relay7 = 8;
int relay8 = 9;
void setup()
{
// выходы реле
pinMode(relay1,OUTPUT);
pinMode(relay2,OUTPUT);
pinMode(relay3,OUTPUT);
pinMode(relay4,OUTPUT);
pinMode(relay5,OUTPUT);
pinMode(relay6,OUTPUT);
pinMode(relay7,OUTPUT);
pinMode(relay8,OUTPUT);
// инициализация порта
Serial.begin(9600); // Baud rate 9600
}
void loop()
{
// ждем данные от плагина
if (Serial.available() > 2)
{
byte a, b, c;
a = Serial.read();
b = Serial.read();
c = Serial.read();
if (a == B11111111 && b == B00000001 && c == B00000001) digitalWrite(relay1, HIGH);
if (a == B11111111 && b == B00000001 && c == B00000000) digitalWrite(relay1, LOW);
if (a == B11111111 && b == B00000010 && c == B00000001) digitalWrite(relay2, HIGH);
if (a == B11111111 && b == B00000010 && c == B00000000) digitalWrite(relay2, LOW);
if (a == B11111111 && b == B00000011 && c == B00000001) digitalWrite(relay3, HIGH);
if (a == B11111111 && b == B00000011 && c == B00000000) digitalWrite(relay3, LOW);
if (a == B11111111 && b == B00000100 && c == B00000001) digitalWrite(relay4, HIGH);
if (a == B11111111 && b == B00000100 && c == B00000000) digitalWrite(relay4, LOW);
if (a == B11111111 && b == B00000101 && c == B00000001) digitalWrite(relay5, HIGH);
if (a == B11111111 && b == B00000101 && c == B00000000) digitalWrite(relay5, LOW);
if (a == B11111111 && b == B00000110 && c == B00000001) digitalWrite(relay6, HIGH);
if (a == B11111111 && b == B00000110 && c == B00000000) digitalWrite(relay6, LOW);
if (a == B11111111 && b == B00000111 && c == B00000001) digitalWrite(relay7, HIGH);
if (a == B11111111 && b == B00000111 && c == B00000000) digitalWrite(relay7, LOW);
if (a == B11111111 && b == B00001000 && c == B00000001) digitalWrite(relay8, HIGH);
if (a == B11111111 && b == B00001000 && c == B00000000) digitalWrite(relay8, LOW);
}
}
Последний раз редактировалось admin; 02.04.2018 в 02:50. |
|
|
|
|
|
#2 |
|
Пользователь
![]() Регистрация: 03.09.2008
Регион: 77, 97, 99, 177
Сообщений: 74
![]() |
ардруино штука прикольная, но не стоит забывать что это не писюк.
ресурсы надо экономить Код:
void loop()
{
// ждем данные от плагина
if (Serial.available() > 2)
{
byte a, b, c;
a = Serial.read();
b = Serial.read();
c = Serial.read();
if(a == 0xFF)
{
digitalWrite(b+1, (c==0x01) ? HIGH : LOW);
}
}
}
|
|
|
|
|
|
#3 |
|
Новый Пользователь
![]() Регистрация: 20.04.2009
Возраст: 42
Город: Петербург
Регион: 78, 98
Машина: Ford Focus
Сообщений: 16
![]() |
Век живи век учись
![]() |
|
|
|
|
|
#4 |
|
Старший Пользователь
![]() Регистрация: 29.05.2007
Город: Москва
Регион: 77, 97, 99, 177
Сообщений: 372
![]() |
Выложил плагин для скачивания здесь
|
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
| Опции темы | Поиск в этой теме |
|
|