|||

Budowa prostego kalkulatora na Arduino z klawiaturą 4×4 i LCD krok po kroku

Budowa prostego kalkulatora na Arduino z klawiaturą 4×4 i LCD krok po kroku

W tym poradniku krok po kroku zbudujemy prosty kalkulator oparty na mikrokontrolerze Arduino, wyposażony w 16-przyciskową klawiaturę matrycową 4×4 oraz wyświetlacz LCD 16×2 z interfejsem I2C. Nasz mini-kalkulator umożliwia wykonywanie podstawowych działań arytmetycznych dodawanie i odejmowanie i wyświetla wyniki na bieżąco na czytelnym ekranie LCD. 🤖🔢

Projekt jest idealny dla początkujących pasjonatów elektroniki i programowania pozwala poznać obsługę wyświetlacza alfanumerycznego oraz odczyt klawiatury numerycznej za pomocą Arduino. Całość zmontujemy na płytce Arduino UNO bez lutowania, a dzięki komunikacji I2C wyświetlacza układ będzie wymagał minimalnej liczby przewodów. To świetne wprowadzenie do świata Arduino, które można później łatwo rozbudować o dodatkowe funkcje! 😊

W dalszej części artykułu pokażemy, jak podłączyć wszystkie elementy, omówimy zasadę działania klawiatury matrycowej 4×4, zainstalujemy niezbędne biblioteki oraz wyjaśnimy, jak działa program sterujący kalkulatorem. Zaczynajmy! 🚀

Lista potrzebnych elementów

Do zbudowania naszego kalkulatora na Arduino będziemy potrzebować kilku podstawowych komponentów elektronicznych. Poniżej znajduje się lista elementów wykorzystanych w projekcie:

ElementOpis
Arduino Uno R3 lub kompatybilna płytka ArduinoATmega328P – serce projektu, który będzie odczytywał klawisze i wykonywał obliczenia.
Klawiatura membranowa 4×4 16 przyciskówPanel numeryczny z przyciskami 0–9, A, B, C, D oraz znakami * i #. Służy jako urządzenie wejściowe do wprowadzania liczb i wyboru operacji.
Wyświetlacz LCD 16×2 z konwerterem I2CDwuwierszowy wyświetlacz alfanumeryczny (2 linie po 16 znaków) z wbudowanym modułem I2C posłuży do wyświetlania wpisanych liczb oraz wyniku działania.
Przewody połączenioweKilka przewodów połączeniowych typ męsko-męski oraz żeńsko-męski do połączenia modułów z pinami Arduino.

Dzięki powyższym elementom zbudujemy kompletny i działający kalkulator, który pozwoli wykonywać proste obliczenia na naszym Arduino! 🔧⚡ Wszystkie te komponenty zebraliśmy również w gotowym koszyku w naszym sklepie – możesz dodać je do koszyka jednym kliknięciem, aby ułatwić sobie kompletowanie zestawu. ✅

koszyk 👇

Zasada działania klawiatury matrycowej 4×4

Zanim przejdziemy do montażu, wyjaśnijmy krótko, jak działa klawiatura matrycowa 4×4 użyta w tym projekcie. Tego typu klawiatury składają się z czterech wierszy i czterech kolumn połączonych w układzie matrycowym. Oznacza to, że 16 przycisków nie jest podłączonych każdy do osobnego pinu, lecz tworzy siatkę połączeń: każda kolumna i każdy wiersz jest wspólną linią dla grupy przycisków.

W praktyce naciśnięcie dowolnego klawisza zwiera ze sobą konkretny jeden wiersz oraz jedną kolumnę. Na przykład wciśnięcie klawisza „1” spowoduje połączenie linii wiersza 1 z linią kolumny 1, a naciśnięcie klawisza „B” połączy wiersz 2 z kolumną 4, itd. Dzięki takiej organizacji do obsługi 16 przycisków wystarczy 8 pinów mikrokontrolera zamiast 16 (po jednym dla każdej kolumny i wiersza). Arduino może skanować klawiaturę, ustawiając kolejno linie wierszy w stan aktywny i odczytując, na której kolumnie pojawił się sygnał – to pozwala wykryć, który przycisk został naciśnięty. 🤔📲

