Показать сообщение отдельно
Старый 12.02.2016, 11:50   #744
Trantor
Старший Пользователь
 
Регистрация: 15.02.2013
Город: Москва
Регион: 77, 97, 99, 177
Машина: x-trail T30
Сообщений: 400
Trantor is on a distinguished road
По умолчанию

В программе есть переменные, в которых хранится состояние реле, это
relays_state1,2,3,4
Вставляем в программу в программу в начало процедуры setup
pinMode(x, OUTPUT), где х - номер пина.
Далее в процедуру relay_state добавляем следующий кусок для каждого реле:
------------------------------------------------
if (relays_state1 && 0x01)==0 //проверяем наличие нулевого бита
{
digitalWrite(х, LOW); //сбрасываем выход
}
else
{
digitalWrite(х, HiGH);//устанавливаем выход
}
--------------------------------------------

для реле 2 использовать 0x02, 3 - 0x04, 4-0x08 и так далее
P.S.
Есть правда одна тонкость: Bersenev отправляет их на порт в обратном порядке (4,3,2,1), почему так - не знаю, и есть вероятность что первое реле на самом деле находится relays_state4, также возможен обратный порядок битов и тогда проверять надо (relays_state4 && 0x80) для первого реле, (relays_state4 && 0x40) для второго и так далее. Также есть вероятность
__________________
http://www.pccar.ru/showthread.php?t=18648 мой проект.
Icar DS , Cityguide,bGEO, Семь дорог.
I3 3220T, 4Gb, W10х32. SSD 128Gb

Последний раз редактировалось Trantor; 12.02.2016 в 16:36.
Trantor вне форума   Ответить с цитированием