Raspberry Pi to płyta oparta na architekturze ARM przeznaczona dla elektroników i hobbystów. PI jest obecnie jedną z najbardziej zaufanych platform do tworzenia projektów. Dzięki wyższej szybkości procesora i 1 GB pamięci RAM, PI może być używany do wielu ważnych projektów, takich jak przetwarzanie obrazu i IoT.
Aby wykonać którykolwiek z ważnych projektów, należy zrozumieć podstawowe funkcje PI. W tych samouczkach omówimy wszystkie podstawowe funkcje Raspberry Pi. W każdym samouczku omówimy jedną z funkcji PI. Pod koniec tej serii samouczków Raspberry Pi będziesz mógł samodzielnie wykonywać ważne projekty. Przejdź przez poniższe samouczki:
- Pierwsze kroki z Raspberry Pi
- Konfiguracja Raspberry Pi
- Miga dioda LED
- Interfejs przycisków
- Generacja PWM
- Sterowanie silnikiem prądu stałego
- Sterowanie silnikiem krokowym
- Interfejs rejestru przesuwnego
- Samouczek Raspberry Pi ADC
- Sterowanie serwomotorem
- Pojemnościowy panel dotykowy
W tym samouczku będziemy sterować wyświetlaczem LCD 16x2 za pomocą Raspberry Pi. Podłączymy wyświetlacz LCD do pinów PI GPIO (General Purpose Input Output), aby wyświetlać na nim znaki. Napiszemy program w PYTHONIE, który będzie wysyłał odpowiednie polecenia do LCD poprzez GPIO i wyświetlał potrzebne znaki na jego ekranie. Ten ekran będzie przydatny do wyświetlania wartości czujników, stanu przerwania, a także do wyświetlania czasu.
Na rynku dostępne są różne typy wyświetlaczy LCD. Graficzny wyświetlacz LCD jest bardziej złożony niż wyświetlacz LCD 16x2. Więc tutaj wybieramy wyświetlacz LCD 16x2, możesz nawet użyć 16x1 LCD, jeśli chcesz. 16x2 LCD ma 32 znaków w sumie 16 w 1 st linii i kolejne 16 w 2 -go wiersza. JHD162 to wyświetlacz LCD 16x2 znaków LCD. Połączyliśmy już 16x2 LCD z 8051, AVR, Arduino itp. Możesz znaleźć wszystkie nasze projekty związane z 16x2 LCD, klikając ten link.
Omówimy trochę o PI GPIO, zanim przejdziemy dalej.
W Raspberry Pi 2 jest 40 pinów wyjściowych GPIO. Ale z 40 można zaprogramować tylko 26 pinów GPIO (GPIO2 do GPIO27). Niektóre z tych pinów pełnią specjalne funkcje. Po odłożeniu specjalnego GPIO pozostało 17 GPIO.
Na płycie znajdują się piny wyjściowe zasilania + 5V (Pin 2 lub 4) i + 3.3V (Pin 1 lub 17), które służą do podłączenia innych modułów i czujników. Zamierzamy zasilić wyświetlacz LCD 16 * 2 przez szynę + 5 V. Możemy wysłać sygnał sterujący o napięciu + 3,3 V do wyświetlacza LCD, ale do działania wyświetlacza LCD należy go zasilić napięciem + 5 V. Wyświetlacz LCD nie działa przy napięciu + 3,3 V.
Aby dowiedzieć się więcej o pinach GPIO i ich wyjściach prądowych, przejdź do: Miga dioda LED z Raspberry Pi
Wymagane składniki:
Tutaj używamy Raspberry Pi 2 Model B z Raspbian Jessie OS. Wszystkie podstawowe wymagania sprzętowe i programowe zostały wcześniej omówione, możesz je sprawdzić we wprowadzeniu do Raspberry Pi, poza tym, czego potrzebujemy:
- Kołki łączące
- Moduł LCD 16 * 2
- Rezystor 1KΩ (2 sztuki)
- Potencjometr 10K
- Kondensator 1000 µF
- Płytka prototypowa
Objaśnienie obwodu i pracy:
Jak pokazano na schemacie obwodu, połączyliśmy Raspberry Pi z wyświetlaczem LCD, podłączając 10 pinów GPIO PI do pinów sterowania i transferu danych 16 * 2 LCD. Użyliśmy GPIO Pin 21, 20, 16, 12, 25, 24, 23 i 18 jako BYTE i utworzyliśmy funkcję „PORT” do wysyłania danych do LCD. Tutaj GPIO 21 to LSB (najmniej znaczący bit), a GPIO18 to MSB (najbardziej znaczący bit).
Moduł LCD 16x2 ma 16 pinów, które można podzielić na pięć kategorii, pinów zasilania, pinów kontrastu, pinów sterujących, pinów danych i pinów podświetlenia. Oto krótki opis ich:
Kategoria |
Pin NO. |
Nazwa pinu |
Funkcjonować |
Piny zasilania |
1 |
VSS |
Pin uziemienia połączony z uziemieniem |
2 |
VDD lub Vcc |
Pin napięcia + 5 V. |
|
Kontrast Pin |
3 |
V0 lub VEE |
Ustawienie kontrastu, podłączone do Vcc przez rezystor zmienny. |
Kołki sterujące |
4 |
RS |
Zarejestruj Wybierz Pin, RS = 0 Tryb poleceń, RS = 1 Tryb danych |
5 |
RW |
Odczyt / zapis pin, RW = 0 Tryb zapisu, RW = 1 Tryb odczytu |
|
6 |
mi |
Włącz, wysoki do niskiego impulsu wymaga włączenia wyświetlacza LCD |
|
Piny danych |
7-14 |
D0-D7 |
Piny danych, przechowuje dane, które mają być wyświetlane na ekranie LCD lub instrukcje poleceń |
Piny podświetlenia |
15 |
LED + lub A |
Do zasilania podświetlenia + 5V |
16 |
LED- lub K. |
Podświetlenie ziemi |
Zdecydowanie zalecamy przeczytanie tego artykułu w celu zrozumienia działania wyświetlacza LCD z jego pinami i poleceniami szesnastkowymi.
Omówimy pokrótce proces przesyłania danych do LCD:
1. E jest w stanie wysokim (włączenie modułu), a RS w stanie niskim (mówi LCD, że wydajemy polecenie)
2. Nadanie wartości 0x01 do portu danych jako polecenie wyczyszczenia ekranu.
3. E jest w stanie wysokim (włączenie modułu), a RS w stanie wysokim (mówi LCD, że podajemy dane)
4. Należy wyświetlić potwierdzenie kodu ASCII dla znaków.
5. E jest niski (informuje LCD, że zakończyliśmy wysyłanie danych)
6. Gdy ten pin E spadnie do stanu niskiego, wyświetlacz LCD przetwarza otrzymane dane i wyświetla odpowiedni wynik. Więc ten pin jest ustawiony na wysoki przed wysłaniem danych i rozebrany do masy po wysłaniu danych.
Jak powiedziałem, będziemy wysyłać postacie jeden po drugim. Te znaki są podane do LCD kodów ASCII (American standardowy kod dla Wymiany Informacji). Tabela kodów ASCII jest pokazana poniżej. Na przykład, aby pokazać znak „@”, musimy wysłać kod szesnastkowy „40”. Jeśli podamy wartość 0x73 na LCD, wyświetli się „s”. W ten sposób wyślemy odpowiednie kody do wyświetlacza LCD, aby wyświetlić napis „ CIRCUITDIGEST ”.
Objaśnienie programowania:
Po podłączeniu wszystkiego zgodnie ze schematem obwodu, możemy włączyć PI, aby napisać program w PYHTON.
Porozmawiamy o kilku poleceniach, których będziemy używać w programie PYHTON, Zamierzamy zaimportować plik GPIO z biblioteki, poniższa funkcja umożliwia zaprogramowanie pinów GPIO PI. Zmieniamy również nazwę „GPIO” na „IO”, więc w programie zawsze, gdy będziemy chcieli odwołać się do pinów GPIO, użyjemy słowa „IO”.
importuj RPi.GPIO jako IO
Czasami, gdy piny GPIO, których próbujemy użyć, mogą wykonywać inne funkcje. W takim przypadku podczas wykonywania programu będziemy otrzymywać ostrzeżenia. Poniższe polecenie mówi PI, aby zignorował ostrzeżenia i kontynuował program.
IO.setwarnings (fałszywe)
Możemy odnosić się do pinów GPIO PI, albo przez numer pinu na płycie, albo przez numer ich funkcji. Tak jak „PIN 29” na płycie to „GPIO5”. Więc mówimy tutaj albo będziemy reprezentować pinezkę jako „29” lub „5”.
IO.setmode (IO.BCM)
Ustawiamy 10 pinów GPIO jako piny wyjściowe, dla pinów Data i Control LCD.
IO.setup (6, IO.OUT) IO.setup (22, IO.OUT) IO.setup (21, IO.OUT) IO.setup (20, IO.OUT) IO.setup (16, IO.OUT) IO.setup (12, IO.OUT) IO.setup (25, IO.OUT) IO.setup (24, IO.OUT) IO.setup (23, IO.OUT) IO.setup (18, IO.OUT)
podczas gdy 1: polecenie jest używane jako wieczna pętla, z tym poleceniem instrukcje wewnątrz tej pętli będą wykonywane w sposób ciągły.
Wszystkie inne funkcje i polecenia zostały wyjaśnione w poniższej sekcji „Kod” za pomocą „Komentarze”.
Po napisaniu programu i wykonaniu go, Raspberry Pi wysyła po kolei znaki na LCD, a wyświetlacz LCD wyświetla te znaki na ekranie.