Takie rozwiązanie jest bardzo efektywne i często stosowane w kalkulatorach, telefonach i innych urządzeniach z klawiaturą numeryczną. W naszym projekcie wykorzystamy gotową bibliotekę Keypad, która automatycznie zajmuje się skanowaniem matrycy 4×4, dzięki czemu nie musimy pisać ręcznie skomplikowanego kodu do odczytu przycisków. 😊

Schemat połączeń – montaż kalkulatora

Gdy mamy już przygotowane wszystkie części, pora zmontować układ kalkulatora na płytce stykowej. Montaż jest prosty i ogranicza się do podłączenia klawiatury oraz wyświetlacza do odpowiednich pinów Arduino. Poniżej opisujemy krok po kroku, jak połączyć elementy zgodnie z naszym programem:

  • Klawiatura 4×4: posiada złącze 8-pinowe odpowiadające 4 wierszom i 4 kolumnom. W naszym programie wykorzystaliśmy piny cyfrowe 2, 3, 4, 5 jako kolumny oraz 6, 7, 8, 9 jako wiersze klawiatury. Należy więc podłączyć wyprowadzenia klawiatury w odpowiedniej kolejności do tych pinów Arduino kolejność pinów w złączu klawiatury zwykle odpowiada np. kolumnom 1–4 i wierszom 1–4. U nas:
    – Kolumny klawiatury → piny Arduino 2, 3, 4, 5 (odpowiednio dla kolumn 1–4)
    – Wiersze klawiatury → piny Arduino 6, 7, 8, 9 (odpowiednio dla wierszy 1–4)
  • Wyświetlacz LCD 16×2 I2C: dzięki wbudowanemu konwerterowi I2C, do komunikacji z wyświetlaczem wykorzystamy tylko 2 linie sygnałowe oraz zasilanie. Standardowe piny I2C w Arduino Uno to SDA i SCL te należy połączyć z odpowiednimi pinami konwertera I2C na module wyświetlacza oznaczonymi jako SDA i SCL. Dodatkowo podłączamy zasilanie wyświetlacza: pin VCC modułu I2C do +5V Arduino, a GND do masy Arduino. 📟✨
    Uwaga: Domyślny adres I2C wyświetlacza to zazwyczaj 0x27 – jest on użyty w programie. Jeśli Twój wyświetlacz nie działa od razu, możliwe że ma inny adres np. 0x3F; wówczas należy go zmienić w kodzie lub skorzystać z programu do skanowania I2C w celu sprawdzenia adresu.
  • Zasilanie układu: podczas programowania i testów możemy zasilać Arduino bezpośrednio z portu USB komputera. Jeśli jednak chcemy, by kalkulator działał niezależnie od PC, możemy podłączyć zewnętrzne zasilanie – np. baterię 9V z wtykiem do gniazda zasilania Arduino lub koszyk na baterie AA dający 6–9V. Ważne, by napięcie mieściło się w zalecanym zakresie dla Arduino 7–12V na wejściu VIN. Obwód klawiatury i wyświetlacza jest zasilany z Arduino, więc po podłączeniu Arduino do zasilania automatycznie zasilane są też nasze peryferia. 🔌🔋

Po poprawnym połączeniu wszystkich przewodów warto jeszcze raz upewnić się, że każda linia klawiatury trafiła we właściwe miejsce i że wyświetlacz jest podłączony do odpowiednich pinów I2C oraz zasilania. Pomyłka w okablowaniu może skutkować brakiem reakcji na przyciski lub nieprawidłowym wyświetlaniem danych na ekranie, dlatego warto sprawdzić dwa razy – bezpieczeństwo przede wszystkim. ✅ Gdy wszystko jest gotowe, możemy przejść do części programistycznej.

Kod programu – obsługa wyświetlacza i klawiatury

Do zaprogramowania kalkulatora wykorzystamy środowisko Arduino IDE. Kod źródłowy projektu jest dostępny do pobrania poniżej:


