Utilizando o LCD PSoC Acoplado a Placa de Desenvolvimento

Uso do LCD PSoC Caso ainda não tenha lidos os posts anteriores, acesse o link: http://www2.decom.ufop.br/imobilis/psoc-development-kit-microprocessador-psoc-3-parte-3-de-5/ 😀

Introdução ao Propósito do Projeto LCD PSoC

É importante lembrar que o PSoC Creator possui várias bibliotecas de componente prontos para o uso. Estas além de serem otimizadas, facilitam a vida do projetista pois incluir e utilizar estas torna tudo simples e rápido deixando de lado as preocupações de implementação do componente.

Como exemplo, para criar um projeto que utilize o LCD, basta utilizar a biblioteca que o PSoC Creator oferece. Isso pois componente está acoplado à placa de desenvolvimento (pertencente ao kit original) e caso o usuário deseje utilizar alguma outra (mesmo que esta não faça parte do kit original) basta verificar se a biblioteca de componentes do PSoC Creator possui suporte a esta e usar.

Criando o Projeto LCD PSoC

Então o primeiro passo para a utilização de uma biblioteca, deve ser criar um Novo Projeto. Então cria-se um novo projeto em File, Open, Project… . Será selecionado o microprocessador que será usado no projeto que neste caso é o PSoC 3 Design. É possível ver que nas abas abaixo, existem vários modelos para demonstração da ferramenta tudo para facilitar o entendimento e agilizar as tarefas do projetista mas não será selecionado nenhuma dessas pois será criado um projeto novo e este será feito todo passo a passo.

Adição e Configuração de Bibliotecas LCD PSoC

Após criado o projeto, será exibida uma janela com um palco branco no centro. No canto esquerdo é exibido todos os projetos pertencentes ao Workspace (conjunto de projetos), todos os arquivos dos projetos organizados de uma maneira hierárquica para fácil visualização. O projeto que estiver com o nome em negrito é o que está ativo no momento. Deve-se tomar atenção para que ao trabalhar com vários projetos é importante diferenciar quais alterações devem ser feitas em quais projetos pois podem confundir o projetista e realizar alterações em arquivos de projetos diferentes. No canto direito é exibido um catálogo de componentes que podem ser utilizado no projeto. Tais componentes já estão todos prontos e o único passo que devem ser feito é configurar de acordo com o propósito do projeto. A configuração é intuitiva e facilitada sendo realizada em instantes. E, por final, no centro localiza-se o palco onde é exibido todos os componentes que estão acoplados ao projeto.

Para utilizar o módulo LCD, componente já pertencente ao CY8CKIT-001, basta na seção do canto direito na aba Cypress ir em Display e em seguida arrastar o componente com nome Character LCD [v2.10] para o palco (a etiqueta do nome pode diferenciar pelo fato da biblioteca sofrer alterações ou melhorias).

A seguir a Figura 1 exibindo como o palco deve ficar:

Figura 1: Palco.

Figura 1: Palco.

Porém, simplesmente arrastar o componente para o palco não indica que o projeto está pronto para ser construído. Deve-se definir quais pinos do processador serão conectados os componentes pertencentes ao projeto para que estes funcionem corretamente.

Definição dos Pinos do Projeto LCD PSoC

Então, no canto esquerdo, deve-se abrir o arquivo nomeDoProjeto.cydwr (logo abaixo do TopDesing.cysch). Nele será definido os pinos de saída do processador que farão conexão com o componente LCD.

Aberto este arquivo, será exibida uma ilustração do processador acompanhado de seus pinos nas suas laterais como mostra a Figura 2. Assim, deve-se conectar os pinos corretamente no componente LCD através de configurações do PSoC Creator.

Figura 2: Pinagem.

Figura 2: Pinagem.

Com isso, basta alterar a pinagem do processador trocando os valores do campo Pin de 71..74, 76..78 para 95..99, 1..2. Assim, o resultado será como mostra a Figura 3:

Figura 3: Pinagem 2.

Figura 3: Pinagem 2.

Após isso, o microprocessador terá conexão direta com o componente podendo enviar sinais até ele.

Compilação do Projeto

A compilação é feita selecionando dentro do menu Build a opção Clear and Build. Ela limpará todo o trabalho antigo deste projeto (se este existir) e construirá/compilará o novo substituindo completamente o antigo pelo novo. Esta estratégia impede que qualquer instrução ou dados do projeto antigo interfira na execução do novo.

Adicionado este componente, após a primeira compilação, aparecerá todos as propriedades e funções para a execução deste.

Biblioteca do Módulo LCD PSoC Adicionado

Existem várias funções que agilizam o manuseio do componente (neste caso o LCD). São listados na Tabela 1 as mais importantes:

Tabela 1:

Tabela 1: Funções do LCD.

Definição do Código-fonte

Para iniciar a programação do projeto, deve-se abrir o arquivo main.c para desenvolver o código. Como qualquer programa escrito em linguagem C este projeto também pode ser modularizado em vários arquivos com extensões .h e .c para a fácil manutenção e controle sobre as funcionalidades e aspectos do sistema. Assim, arquivos de cabeçalho (.h) devem localizar na pasta Header Files e arquivos com código devem localizar em Source Files. Generated_Files é o local onde é exibido os arquivos após a compilação. Não se deve alterá-los pois estes podem ser substituídos após uma recompilação.

