06.10.2009, 19:28 | #1 |
Новый Пользователь
Регистрация: 20.04.2009
Возраст: 41
Город: Петербург
Регион: 78, 98
Машина: Ford Focus
Сообщений: 16
|
Arduino && RelayBoard Plugin
Есть интересный плагинчик у буржуев :
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. |
06.10.2009, 20:49 | #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); } } } |
06.10.2009, 21:49 | #3 |
Новый Пользователь
Регистрация: 20.04.2009
Возраст: 41
Город: Петербург
Регион: 78, 98
Машина: Ford Focus
Сообщений: 16
|
Век живи век учись
|
24.10.2009, 14:04 | #4 |
Старший Пользователь
Регистрация: 29.05.2007
Город: Москва
Регион: 77, 97, 99, 177
Сообщений: 372
|
Выложил плагин для скачивания здесь
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | Поиск в этой теме |
|
|