Официальный сайт компании Arduino по адресу arduino.cc
Стыдно конечно.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Добрый день дорогие радиолюбители, не знаю, что со мной произошло толи бывшая отравила мои лобные доли трупным ядом который ей дал любовник патологоанатом толи геопатогенная зона, ну скорее всего я просто от природы не острый, но это всё лирика, а задача перед мной стала архи легкая и бытовая, жизнь идёт надо дом автоматизировать, многое уже сделал но вот обычная простая задача поставила меня в тупик:
Есть шкаф с подсветкой.
Необходимо чтобы после 15 секунд как дверь открыта срабатывал звуковой сигнал.
я пытался сделать это через прерывание городил кучу строк... короче говоря. подскажите как сделать, спасибо.
Я приведу свой "код" просто что бы вы господа не думали что я не пытался. Только не пытайтесь его понять. Если можно подскажите как написать правильный. Спасибо.
const int ledPin = 7; const int ledPin2 = 8; const int buttonPin =2; int Bstate = LOW; unsigned long previousMillis = 0; const long interval = 2500; const long interval_3 = 300; int ledState = LOW; //int butonState = digitalRead(buttonPin); void setup() { pinMode(ledPin, OUTPUT); pinMode(ledPin2, OUTPUT); pinMode(buttonPin, INPUT); //digitalWrite(ledPin, HIGH); //attachInterrupt(buttonPin, swap, FALLING); } void loop() { Bstate = digitalRead(buttonPin); // unsigned long currentMillis = millis(); // unsigned long currentMillis2 = millis(); Serial.begin(9600); Serial.println(Bstate); if (Bstate == HIGH) delay(2000); Bstate = digitalRead(buttonPin); if (Bstate == LOW) digitalWrite(ledPin, LOW); Bstate = digitalRead(buttonPin); if (Bstate == HIGH) delay(2000); Bstate = digitalRead(buttonPin); if (Bstate == LOW) digitalWrite(ledPin, LOW); Bstate = digitalRead(buttonPin); if (Bstate == HIGH) delay(2000); Bstate = digitalRead(buttonPin); if (Bstate == LOW) digitalWrite(ledPin, LOW); delay(10); Bstate = digitalRead(buttonPin); if (Bstate == HIGH) delay(2000); Bstate = digitalRead(buttonPin); if (Bstate == LOW) digitalWrite(ledPin, LOW); delay(10); Bstate = digitalRead(buttonPin); if (Bstate == HIGH) delay(2000); Bstate = digitalRead(buttonPin); if (Bstate == LOW) digitalWrite(ledPin, LOW); delay(10); Bstate = digitalRead(buttonPin); if (Bstate == HIGH) delay(2000); Bstate = digitalRead(buttonPin); if (Bstate == LOW) digitalWrite(ledPin, LOW); delay(10); Bstate = digitalRead(buttonPin); if (Bstate == HIGH) delay(2000); Bstate = digitalRead(buttonPin); if (Bstate == LOW) digitalWrite(ledPin, LOW); delay(10); Bstate = digitalRead(buttonPin); if (Bstate == HIGH) { delay(2000); digitalWrite(ledPin, HIGH); Bstate = digitalRead(buttonPin); } else digitalWrite(ledPin, LOW); delay(2000); Bstate = digitalRead(buttonPin); if (Bstate == LOW) digitalWrite(ledPin, LOW); } // if (currentMillis - previousMillis >= interval) // previousMillis = currentMillis;
Это же не проект. Это в раздел "Программирование".
В сущности вам нужно две вещи: активировать tone() после истечения интервала (строка 108) и делать то, что в строке 109 при условии, что дверь закрыта (bState == HIGH, наверное).
А что Вас собственно интересует? Как вот такую штуку подключить?
Так ей не нужна функция tone(). Включайте её через транзистор от 1,5А (например, SS8050D) и просто включайте - сама гудеть будет. Схема нужна? Могу поделиться ии схемой и скетчем.