@@@   @@@                                   
             @@@   @@@                                   
             @@@                                         
   @@@@@@@   @@@   @@@  @@@  @@@       @@@@@      @@@@@@ 
 @@@@  @@@   @@@   @@@  @@@@@@@@@    @@@   @@@   @@@  @@@
@@@    @@@   @@@   @@@  @@@@   @@@  @@@     @@@  @@@     
@@     @@@   @@@   @@@  @@@    @@@  @@       @@    @@@@  
@@     @@@   @@@   @@@  @@@    @@@  @@@     @@@       @@@
@@@@  @@@@   @@@   @@@  @@@    @@@   @@@   @@@   @@@  @@@
 @@@@@@ @@@   @@@  @@@  @@@    @@@     @@@@@      @@@@@@ 

Conexión de una pantalla LCD de 16x2 caracteres a la Raspberry Pi 3 usando 4 bits

LCD 16x2 con programa Fecha-Hora


Esquema de conexión de la pantalla LCD 16x2 a la Raspberry Pi 3

Esquema conexión LCD 16x2 a Raspberry Pi 3

Programa de prueba que muestra la fecha y hora

	
// Muestra la Fecha y Hora en pantalla LCD 16x2 tipo HD44780
// Compilar con:  gcc -o fecha fecha.c -lwiringPi -lwiringPiDev
// Debe de estar instalada la librería wiringPi: https://projects.drogon.net/raspberry-pi/wiringpi/

#include <wiringPi.h>
#include <lcd.h>
#include <stdio.h>
#include <time.h>

//          WIRINGPI PIN     PIN FISICO   PIN LCD
#define LCD_RS  25       //    37           4 Register select
#define LCD_E   24       //    35           6 Enable pin
#define LCD_D4  23       //    33          11 Data pin 4 del LCD
#define LCD_D5  22       //    31          12 Data pin 5 del LCD
#define LCD_D6  21       //    29          13 Data pin 6 del LCD
#define LCD_D7  14       //    23          14 Data pin 7 del LCD

int main()
{
    int lcd;
    wiringPiSetup();
    lcd = lcdInit (2, 16, 4, LCD_RS, LCD_E, LCD_D4, LCD_D5, LCD_D6, LCD_D7, 0, 0, 0, 0);

    while(1){
        time_t timer;
        char buffer_date[26];
        char buffer_time[26];
        struct tm* tm_info;

        time(&timer);
        tm_info = localtime(&timer);

        strftime(buffer_date, 26, "Fecha:%d/%m/%Y", tm_info);
        strftime(buffer_time, 26, "Hora: %H:%M:%S", tm_info);

        lcdPosition(lcd, 0, 0);
        lcdPuts(lcd, buffer_date);

        lcdPosition(lcd, 0, 1);
        lcdPuts(lcd, buffer_time);

        }
}