// Ustalenie pinu czujnika nachylenia #define CZUJNIK_PIN 2 // Ustalenie pinu diody LED #define LED_PIN 13 // Ustalenie pinu głośniczka piezo #define PIEZO_PIN 3 // ustalenie czasu czułości czujnika #define CZUJNIK_TIME 100 // zmienna przechowuje czas przełączenia czujnika unsigned long sensor_time; // funkcja uruchamiana, gdy alarm jest włączony void alarm_on() { digitalWrite(LED_PIN, HIGH); // Włączenie LED tone(PIEZO_PIN, 600); // Dzwięk alarmu } // funkcja uruchamiana gdy alarm jest wyłączony void alarm_off() { digitalWrite(LED_PIN, LOW); //Wyłączenie LED noTone(PIEZO_PIN); // Wyłączenie dźwięku alarmu } // funkcja sprawdzająca stan czujnika void check_sensor() { // Sprawdzanie stanu czujnika if (digitalRead(CZUJNIK_PIN) == HIGH) { // Zdarzenie jeśli wyłączony if (sensor_time == 0) // Sprawdzenie czy stan został zmieniony { sensor_time = millis(); // zapamiętanie czasu uaktywnienia czujnika } // Warunek czy stan czujnika trwa określony czas else if (millis() - sensor_time > CZUJNIK_TIME) { alarm_on(); } } else { // Zdarzenie jeśli włączony sensor_time = 0; alarm_off(); } } void setup() { // Ustawienie wejścia dla czujnika nachylenia pinMode(CZUJNIK_PIN, INPUT); // Włączenie wbudowanego rezystora Pull Up. digitalWrite(CZUJNIK_PIN, HIGH); pinMode(LED_PIN, OUTPUT); } void loop() { check_sensor(); }