zachęcamy do przejrzenia go i wgrywania na swój moduł Arduino. Poniżej omówimy najważniejsze elementy programu, aby wyjaśnić, jak działa nasz kalkulator:

  • Biblioteki: na początku kodu dołączamy biblioteki LiquidCrystal_I2C do obsługi wyświetlacza LCD przez I2C oraz Keypad do obsługi klawiatury matrycowej. Upewnij się, że masz te biblioteki zainstalowane w Arduino IDE można je znaleźć w Menedżerze Bibliotek Library Manager. Biblioteka LiquidCrystal_I2C ułatwia sterowanie popularnymi wyświetlaczami 16×2 z modułem I2C, a biblioteka Keypad automatyzuje proces skanowania matrycy przycisków. 📚

Inicjalizacja wyświetlacza: tworzymy obiekt LiquidCrystal_I2C lcd(0x27, 16, 2), gdzie 0x27 to adres I2C wyświetlacza, a parametry 16, 2 oznaczają wymiary ekranu 16 znaków, 2 linie. W funkcji setup() inicjalizujemy wyświetlacz (lcd.init()) i włączamy jego podświetlenie (lcd.backlight()). Na starcie wyświetlamy krótki komunikat powitalny „Kalkulator :)” – to pozwoli nam upewnić się, że LCD działa prawidłowo. Następnie prosimy użytkownika o

wpisanie liczby, wyświetlając komunikat „Wpisz liczbe:”. Konfiguracja klawiatury: definiujemy układ przycisków klawiatury w tablicy keys[ROWS][COLS] – odpowiada to rozmieszczeniu cyfr i liter na fizycznej klawiaturze tak jak nadruk na niej. Określamy też, do których pinów Arduino podłączone są poszczególne wiersze (rowPins) i kolumny (colPins) klawiatury. Następnie inicjalizujemy obiekt Keypad poleceniem Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS). Od tej pory możemy łatwo odczytywać wciśnięte klawisze za pomocą metody keypad.getKey(). 🎹

Obsługa wpisywania liczb: w pętli loop() nasłuchujemy na naciśnięcia klawiszy. Jeżeli odczytany znak key jest cyfrą ('0''9'), dodajemy tę cyfrę do aktualnie wprowadzanej liczby (string input) i odświeżamy wyświetlacz, pokazując wpis (funkcja showInput()). Dzięki temu po każdym naciśnięciu klawisza użytkownik widzi na ekranie rosnącą liczbę, którą wpisuje. Program przewiduje też sytuację, gdy zaczynamy nową kalkulację po otrzymaniu poprzedniego wyniku wykorzystuje do tego flagę wynikGotowy. Jeśli flaga ta jest ustawiona tzn. właśnie wyświetlono wynik wcześniejszego działania, to naciśnięcie cyfry spowoduje wyczyszczenie starego wyniku i rozpoczęcie wpisywania nowej liczby od zera. Dzięki temu kolejne obliczenie zaczynamy bez konieczności ręcznego resetowania kalkulatora. 💾🔢

Wybór operacji (+, -): nasz kalkulator obsługuje obecnie dodawanie i odejmowanie. Przypisaliśmy do tego przyciski A plus oraz B minus na klawiaturze 4×4. Gdy użytkownik naciśnie jeden z tych klawiszy, wykonuje się funkcja setOperation(op), która zapamiętuje aktualnie wprowadzoną pierwszą liczbę (firstNum), rodzaj operacji operation jako '+' lub '-' oraz przygotowuje kalkulator na wpisanie drugiej liczby. Na wyświetlaczu pokazujemy krótką informację o wybranej operacji, po czym prosimy o wpisanie drugiej liczby. W tle zmienna input zostaje wyczyszczona, aby można było zebrać nową wartość.

