Bogusław Kempny

Wyświetlacz LCD

×
Autor English
Początek HC-SR04 LCD Kamera fork() sms strfry() GPIO impulsy Klawiatura Brama GPIO PWM SG90 RFID Grafolog RCP Shutdown Temperatura ....










No i prościutki programik, żeby sprawdzić czy dobrze kabelki połączyliśmy.

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <wiringPi.h>
Potrzebny jest zbiór nagłówkowy wiringPi.h!
/*  zmienne  */
static int lcdHandle ;

Prościutka funkcja która wyświetli tekst w kolumnie x i wierszu y ekranu wyświetlacza:
void wyswietl(int x, int y, char* tresc)
{
  lcdPosition (lcdHandle, x, y) ; lcdPuts (lcdHandle, tresc) ;
}

/* S T A R T */
main (argc, argv)
     int argc;
     char *argv[];
{
Inicjalizacja struktur biblioteki WiringPi:

if (wiringPiSetup() == -1)
  {
        printf("wiringPi-Error\n");
    exit(1);
  }
Teraz inicjalizacja naszego wyświetlacza.

int lcdInit (int rows, int cols, int bits, int rs, int strb, int d0, int d1, int d2, int d3, int d4, int d5, int d6, int d7) ;

Tu definiujemy jakiego typu wyświetlacza użyliśmy, w jakim trybie pracuje i gdzie podłączyliśmy sygnały.
Liczba wierszy, liczba kolumn, tryb (4/8 bitów), RS i E.
Kolejne 8 wartości to numery pinów GPIO do których podłączyliśmy magistralę danych wyświetlacza.

I tu parę słów wyjaśnienia.

Jeśli użyliśmy trybu 8 bitowego, wszystko proste i logiczne, kolejne pozycje parametrów funkcji lcdinit to D0, D1 itd. wyświetlacza.
W trybie 4 bitowym jednak, z jakiegoś powodu producent wykorzystał styki D4-D7 wyświetlacza, a nie D0-D3, zobacz: Piny
Mamy więc w lcdInit D0=29, D1=28, D2=27 i D3=26, ale bity te są fizycznie podłączone do D4, D5, D6 i D7 wyświetlacza.

    lcdHandle = lcdInit (4, 16, 4, 25,23,29,28,27,26,0,0,0,0) ;
Czyścimy ekran wyświetlacza:
  lcdClear (lcdHandle) ;
I w kolejnych wierszach wyświetlamy kolejne argumenty, z jakimi wywołaliśmy nasz program, dla uproszczenia wszystkie od zerowej kolumny.
  wyswietl(0, 0, argv[1]);
  wyswietl(0, 1, argv[2]);
  wyswietl(0, 2, argv[3]);
  wyswietl(0, 3, argv[4]);
}