Skocz do zawartości

Pomocna odpowiedź

Napisano

Dzień Dobry,

Czy mógłby ktoś przygotować kod do Arduino, który działał by tak aby po daniu zasilania, na wyświetlaczu LCD powinno wyświetlić się "F.A. SYSTEM: ALL NORMAL" za to przy podaniu 5V na któryś pin na LCD wyświetliłoby się "FIRE ALARM: TROUBLE IN S.", a przy innym pinie (oczywiście jak się da 5V) na LCD wyświetli się "FIRE ALARM: SILENCED", a przy jeszcze innym pinie (oczywiście jak się da 5V) to na LCD wyświetli się "RESET IN SYSTEM"

PS. Proszę sprawdzić czy kod aby na pewno działa👌

Pozdrawiam

Oto widok jak to powinno wglądać na LCD oraz jak u mnie LCD jest podłączony do ARDUINO UNO R3.

FA LCD.png

Screenshot 2026-01-05 at 20-44-54 Kurs Arduino – Wyświetlacz tekstowy LCD 2x16 • FORBOT.png

  • Lubię! 1

@Elektroleon sprawdź czy działa...ewentualnie zmień numerację pinów jeśli chcesz i ustaw piny od LCD tak jak masz u siebie... 

#include <LiquidCrystal.h>

// RS, E, D4, D5, D6, D7
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

// Piny guzików
const int button1 = 2;
const int button2 = 3;
const int button3 = 4;
const int button4 = 5;

void setup() {
  lcd.begin(16, 2);

  pinMode(button1, INPUT_PULLUP);
  pinMode(button2, INPUT_PULLUP);
  pinMode(button3, INPUT_PULLUP);
  pinMode(button4, INPUT_PULLUP);

  showCentered("F.A. SYSTEM:", "ALL OK");
}

void loop() {

  if (digitalRead(button1) == LOW) {
    showCentered("F.A. SYSTEM:", "ALL OK");
    delay(300);
  }

  if (digitalRead(button2) == LOW) {
    showCentered("FIRE ALARM:", "TROUBLE IN S.");
    delay(300);
  }

  if (digitalRead(button3) == LOW) {
    showCentered("FIRE ALARM:", "SIGNAL SILENCED.");
    delay(300);
  }

  if (digitalRead(button4) == LOW) {
    showCentered("RESET IN", "SYSTEM");
    delay(300);
  }
}

// ---------- FUNKCJE ----------

void showCentered(const char* line1, const char* line2) {
  lcd.clear();
  printCentered(0, line1);
  printCentered(1, line2);
}

void printCentered(byte row, const char* text) {
  byte len = strlen(text);
  byte col = 0;

  if (len < 16) {
    col = (16 - len) / 2;
  }

  lcd.setCursor(col, row);
  lcd.print(text);
}

 

  • Lubię! 1

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ę »
×
×
  • Utwórz nowe...