A seguir será mostrado um código simples que utiliza algumas funções que utilizarão o display LCD.

Código fonte

[code language=”c”]
// Adiciona bibliotecas padrões para o funcionamento
// Do projeto
#include <project.h>

// Define constantes
// Quantidade de Linhas
#define LCD_ROWS 2
// Quantidade de Colunas
#define LCD_COLUMNS 16
// Fontes padrões
extern uint8 const CYCODE lcd_customFonts[];

int main() {
// Define variáveis do programa
int8 height;
int8 width;
int8 row;
// Tempo de espera entre cada desenho
uint8 tempoEspera = 5u;

// Inicia o módulo
lcd_Start();

// Carrega as fontes padrões
lcd_LoadCustomFonts(lcd_customFonts);

// Limpa o LCD por precaução
lcd_ClearDisplay();

// Define a posição inicial para escrita
lcd_Position(0u, 0u);

// Imprime uma frase
lcd_PrintString("Testando o LCD");
// Muda de linha
lcd_Position(1u, 0u);
// Escreve outra frase
lcd_PrintString("(IFMG – Formiga)");
// Espera por 3 segundos (delay)
CyDelay(3000u);

// Realiza uma contagem regressiva de 3 segundos
lcd_ClearDisplay();
lcd_Position(0u, 0u);
lcd_PrintString("3");
CyDelay(1000u);

lcd_ClearDisplay();
lcd_Position(0u, 0u);
lcd_PrintString("2");
CyDelay(1000u);

lcd_ClearDisplay();
lcd_Position(0u, 0u);
lcd_PrintString("1");
CyDelay(1000u);

// Realiza impressões de barras verticais
// Apagando-as logo em seguida.
lcd_ClearDisplay();

// Percorre as colunas
for(width = 0; width < LCD_COLUMNS; width++)
{
// Percorre as linhas
for(row = LCD_ROWS; row >= 0; row–)
{
//Preenche o caractere
for(height = 0; height < 8; height++)
{
lcd_DrawVerticalBG(row -1 , width, 3, height);
//A cada linha preenchida, espera-se um tempo
CyDelay(tempoEspera);
}

}
// Apaga a barra criada para a construção da nova.
lcd_ClearDisplay();
}

// Certifica que fio apagado
lcd_ClearDisplay();

// Reimprime porém sem apagar as barras
for(width = 0; width < LCD_COLUMNS; width++)
{
for(row = LCD_ROWS; row >= 0; row–)
{

for(height = 0; height <= 8; height++)
{
lcd_DrawVerticalBG(row, width, 1, height);
CyDelay(tempoEspera);
}
}
}

// Apaga a impessão pouco a pouco
for(width = 0u; width < LCD_COLUMNS; width++)
{
for(row = 0; row <= LCD_ROWS; row++)
{
for(height = 8; height >= 0; height–)
{
lcd_DrawVerticalBG(row, width, 1, height);
CyDelay(tempoEspera);
}
}
}

lcd_ClearDisplay();

tempoEspera = tempoEspera + 30;

return 0;
}
[/code]

Resultado do Projeto com LCD no PSoC

Assim, com a finalização do desenvolvimento, o projeto estará memorizado no microcontrolador para sua execução. Assim, como foi decidido definir o código dentro do loop infinito, ele será amiúde sendo facilmente perceptível o seu funcionamento.

Ao final, foram capturadas algumas imagens durante seu funcionamento.

A Figura 4 mostra uma pequena apresentação em um momento da execução.

Figura 4: Imprimindo uma etiqueta.

Figura 4: Imprimindo uma etiqueta.

É possível ver que nas Figuras 5, 6 e 7 (principalmente nas duas últimas) que a imagem não captura perfeitamente a impressão no módulo LCD. Isso deve ao fato das instruções serem executadas numa velocidade altíssima em relação a captura da câmera que não consegue capturar.

A Figura 5 mostra o LCD sendo impresso em linhas horizontais. Essas linhas preenchem um bloco de 5×8 no qual é mostrado na figura. Esses só serão apagados quando o LCD estiver todo preenchido.

Figura 5: Sem apagar.

Figura 5: Sem apagar.

Após de todos os blocos estarem preenchidos no LCD, eles serão apagados um a um na mesma direção no qual foram preenchidos como mostra a Figura 6.

Figura 6: Apagando.

Figura 6: Apagando.

Imprimindo a apagando um bloco ao mesmo tempo (Figura 7).

Figura 7: Imprimindo somente 1 bloco.

Figura 7: Imprimindo somente 1 bloco.

Até o próximo Post 😀

Summary
PSoC Development Kit – Microprocessador PSoC 3 – Parte 4 De 5
Article Name
PSoC Development Kit – Microprocessador PSoC 3 – Parte 4 De 5
Description
Utilizando O LCD Acoplado A Placa De Desenvolvimento.
Author
Publisher Name
Laboratório iMobilis
Publisher Logo

One thought on “PSoC Development Kit – Microprocessador PSoC 3 – Parte 4 de 5

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*
*
Website