Obliczanie wyniku: naciśnięcie klawisza C pełni rolę przycisku „równa się” (=). Funkcja calculate() pobiera wtedy drugą wpisaną liczbę (secondNum) i – w zależności od zapamiętanej operacji oblicza wynik dodawania lub odejmowania. Wynik (typu long int) wyświetlany jest na ekranie w czytelnym formacie, np. "15 + 27 = 42". 😃 Po pokazaniu wyniku flaga wynikGotowy zostaje ustawiona na true, a także zachowujemy wynik jako nową wartość input. Pozwala to wykorzystać go w kolejnym działaniu np. można od razu kontynuować obliczenia z użyciem wyniku bez ponownego wpisywania liczby. Jeśli użytkownik zacznie wpisywać nową liczbę, program rozpozna to dzięki wspomnianej fladze i automatycznie wyczyści poprzedni wynik.

Reset kalkulatora: klawisz D w naszym układzie pełni funkcję „C” (clear) znaną z klasycznych kalkulatorów. Po jego wciśnięciu wywoływana jest funkcja resetCalc(), która czyści bufor wejściowy, zeruje zapamiętane wartości i ustawia kalkulator w stan początkowy. Na wyświetlaczu ponownie pojawia się komunikat „Wpisz liczbe:”, co sygnalizuje gotowość do wykonania nowego działania. 🔄

Nasze oprogramowanie w prosty sposób realizuje podstawową logikę kalkulatora. Warto zwrócić uwagę, że ograniczyliśmy się do obsługi liczb całkowitych (typ int/long w Arduino) – kalkulator nie obsługuje ułamków dziesiętnych ani liczb ujemnych jako wejścia choć wynik odejmowania może być ujemny i zostanie poprawnie wyświetlony z „-” na początku. Mimo tych uproszczeń projekt znakomicie spełnia swoją rolę demonstracyjną i edukacyjną. Pełny kod źródłowy zawiera dodatkowe komentarze objaśniające działanie poszczególnych fragmentów zachęcamy do samodzielnego przeanalizowania go i eksperymentów. ✍️👩‍💻

Co można rozbudować w projekcie?

