"LiquidMenu" LCD ekranda menüler oluşturmak için Arduino kütüphanesi - Vara Script

"LiquidMenu" Arduino kütüphanesini indirin. Menü oluşturmak için.

"LiquidMenu" LCD ekranda menüler oluşturmak için Arduino kütüphanesi - Vara Script
LCD ekranda menüler oluşturmak için Arduino kütüphanesi

LiquidMenu kitaplığı, LiquidCrystal Arduino kitaplığını menüler oluşturma yeteneği ile sarar. Menü öğelerini hiyerarşik olarak organize edilmiş sınıflara soyutlayarak menü oluşturma sürecini basitleştirir.

Gereksinimler

  • Arduino kütüphanesi LiquidCrystal veya benzeri.
  • LiquidCrystal'i destekleyen LCD ekran (Hitachi HD44780 yonga seti veya uyumlu).
  • Arduino kartı veya uyumlu mikrodenetleyici.
  • Önerilen giriş cihazı (düğmeler, döner kodlayıcı, vb.). Örneğin, ekranı ve düğmeleri olan bir genişletme kartı.

 

 Temel sınıf hiyerarşi diyagramı

Tam sınıf hiyerarşi şeması

Menü oluşturma tamamen yapı ile ilgilidir. İlk olarak LiquidLine nesnelerine giren değişkenler/sabitler var . LiquidLine nesneler daha sonra bir parçası olan LiquidScreen nesneler. LiquidScreen nesneler daha sonra LiquidMenu nesne (ler) bir parçasıdır. Ve isteğe bağlı olarak LiquidMenu nesneleri LiquidSystem nesnesinin parçasıdır . Bu yapı, nesne oluşturulduğunda veya daha sonra sınıfların genel yöntemleri kullanılarak uygulanabilir.

LiquidLine(byte column, byte row, A &variableA...);

// Accepts 0 to 4 LiquidLine objects.
LiquidScreen(LiquidLine &liquidLine1...);

// Accepts a reference to a LiquidCrystal object, 0 to 4 LiquidScreen objects, and
// screen number to be shown first.
LiquidMenu(LiquidCrystal &liquidCrystal, LiquidScreen &liquidScreen1..., byte startingScreen = 1);

// Accepts 0 to 4 LiquidMenu objects and the number of the menu that will be shown first.
LiquidSystem(LiquidMenu &liquidMenu1..., byte startingMenu = 1);

Menüde gezinme

Menü gezintisi LiquidMenu nesnesinden veya birden fazla menü varsa LiquidSystem nesnesinden yapılır. Ekranlar ileri geri döndürülebilir veya nesnesi veya numarası ile belirli bir ekran belirtilebilir:

void LiquidMenu::next_screen();
void LiquidMenu::previous_screen();
bool LiquidMenu::change_screen(LiquidScreen &liquidScreen);

Odaklanma ve geri arama işlevleri

Ekranda gösterilen metin/sayı satırları etkileşimli olabilir. Her hatta bağlı geri arama işlevleri vardır (varsayılan olarak 8'e kadar). Kullanıcı tarafından sağlanan bir numara kullanılarak eklenirler:

bool LiquidLine::attach_function(byte number, void (*function)(void));

Bir satıra eklenmiş bir işlevi çağırmak için satırın odağı olmalıdır (satır seçilmiştir). Ekranda gösterilen satırlar arasında geçiş yapmak için şu yöntemi kullanın:

void LiquidMenu::switch_focus(bool forward = true);

Bir satır seçildiğinde, ekli işlevlerden biri şu şekilde çağrılabilir:

void LiquidMenu :: call_function (byte number);

sayı , ekli işlevlerden hangisinin çağrılması gerektiğini gösterir.

örnek

// First, we need to create a LiquidCrystal object.
LiquidCrystal lcd(LCD_RS, LCD_E, LCD_D4, LCD_D5, LCD_D6, LCD_D7);

// ----- Welcome screen -----
/// Create a string with one string literal.
LiquidLine welcome_line1(1, 0, "Hello Menu");

/// Creating a string with an integer variable.
byte oneTwoThree = 123;
LiquidLine welcome_line2(2, 1, oneTwoThree);

/// Screen formation from the above lines.
LiquidScreen welcome_screen(welcome_line1, welcome_line2);
// --------------------------

// ----- Screen 2 -----
LiquidLine some_line(0, 0, "Some line");
LiquidScreen some_screen(some_line);
// --------------------

// Now let's arrange the screens in the menu.
LiquidMenu my_menu(lcd, welcome_screen, some_screen);

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

void loop() {
    if (rightButton) {
        my_menu.next_screen();
    }
    if (leftButton) {
        my_menu.previous_screen();
    }
    if (somethingElse) {
        oneTwoThree++;
        my_menu.update;
    }
    ...
}

Download File;

https://varascript.click/6NrUjIQ

Tepkiniz nedir?

like

dislike

love

funny

angry

sad

wow