PSoC Development Kit – Microprocessador PSoC 3 – Parte 4 De 5

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.

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.

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.

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: 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 FilesGenerated_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.

É 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.

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.

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

Figura 7: Imprimindo somente 1 bloco.

Article Name: PSoC Development Kit – Microprocessador PSoC 3 – Parte 4 De 5
Description: Utilizando O LCD Acoplado A Placa De Desenvolvimento.
Author: Rodolfo Labiapari Mansur Guimarães
Publisher Name: Laboratório iMobilis

Referência: http://www2.decom.ufop.br/imobilis/psoc-development-kit-microprocessador-psoc-3-parte-4-de-5/

Let's talk

Se você deseja obter uma consultoria gratuita, sem quaisquer obrigações, preencha o formulário abaixo e entraremos em contato com você.





    Privacy Overview

    This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.