Nasz prosty kalkulator na Arduino działa już zgodnie z założeniami można wprowadzać dwie liczby i otrzymywać wynik dodawania lub odejmowania. Jednak na tym nie musimy poprzestawać. 🛠️ Dzięki elastyczności platformy Arduino i pomysłowości majsterkowiczów, projekt ten można łatwo rozbudować o nowe funkcjonalności i ulepszenia. Oto kilka propozycji, co można dodać lub zmodyfikować, aby rozwinąć ten projekt jeszcze bardziej:

  • Więcej operacji matematycznych: Obecna wersja obsługuje tylko „+” i „-„. Nic nie stoi na przeszkodzie, aby dodać działanie mnożenia oraz dzielenia. Wymaga to nieco modyfikacji kodu można wykorzystać dodatkowe przyciski (np. * jako „×”, # jako „÷”) lub zmienić przypisania klawiszy A-D. Po dodaniu kolejnych operacji nasz kalkulator stanie się znacznie bardziej uniwersalny.
  • Wynik z przecinkiem: Jeśli potrzebujesz obsługi liczb niecałkowitych, spróbuj rozszerzyć program o działanie na liczbach typu float – zmiennoprzecinkowych. Arduino obsługuje liczby zmiennoprzecinkowe, więc można umożliwić wpisywanie np. punktu dziesiętnego choć nasza klawiatura nie ma kropki, można wykorzystać jakiś rzadziej używany klawisz do przełączania trybu wpisywania części ułamkowej. To trudniejsze zadanie, ale dla ambitnych, czemu nie! 😎
  • Podstawy naukowe: Bardziej zaawansowani użytkownicy mogą pokusić się o dodanie funkcji trygonometrycznych, logarytmicznych czy potęgowania, wykorzystując funkcje matematyczne z biblioteki Arduino (sin(), log(), pow() itd.). Oczywiście wymagałoby to rozbudowy interfejsu np. wybór funkcji z menu czy kombinacji klawiszy, ale pokazuje, że nawet prosty kalkulator można zmienić w mini-kalkulator naukowy. 📐🔬
  • Niezależne zasilanie i obudowa: Aby urządzenie było bardziej praktyczne, warto pomyśleć o dodaniu niezależnego zasilania i zamknięciu projektu w estetycznej obudowie. Można zastosować mały koszyczek bateryjny np. 4×AA dające 6V lub 9V bateria z odpowiednim gniazdem i wyłącznik, aby kalkulator stał się przenośny. Do tego obudowa np. wydrukowana na drukarce 3D lub nawet wykonana z materiałów DIY sklejka, plastik – z wyciętymi otworami na wyświetlacz i klawiaturę, sprawi że projekt będzie wyglądał jak prawdziwe urządzenie. Taka personalizowana obudowa nie tylko chroni elektronikę, ale też robi duże wrażenie! 📦🔋
  • Sygnalizacja dźwiękowa: Dla lepszej interakcji można dodać mały buzzer piezo i zaprogramować krótkie dźwięki przy naciskaniu klawiszy lub alarm przy błędnej operacji np. dzielenie przez zero, jeśli dodasz dzielenie. Taki feedback dźwiękowy upodobni kalkulator do tych biurkowych, które wydają „beep” przy każdym wciśnięciu. 🔊
  • Inne pomysły: Nasz kalkulator może posłużyć jako baza do zupełnie innych projektów np. szyfrator do zamka szyfrowego wpisywanie kodu PIN, licznik do różnych zastosowań, prosty terminal do wprowadzania danych itp. Wystarczy zmienić nieco logikę programu. Możliwości jest naprawdę dużo, a jedynym ograniczeniem jest Twoja wyobraźnia oraz liczba pinów i pamięci Arduino 😉.

Zachęcamy do eksperymentowania i modyfikowania projektu. Każda zmiana to okazja do nauki nowych rzeczy. Nie bój się popełniać błędów i próbować swoich sił w ulepszaniu kalkulatora. Być może stworzysz własną, unikalną wersję urządzenia z dodatkowymi funkcjami, które okażą się przydatne! 🚀

Podsumowanie

W tym artykule zbudowaliśmy prosty kalkulator na Arduino, wykorzystując klawiaturę matrycową 4×4 oraz wyświetlacz LCD 16×2. Projekt pokazał, jak odczytywać wiele przycisków za pomocą matrycy połączeń oraz jak wygodnie wyświetlać komunikaty na ekranie dzięki interfejsowi I2C. Nasz kalkulator umożliwia dodawanie i odejmowanie dwóch liczb całkowitych, prezentując wynik w czytelny sposób na wyświetlaczu. Mimo swojej prostoty, urządzenie to jest świetnym przykładem praktycznego zastosowania Arduino do stworzenia użytecznego gadżetu. 👍

Dzięki zastosowaniu gotowych bibliotek obsługa zarówno wyświetlacza, jak i klawiatury okazała się bardzo łatwa – większość zadań jak skanowanie klawiszy czy komunikacja z LCD odbywa się w tle, a my mogliśmy skupić się na logice działania kalkulatora. Projekt ten jest doskonały dla osób początkujących, ponieważ łączy elementy elektroniki i programowania w przystępny sposób, dając namacalny efekt w postaci działającego urządzenia.

Mamy nadzieję, że udało Ci się uruchomić kalkulator bez problemów i że satysfakcjonuje Cię rezultat! Jeśli napotkałeś trudności lub masz pytania, śmiało zostaw komentarz pod wpisem – chętnie pomożemy. 💬🤗 Życzymy powodzenia w dalszych eksperymentach z Arduino i zachęcamy do rozwijania projektu o własne pomysły. Kto wie – może to początek Twojej przygody z konstruowaniem bardziej złożonych urządzeń elektronicznych? Trzymamy kciuki! 🙌

Produkty powiązane z wpisem:


Prezentowaną w artykule elektronikę znajdziesz oczywiście w naszym sklepie 👉 sklep.msalamon.pl 👈Zapraszamy również na nasze social media, gdzie na bieżąco informujemy o nowych produktach oraz o najciekawszych promocjach 😎👇


Podobne wpisy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *