Показать сообщение отдельно
Старый 28.10.2015, 11:03   #987
mr_nixon
Старший Пользователь
 
Регистрация: 28.02.2013
Город: Севастополь
Регион: 82
Машина: Mitsubishi
Сообщений: 222
mr_nixon is on a distinguished road
По умолчанию

Вот подскажите в чём загвоздка, начал пробовать писать СКЕТЧ, оттолкнувшись от форумных, пока как эксперемент, дабы разобраться, НО не пойму такой момент. 1 мои реле от ардуиновского комплекта 5 вольтовые и управляются сигналом LOW на включение(это предистория)
Смысл задачи при подаче ACC - Сразу включается HUB и чрез 2 секунды за ним NEXUS отключение в обратной последовательности.
Итак вопрос ПОЧЕМУ если я подключаю АРДУИНО УНО к ЮСБ, релюхи ВКЛ потом ОТКЛ а затем ВКЛ Nexus, но после подачи АСС всё начинает работать так как мне хочется.
ВОПРОС ВТОРОЙ(это ваще не догоняю)
Почему при подаче питания уже просто 8 вольт, без ЮСБ, когда схема должна начать работать автономно. реле Nexus просто сразу включается и не отключается, а реле Hab (клацнуло, я так понимаю запуск программы) и начало работать как мне хочется.
прилагаю секч
****************
int ACC = 4; // D4 вход ACC
int Nexus = 5; // D5 выход управления Nexus
int Hall = 6; // D6 выход управления датчиком холла
int flagACC = 0;
unsigned long pauseTime = 0;

void setup()
{
pinMode(ACC, INPUT);
pinMode(Nexus, OUTPUT);
pinMode(Hall, OUTPUT);
}
void loop()
{
if (digitalRead(ACC)== HIGH && flagACC == 0)
{
digitalWrite(Nexus, LOW); //вкл реле
pauseTime = millis();
flagACC = 1;
}
if (millis()-pauseTime>=2000 && flagACC == 1) // пауза 2 Сек
{
digitalWrite(Hall, LOW); //вкл реле
pauseTime = 0;
}
if (digitalRead(ACC)== LOW && flagACC == 1)
{
digitalWrite(Hall, HIGH); //откл реле
pauseTime = millis();
flagACC = 0;
}
if (millis()-pauseTime>=1000 && flagACC == 0) // пауза 2 Сек
{
digitalWrite(Nexus, HIGH); //откл реле
pauseTime = 0;
}
}
mr_nixon вне форума   Ответить с цитированием