Jak utworzyć menu za pomocą Arduino na LCD
Tworzenie menu za pomocą Arduino może być przydatne do wykonywania wielu zadań w razie potrzeby. Praktycznie widzimy użycie menu w naszych telefonach komórkowych lub dowolnym inteligentnym urządzeniu zdolnym do wykonywania określonych funkcji. Krótko mówiąc, menu jest listą opcji lub akcji, które można wykonać z odpowiednim urządzeniem, więc użyliśmy następującego sprzętu do tworzenia menu za pomocą Arduino na LCD:
Schematy podano poniżej:
Zespół sprzętu do tworzenia menu za pomocą Arduino
Złożliśmy komponenty w taki sposób, że najpierw umieściliśmy wszystkie komponenty na tablicy chleba, a następnie za pomocą przewodów łączących każdy komponent jest połączony z Arduino. Opublikowaliśmy zdjęcie poniżej dla montażu sprzętu, za pomocą którego połączenia komponentów można łatwo zrozumieć.
Zielone przewody łączą szpilki danych LCD z Arduino, podczas gdy szare przewody łączą przyciski z Arduino. Czujnik temperatury jest bezpośrednio podłączony do Arduino bez żadnych przewodów łączących, ponieważ podłączanie przewodów czasami zniekształcają wyjście czujnika. Komponenty są zasilane za pomocą pinu 5 -woltowego Arduino.
Sekwencja przycisków jest wymieniona na powyższym obrazie.
Kod Arduino do tworzenia menu
Utworzyliśmy menu z trzema opcją pierwszą jest włączenie i wyłączenie diody LED, druga mierzy temperaturę, a trzeci brzmi alarm:
#include // biblioteka dla LCD
Liquidcrystal LCD (7,6, 5, 4, 3, 2); // szpilki Arduino dla LCD
int vcc = a0; // A0 Zasilanie pinów LM35
int vout = a1; // Pin A1 dla wyjścia LM35
int gnd = a2; // Pin A2 dla wyjścia LM35
zmienna zmienna; // do przechowywania wartości temperatury
Wartość zmiennoprzecinka; // przechowywanie wartości czujnika temperatury
Const Bajt UpButtonpin = 12; // Arduino Pin dla przycisku w górę
Const Bajte Downbuttonpin = 11; // szpilka Arduino dla przycisku w dół
Const Bajte w prawo Buttonpin = 10; // arduino pin do prawego przycisku
const bajte leftbuttonpin = 8; // arduino pin dla lewego przycisku
Const Bajte Buzzlerpin = 9; // szpilka Arduino dla brzęczyka
Const Byte Ledpin = 13; // arduino pin dla diody LED
Ciąg menuitems [] = // tworzenie ciągów opcji w menu
„Przełącznik LED”,
"Temperatura",
„Przełącznik brzęczyka”
;
Nieważne funkcje menu (int menu, bajt po prawej, bajt po lewej) / * Tworzenie funkcji opcji podanych w menu * /
if (menu == 1) // dla pierwszej opcji
if (right == 1) // Jeśli naciśnięty jest prawy przycisk
LCD.setCursor (0, 1); // Ustawienie miejsca dla danych na LCD
LCD.wydrukuj („off”); // Drukowanie opcji OFF
LCD.setCursor (10, 1); // Ustawienie miejsca dla danych na LCD
LCD.wydrukować (" <<");// move the cursor on the ON option
DigitalWrite (Ledpin, High); // Włącz diodę LED
if (po lewej == 1) // Jeśli naciśnię jest lewy przycisk
LCD.setCursor (0, 1); // Ustawienie miejsca dla danych na LCD
LCD.wydrukować <<");// printing the off option
LCD.setCursor (10, 1); // Ustawienie miejsca dla danych na LCD
LCD.wydrukuj („on”); // Drukowanie opcji ON
DigitalWrite (Ledpin, niski); // wyłączanie diody LED
if (menu == 2) // Jeśli wybrana jest druga opcja w menu
wartość = analogread (vout); // Odczyt wyjścia czujnika
temp = wartość*0.48; // Przekształcanie wartości analogowych w wartości temperatury
LCD.setCursor (0, 1); // Ustawienie miejsca dla danych na LCD
LCD.druk („Temperatura:”); // Wyświetlanie danych
LCD.SetCursor (12, 1); // Ustawienie miejsca dla danych na LCD
LCD.druk (temp); // wyświetlanie wartości temperatury
if (menu == 3) // Jeśli wybrana jest trzecia opcja
if (right == 1) // Jeśli naciśnięty jest prawy przycisk
LCD.setCursor (0, 1); // Ustawienie miejsca dla danych na LCD
LCD.wydrukować "); // Drukowanie opcji OFF
LCD.setCursor (10, 1); // Ustawienie miejsca dla danych na LCD
LCD.wydrukować (" <<");// move the cursor on the ON option
ton (brzęczen, 125); // Włącz brzęczyk
if (po lewej == 1) // Jeśli naciśnięty jest lewy przycisk
LCD.setCursor (0, 1); // Ustawienie miejsca dla danych na LCD
LCD.wydrukować <<");// move the cursor on the off option
LCD.setCursor (10, 1); // Ustawienie miejsca dla danych na LCD
LCD.drukuj („on”); // Drukowanie opcji ON
notone (brzęczen); // wyłącz brzęczyk
// Tworzenie szablonu menu
szablon /* zmienna dla nazwy opcji i rozmiaru menu* /
size_t menuitemsSize (t (&) [numerOFSIZE]) return numerOFSIZE; /* Nazwa opcji menu i liczba opcji*/
int numberOfMenuitems = menuitemsSize (menuitems) - 1;
int currentmenuitem = 0; // zmienna do przechowywania bieżącej opcji
int poprzednimenuitem = 1; // zmienna do przechowywania poprzedniej opcji
bajt button_flag = 0;
niepodpisane długie poprzednie Millis = Millis ();
// Funkcja konfiguracji
void Setup ()
pinmode (LEDPIN, wyjście); // Definiowanie trybu PIN dla LED
pinmode (VCC, wyjściowe); // Definiowanie trybu pinu dla pinu zasilającego dla czujnika
pinmode (vout, input); // Definiowanie trybu pinu dla pinu wyjściowego czujnika
Pinmode (GND, wyjściowe); // definiowanie trybu pinu dla bleń uziemienia czujnika
// definiowanie stanów dla pinów zaopatrzenia i uziemienia dla czujników
DigitalWrite (VCC, High); // daje wysokim stanu szpilki Arduino A0
DigitalWrite (GND, niski); // dając niskiemu stanowi arduino a2
pinmode (upbuttonpin, input_pullup); // przypisanie trybu przycisku input_pullup
pinmode (DownButtonPin, input_pullup);/*Przypisanie przycisku w górę input_pullup tryb*/
pinmode (prawybuttonpin, input_pullup);/*Przypisanie przycisku w górę input_pullup tryb*/
pinmode (leftbuttonpin, input_pullup); /*Przypisanie przycisku w górę input_pullup tryb*/
LCD.Rozpocznij (16,2); // inicjowanie wymiarów LCD
LCD.clear (); // usuwanie LCD
LCD.setCursor (0, 0); // Ustawienie miejsca dla danych do wyświetlenia na LCD
LCD.drukuj („Witamy”); // dane do wyświetlenia na LCD
LCD.setCursor (3, 1); // Ustawienie miejsca na wyświetlenie danych na LCD
LCD.drukuj („menu Arduino”); // dane do wyświetlenia na LCD
opóźnienie (6000); // czas, dla którego dane będą wyświetlane na LCD
LCD.clear (); // usuwanie LCD
LCD.setCursor (0, 0); // Ustawienie miejsca na wyświetlenie danych na LCD
LCD.Drukuj („Linuxhint.com "); // dane do wyświetlenia na LCD
opóźnienie (7000); // czas, dla którego dane będą wyświetlane na LCD
LCD.clear (); // usuwanie LCD
// Korzystanie z IF Warunki do zdefiniowania funkcjonalności każdego przycisku
Void Loop ()
if (DigitalRead (rightButtonPin) == Low && button_flag == 0)/ *Jeśli naciśnięty jest prawy przycisk */
funkcje menu (currentMenuitem + 1, 1, 0); // przesuń o jeden krok w prawo
button_flag = 1;
poprzednimillis = millis ();
if (DigitalRead (leftbuttonpin) == Low && button_flag == 0)/*Jeśli naciśnięty jest lewy przycisk*/
funkcje menu (CurrentMenuitem + 1, 0, 1);
button_flag = 1;
poprzednimillis = millis ();
if (DigitalRead (upbuttonpin) == Low && button_flag == 0) /*Jeśli przycisk w górę jest naciśnięty* /
++CurrentMenuitem;
if (currentMenuitem> numberOfMenuitems)
currentMenuitem = NumberOfMenuitems;
button_flag = 1;
poprzednimillis = millis ();
else if (DigitalRead (DownButtonPin) == Low && button_flag == 0) /*Jeśli przycisk w dół zostanie naciśnięty* /
CurrentMenuitem-;
if (currentmenuitem = 400)
poprzednimillis = millis ();
button_flag = 0;
Podsumowując działanie podanego powyżej kodu Arduino, możemy powiedzieć, że początkowo przypisaliśmy szpilki do LCD, czujnika temperatury, brzęczyka i przycisków. Następnie utworzyliśmy menu, mając niektóre opcje, takie jak przełączanie diody LED, wykrywanie temperatury i przełączanie brzęczyka.
Użyliśmy warunków IF dla każdej opcji, którą podaliśmy w menu, a następnie utworzyliśmy szablon do tworzenia menu i zdefiniowania niektórych zmiennych do zapamiętania opcji w menu.
W funkcji konfiguracji wszystkie piny Arduino są przypisywane ich trybie, a wymiar LCD jest inicjowany.
Przechodząc do funkcji pętli, zdefiniowaliśmy funkcjonalność każdego przycisku używanego w programie Arduino. Istnieją cztery przyciski, które są używane w tym programie: dwa to przyciski przełączające, a pozostałe dwa są używane jako przełącznik włączania/wyłączania dla podłączonych urządzeń.
Implementacja sprzętu do tworzenia menu za pomocą Arduino Uno
Obrazy wyjścia programu Arduino na sprzęcie są opublikowane w sekwencji przepływu kodu Arduino. Aby poruszać się po menu, naciśnij przyciski „Up” i „Down”, aby wykonać funkcje, naciśnij przyciski „lewe” i „prawe”.
Pierwszą opcją menu jest przełącznik LED:
Kiedy dioda LED jest poza stanem:
Po naciśnięciu prawego przycisku LED zostanie włączony:
Drugą opcją w menu jest temperatura:
Następną opcją jest przełączanie brzęczyka:
Gdy brzęczyk jest w stanie, gdy naciśnięty jest prawy przycisk:
Brzęczyk jest wyłączony po naciśnięciu lewego przycisku:
Wniosek
Stworzenie różnych projektów na poziomie początkującym lub zaawansowanym najbardziej wykonalnym sposobem, w jaki doszło do umysłu, jest korzystanie z platformy Arduino. Ta platforma zapewnia różnorodne opcje dla użytkowników na podstawie wymagań projektu. Podobnie ta platforma jest rodzajem kompletnego pakietu, ponieważ zapewnia zarówno rodzaje oprogramowania pomocy i sprzętu. Tak więc tworzenie projektów korzystających z Arduino daje szansę na naukę i zrozumienie różnych pojęć dotyczących obwodów. Opracowaliśmy również projekt tworzenia menu za pomocą płyty Arduino Uno i wyświetlania go na LCD 16 × 2.