Всем привет! Прошу прощения за ламерские вопросы, но, надеюсь, кто-нибудь поможет) Суть проблемы в следующем: имеем pro Mini, написал скетч, в котором при подаче на 13ый пин напряжения включаются 9ый и 12ый с разной задержкой. После отключения 13ого, оба отключаются с определенной задержкой. При подключении LED к 9 и 12 все работает верно (загораются и гаснут с нужной задержкой), но если вместо LED ставлю 5и-вольтовую релюшку (через транзисторный ключ), то она включается сразу после подачи питания на 13ый, а выключается сразу после снятия питания, никакими задержками даже и не пахнет. Подключаю как на этой схеме подключены реле к 8 и 9. (странно то, что это уже второй раз, как я использую данный метод, прошлый раз все было нормально)
упс, извиняюсь) Код (Text): //Библиотеки #include <Bounce.h> //устраняет дребезг кнопок #include <Timer.h> //Таймер //Входы int ACCPin = 13; //Вход сигнала ACC //Выходы int relay = 9; // Включение vdd_cam, отключение номера int easy = 12; // Включение изикапа //Убираем дребезг Bounce ACCButton = Bounce(ACCPin,50); //Убираем дребезг сигнала ACC //Переменные int delayRelayOn = 300; //Задержка вкл реле int delayRelayOff = 5000; //Задержка выкл реле //Таймеры Timer timer; int powerOnTimer; int powerOffTimer; int relayTimerOn; int relayTimerOff; int easyTimerOff; void setup () { pinMode (ACCPin, INPUT); digitalWrite (ACCPin, HIGH); pinMode (relay, OUTPUT); pinMode (easy, OUTPUT); Serial.begin(9600); } void loop() { ACC_Control(); timer.update(); } void ACC_Control() { if (ACCButton.update()) { if (ACCButton.read() == LOW) { timer.stop(powerOffTimer); powerOnTimer = timer.after(100, doPowerOn); } if (ACCButton.read() == HIGH) { powerOffTimer = timer.after(delayRelayOff, doPowerOff); } } } void doPowerOn() { digitalWrite(easy, HIGH); //вкл изик relayTimerOn = timer.after(delayRelayOn, doRelayOn); //вкл реле с задержкой Serial.println ("easy on"); } void doRelayOn() { digitalWrite(relay, HIGH); Serial.println ("relay on"); } void doPowerOff() { digitalWrite (relay, LOW); Serial.println ("relay off"); easyTimerOff = timer.after(delayRelayOn+300, doEasyOff); } void doEasyOff() { digitalWrite(easy, LOW); //выкл изик Serial.println ("easy off"); }