Exemplo prático e bem simples de como escrever uma mensagem em um display LCD Gráfico 128x64 KS0108 utilizando a Biblioteca Gráfica GLCD v3 e o circuito para simulação no Proteus 7.10 - SP0.
Circuito
Demonstração
Arquivos
Download - Arquivos e Library da Simulação
Em edit properties do componente Arduino Uno R3, configure o Clock Frequence em 16MHz.
Em edit properties do componente LGM12641BS1R, configure o LCD Clock Frequency em 1200kHz.
Ligações no Proteus:
LCD Arduino
-------------------------------
1 - CS1 A0
2 - CS2 A1
3 - GND GND
4 - VCC +5
5 - VO +5
6 - DI A3
7 - R/W A2
8 - E A4
9 - DB0 8
10 - DB1 9
11 - DB2 10
12 - DB3 11
13 - DB4 4
14 - DB5 5
15 - DB6 6
16 - DB7 7
17 - RST +5
18 -
* * *
Parabéns, me ajudou bastante no projeto que estou fazendo!
ResponderExcluirObrigado, esta é a intenção. Compartilhar para ajudar.
ResponderExcluirmto bom !!!!! continue os posts
ResponderExcluirtem o codigo ai mano?
ResponderExcluirExistem vários exemplos na pasta x:\Arduino\libraries\glcd\examples\ utilizei o GLCDdemo.
ResponderExcluirvlw mano!!! tu es o kra!!! vou ver!!!
ResponderExcluirComo voce declarou a pinagem no codigo do arduino?? por favor me responda.
ResponderExcluir/*
Excluir- Matheus, segue exemplo com as instruções de declaração.
- Glcd Teste da configuração - Placa Arduino Uno
- Os arquivos de configuração estão na pasta "\config" da lib.
- Basta declara no include o arquivo correspondente a sua placa
Exemplo:
#include "ks0108_Arduino.h" // Para Arduino Uno
#include "config/ks0108_Mega.h" // Para Arduino Mega
*/
// Obs: No include troque aspas " " por sinal de menor e maior < >
#include "glcd.h"
#include "ks0108_Arduino.h" // Para Arduino Un
#include "fonts/allFonts.h" // Para acessar todas as fontes
int count = 0;
void setup()
{
GLCD.Init(NON_INVERTED); // inicializa a lib com fundo claro letras escuras
//GLCD.Init(INVERTED); // inicializa a lib com fundo escuro letras claras
GLCD.ClearScreen(); // Limpa o Lcd
GLCD.SelectFont(System5x7); // seleciona esta fonte
GLCD.print("Ola. Tudo Bem?"); // imprime uma mensagem
delay(3000); // aguarda 3seg
}
void loop()
{
GLCD.ClearScreen(); // Limpa o Lcd
GLCD.DrawRect(0, 0, 64, 61, BLACK); // retângulo no lado esquerdo da tela
GLCD.DrawRoundRect(68, 0, 58, 61, 5, BLACK); // retângulo arredondado lado direito
for(int i=0; i < 62; i += 4)
{
GLCD.DrawLine(1, 1, 63, i, BLACK); // desenhar linhas da esquerda para baixo lado superior direito do retângulo
}
GLCD.DrawCircle(32, 31, 30, BLACK); // círculo centrado no lado esquerdo da tela
GLCD.FillRect(92, 40, 16, 16, WHITE); // limpa posição anterior
GLCD.CursorTo(5, 5); // posiciona o cursor para impressão do texto
GLCD.PrintNumber(count); // imprimir um número na posição atual do cursor
count = count + 1;
delay(1000); // aguarda 1seg
}
disculpe , cual es el codigo que utiliza en la simuacion?
ResponderExcluirHola, He actualizado el enlace para descargar la Biblioteca GLCD 3.0
ResponderExcluirYo uso el ejemplo GLCDdemo.ino que enconta en la carpeta \glcd\examples\GLCDdemo
Zedequias
Ya probe con la version 1.8.1, 1.6.5, 1.0.6 mas não funciona intento con un Arduino uno pero no lo puedo compilar
ResponderExcluirRealmente características V3.0 GLCD no son compatibles con estos verções el Arduino IDE.
ExcluirEjemplo de error que aparece:
\glcd/fonts/SystemFont5x7.h:48:28: error: variable 'System5x7' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
static uint8_t System5x7[] PROGMEM = {
Para resolver este error modificado en todos los puntos que se producen declaración de error (estática) a (const)
ejemplo para corregir el error:
const static uint8_t System5x7[] PROGMEM = {
Descargar los archivos de simulación de nuevo, esta incluido ahora briblioteca con estas correcciones.
Gracias por comumivar estos errores.
Zedequias Fonseca
Este comentário foi removido pelo autor.
ResponderExcluirHola gracias por tu respuesta, ya pude solucionarlo usando la librería "U8glib.h" y comunicando la pantalla por comunicación Serial, para esto se pone el PIN PSB a GND y se usa esta declaración en el sketch de arduino:
ResponderExcluirU8GLIB_ST7920_128X64 u8g(13, 11, 12, U8G_PIN_NONE);
Con esto se puede manejar la pantalla con tan solo 3 Pines del Arduino y trabaja muy bien.
Muchas gracias amigo por tu ayuda.
Un abrazo desde México.
Hola, mi gráfica LCD no tienen comunicación en serie al igual que la pantalla LCD 128x64 - ST7920. Me alegro de haber ayudado. Abrazos.
ExcluirZedequías Fonseca
Ciudad del Prado, Bahia, Brasil.