BeeKeyPro Luty 3, 2025 Udostępnij Luty 3, 2025 @PanMajster A teraz jeszcze możesz spróbować dezaktywowanie alarmu przyciskiem.
PanMajster Luty 4, 2025 Udostępnij Luty 4, 2025 @BeeKeyPro nawet nad tym myślałem, jeszcze twoja sugestia więc chyba to znak że muszę spróbować 1
BeeKeyPro Luty 4, 2025 Udostępnij Luty 4, 2025 47 minut temu, PanMajster napisał: nawet nad tym myślałem, jeszcze twoja sugestia więc chyba to znak że muszę spróbować A w przyszłości, to już w ogóle można sobie to rozbudowywać. Np. wyłączanie alarmu pilotem, lub wpisaniem kodu (z wyświetlaczem LCD).
PanMajster Luty 4, 2025 Udostępnij Luty 4, 2025 @BeeKeyPro #define LED_R 10 #define LED_G 11 #define LED_B 12 #define KONTAKTRON 2 #define ALARM A5 #define RESET 3 bool SYRENA = false; void setup() { Serial.begin(9600); Serial.println("Witam w systemie alarmowym"); pinMode(LED_R, OUTPUT); //Poszczególne piny sterujące diodą jako wyjścia pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT); pinMode(KONTAKTRON, INPUT_PULLUP); //Kontaktron jako wejście pinMode(ALARM, OUTPUT); // Konfiguracja A5 jako wyjście pinMode(RESET, OUTPUT); digitalWrite(LED_R, LOW); //Dioda wyłączona digitalWrite(LED_G, LOW); digitalWrite(LED_B, LOW); digitalWrite(ALARM, LOW); digitalWrite(RESET, INPUT_PULLUP); } void loop() { if (digitalRead(RESET) == LOW && digitalRead(KONTAKTRON) == LOW) { // Wciśnięto RESET I czujnik zwarty SYRENA = false; // Wyłącz syrenę digitalWrite(LED_R, LOW); // Wyłącz czerwoną diodę digitalWrite(LED_G, HIGH); // Włącz zieloną diodę Serial.println("RESET"); delay(50); } else if (digitalRead(KONTAKTRON) == LOW && SYRENA == false) { // wszystko ok czekamy na dzialanie digitalWrite(LED_R, LOW); digitalWrite(LED_G, HIGH); Serial.println("kontaktron"); delay(5); } else if(digitalRead(KONTAKTRON) == HIGH || SYRENA == true) { tone(ALARM, 4000); //Wygeneruj sygnał o częstotliwości 4000 Hz na pinie A5 delay(100); noTone(ALARM); delay(100); digitalWrite(LED_R, HIGH); //Stan ALARM - dioda czerwona digitalWrite(LED_G, LOW); SYRENA = true; // blokujemy sygnal syreny jako włączony. Warunek jest wciąż spełniony Serial.println("ALARM"); delay(5); }} Wszystko działa wiec chyba jest ok. Udało sie dołozyć guzik resetujacy który działa tylko wtedy gdy "pozamykamy wszystkie okna " kontrakton 1
PanMajster Luty 5, 2025 Udostępnij Luty 5, 2025 (edytowany) Zadanie 4.4 #define LED_R 10 #define PIR 2 volatile bool ileRazy = false; // Zmienna przechowująca stan diody (true - włączona, false - wyłączona) void setup() { pinMode(LED_R, OUTPUT); pinMode(PIR, INPUT); attachInterrupt(digitalPinToInterrupt(PIR), alarm, RISING); } void loop() { digitalWrite(LED_R, ileRazy ); // Ustawienie stanu diody } void alarm() { ileRazy = !ileRazy ; // Zmiana stanu diody na przeciwny } Edytowano Luty 5, 2025 przez PanMajster
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »