Bardzo prosty alarm

Zrobiłeś coś fajnego z wykorzystaniem Arduino? Pochwal się tym!
ODPOWIEDZ
Thomas102
Młodszy majsterkowicz
Posty: 11
Rejestracja: 13 cze 2019, 16:16

Bardzo prosty alarm

Post autor: Thomas102 » 22 cze 2019, 15:55

Dzięki uprzejmości kolegów z forum, oraz po modyfikacji innych projektów udało się stworzyć coś bardzo prostego, ale myślę że z wieloma możliwościami:)

Stan niski na jednym z wejść cyfrowych generuje dowolny napis na wyświetlaczu
W innym przypadku wyświetlany jest standardowy napis

W prosty sposób można zrobić prostą centralę alarmową np na przekażnikach, czy też wykorzystać układ do zgłaszania jakichkolwiek zmian.
Można dopisać jeszcze buzzer , dołożyć zegarek zamiast itp

Jeszcze raz dziękuję za pomoc.

Kod: Zaznacz cały

 #include <Wire.h>
#include <LiquidCrystal_PCF8574.h>

#define LCD_ADDR  0x27

#define BTN_BACK  8
#define BTN_NEXT  3
#define BTN_PREV  7
#define BTN_OK    5
#define BTN_NONE  6



typedef enum {
  BACK, NEXT, PREV, OK, NONE
} ENUM_BUTTON;

LiquidCrystal_PCF8574 lcd(LCD_ADDR);

int currentMenuPos = 0;
int menuSize;
bool isInLowerLevel = false;
int tempVal;
  

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.setBacklight(255);

  pinMode(BTN_NEXT, INPUT_PULLUP);
  pinMode(BTN_PREV, INPUT_PULLUP);
  pinMode(BTN_BACK, INPUT_PULLUP);
  pinMode(BTN_OK, INPUT_PULLUP);
  pinMode(BTN_NONE, INPUT_PULLUP);

   lcd.home();
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("*AKTYWNE ALARMY*");
    lcd.setCursor(0,1);
    lcd.print("  BRAK  ");
    
}

void loop() {
int ile =0;
if(!digitalRead(BTN_BACK)){
lcd.setCursor(0,1);
lcd.print("  ALARM nr. 1   ");
ile++;   
delay(1200);
};

if(!digitalRead(BTN_NEXT)){
lcd.setCursor(0,1);
lcd.print("  ALARM nr. 2    ");
ile++;
delay(1200);
};

if(!digitalRead(BTN_PREV)){
lcd.setCursor(0,1);
lcd.print("  ALARM nr. 3    ");
ile++;
delay(1200);
};

if(!digitalRead(BTN_OK)){
lcd.setCursor(0,1);
lcd.print("  ALARM nr. 4    ");
ile++;
delay(1200);
};

if(!digitalRead(BTN_NONE)){
lcd.setCursor(0,1);
lcd.print("  ALARM nr. 5      ");
ile++;
delay(1200);
};

if(ile ==0){
lcd.setCursor(0,1);
lcd.print("BRAK AKT.ALARMOW ");
delay(1200);
} else {
ile =0;
};
}
Ostatnio zmieniony 27 cze 2019, 22:07 przez MrLewerence, łącznie zmieniany 1 raz.
Powód: kod programu w znaczniku code.

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


ODPOWIEDZ

Strony partnerskie: