Arduino Lab 03 Display LCD TFT 1,44 e RTC MCP79410

Documentos relacionados
Arduino Lab 02 Sensor de luminosidade e display de LCD 16 2

Arduino Lab 01 Sensor de luminosidade BH1750FVI

Arduino Lab 04 Leitura de temperatura com o sensor MCP9700

Arduino Lab 05 Leitura e

Arduino Lab 07 Leitura de temperatura e indicação em um display GLCD de

I2C PROTOCOLO DE COMUNICAÇÃO

MSP430 Lab 05 Biblioteca básica para comunicação com o Display do Nokia5110

Arduino Lab 08 Banco de teste para memória RAM HM6116 de 16k

MSP430 Lab 06 Comunicação com display de 40 2 e análise das formas de onda no analisador lógico

Módulo de Cristal Líquido LCD

Arduino Lab 19 Leitura e datalogger de temperatura utilizando um termopar tipo K e o MAX6675

MINICURSO - PLATAFORMA ARDUINO Eixo de Informação e Comunicação Gil Eduardo de Andrade

07/06/2015. Outras características importantes em Microprocessadores/Microcontroladores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

PLATAFORMA PARA ESTUDO EM PROGRAMAÇÃO DE MICROCONTROLADORES FAMÍLIA 8051

ARDUINO. Profº. Engº. Robson Dias Ramalho

PSI2662 Projeto em Sistemas Eletrônicos Embarcados: Sensores e Atuadores. Apresentação do Kit Freescale Freedom FDRM-KL25Z e Portas de Entrada e Saída

Capítulo 14. Expandindo as portas de comunicação 8031 com a PPI Interface PPI 8255

Arquitetura do Microcontrolador Atmega 328

Prof. Adilson Gonzaga

Registradores de Deslocamento e Memórias

Sistemas Embarcados:

Memórias. Memórias: Utilização:

Intel Edison Lab 02 Conexão com um Oxímetro de pulso via Bluetooth LE

Montagem do Robô. Especificações. domingo, 28 de agosto de 11

CAPÍTULO 5. Interfaces I 2 C e SPI. Interface I 2 C. Interfaces e Periféricos 37

INTRODUÇÃO: MICROCONTROLADORES

Intel Edison Lab 02 Conexão com um Oxímetro de pulso via Bluetooth LE

Arduino Lab 10 Interface com um touch capacitivo, controlador GT801 Goodix

ELE Microprocessadores I

Desenvolvimendo de um dispositivo medidor de potência com base nas seguintes características: Redução do consumo de energia eléctrica; Necessidade de

Real Time Clock MC146818A,DS12C887

Kit de desenvolvimento ACEPIC PRO V3.0

Prof. Adilson Gonzaga

Introdução ao Uso do LCD Inteligente (Versão Preliminar) Por Gilson Yukio Sato. Introdução

Arduino Lab 09 Leitura de

Interfaces Seriais. Disciplina de Microcontroladores. Prof. Rubão

Placa DMX 108 canais LED (versão 2)

Circuito Eletrônico. Entendendo o circuito eletrônico na robótica. domingo, 28 de agosto de 11

Introdução aos microcontroladores Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial

Manual Técnico Arduino Supervisório RTC (Real Time Clock)

Microprocessadores I. Aula 6 Arquitetura do Microprocessador Pinagem e Diagrama de Temporização

BARRAMENTO I2C. Esta transmissão requer apenas duas linhas seriais; uma para os dados e outra para o clock.

Capítulo 5. Parte de Controle

EL08D - MICROCONTROLADORES

SICILIANO TECNOLOGIA

Oxímetro Bluetooth e LCD 16 2 em Python

Programa Trainee 2012 Módulo 4 Microcontroladores AVR

Comunicação USB com o PIC Vitor Amadeu Souza

A c t i o n B u s i n e s s w w w. a c t i o n b u s i n e s s. c o m. b r Página 1

Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP. Memórias de Dados e de Programa

HARDWARE DOS RELÉS NUMÉRICOS

Suporta os microcontroladores: R. Leonardo da Vinci, Campinas/SP CEP F.: (19) Kit de Desenvolvimento ACEPIC 28

FACULDADE LEÃO SAMPAIO

Projeto de Sistemas Eletrônicos

KIT DIDÁTICO PIC-2377

O Pino P2.7 não está sendo usado e cada Display mostrará valores de 0 a 9.

SEL-433 Aplicação de Microprocessadores I. Prof: Adilson Gonzaga

Arquitetura e Organização de Computadores. Conjunto de Instruções da Arquitetura CompSim

O protocolo SPI. 1 - Introdução. 2 Ligação física

Introdução à Ciência da Computação

ELE Microprocessadores I. AULA 12 Arquitetura do Microprocessador Interface com as memórias

Trabalho Prático Nº3 Porta Paralela

Painel Luminoso com LEDs

Sistemas Embebidos I , Tiago Miguel Dias ISEL, ADEETC - Secção de Eletrónica e Telecomunicações e de Computadores

Prof. Dr. Rafael Traldi Moura Escola Politécnica da Universidade de São Paulo Departamento de Engenharia Mecatrônica e de Sistemas Mecânicos

Monitores Vídeos. Hardware de saída padrão em computadores. Vídeo - Definido a partir de uma matriz de linhas e colunas

Lista de Exercícios 2

Arduino Lab 06 Leitura de um sensor de temperatura do tipo NTC com o Arduino

LCDs Inteligentes. LCD Inteligente. Gabriel Kovalhuk DAELN / UTFPR

Circuitos Lógicos. Profa. Grace S. Deaecto. Faculdade de Engenharia Mecânica / UNICAMP , Campinas, SP, Brasil.

Projeto Final de Microcontroladores 2 Alarme de Temperatura

ET53C - SISTEMAS DIGITAIS

Manual de Serviço GBA

Mapeamento de memória e conexões do Controlador CP-WSMIO2DI2DO

Microcontrolador 8051:

Minicurso de Arduino. Laboratório de Inovação em Sistemas em chip npiti - UFRN

Componentes de um computador Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial MICROCONTROLADORES PROFESSOR FLÁVIO MURILO

APRESENTAÇÃO DO KIT CPLD_EE01

Microcontroladores PROF. ME. HÉLIO ESPERIDIÃO

Latch SR (Set/Reset)

A placa descrita pode receber alimentação pela conexão USB ou por uma fonte de alimentação externa.

Usando display LCD tipo 16x2

Pequenos Projetos com Arduino

Jadsonlee da Silva Sá

Microcontroladores PIC16 - XM 116 -

Transcrição:

Arduino Lab 03 Display LCD TFT 1,44 e RTC MCP79410 Dispositivos a serem utilizados neste Lab Neste Lab iremos discutir o funcionamento do display de LCD TFT de 1,44 e do relógio de tempo real (RTC) MCP 79410. Um código será implementado para integração entre estes dois componentes e o Arduíno Nano. Introdução O relógio de tempo real MCP 79410 foi desenvolvido pela Microchip para aplicações de baixo consumo. Faz uso de compensação digital de tempo para atingir uma melhor precisão no relógio e no calendário interno. Possui também um pino que pode ser programado como saída de referência de clock ou para dois modos de alarme diferentes entre si. Uma pequena memória não volátil para armazenar dados e uma memória SRAM, alimentada pela bateria de backup, também fazem parte deste CI. Neste Lab iremos utilizar um pequeno módulo contendo o RTC, cristal de 32768 Hz, resistores de Pull-up e o soquete de bateria.

Módulo RTC MCP 79410 O display de LCD TFT utilizado neste Lab faz uso do controlador ILI 9163C, da empresa Ilitek, e possui uma resolução de 128 128 pixels coloridos (RGB). Seu tamanho reduzido, medindo apenas 1,44 de tela, o faz ideal para aplicações embarcadas. Display LCD -TFT ILI9163C Apenas 4 fios são necessários para estabelecer uma comunicação com este display utilizando o protocolo SPI. Possui também um próprio frame buffer interno para endereçamento dos pixels. Esta característica faz com que este possa ser usado com qualquer tipo de microcontrolador, até mesmo aqueles com pequena memória.

O Arduino Nano já é conhecido desta série de Lab s e já foi citado no Arduino Lab 01. Lembrando aos leitores que esta placa é totalmente compatível com o Arduino UNO em relação ao número dos pinos e tamanho das memórias. Arduino Nano Display TFT LCD Display de LCD A constituição de uma tela de LCD simples é caracterizada pela disposição dos compostos de cristal líquido sobre 2 lâminas translúcidas e polarizadas, denominadas substratos. No entanto, essas lâminas formam um eixo perpendicular, como se fossem uma representação de uma matriz. Desse modo, ocorrem polarizações distintas entre ambas.

Construção Display de LCD A função das células que compõem os compostos químicos presentes no cristal líquido é a de atuar como guias da luz captada pelo receptor do display. Assim, esta é conduzida até o campo visual, que, assim, reproduzirá a imagem conforme ela foi emitida pelo raio de luz. Esse deslocamento só é possível devido à formação de campos magnéticos nas lâminas, que por sua vez geram impulsos elétricos, os quais irão transportar os pontos luminosos. Aprofundando um pouco mais, uma tensão é aplicada a camada de cristal líquido provocando um giro do cristal. Entre a camada polarizada e o cristal líquido, que foi girada, a intensidade da luz de fundo é reduzida em cada célula RGB e, dependendo da tensão aplicada, as cores surgirão como resultado desta polarização, aparecendo uma combinação entre as cores primárias (vermelho (Red), verde (Greem) e azul (Blue)) para formar as imagens. Display de TFT LCD A tecnologia Thin Film Transistor Liquid Crystal Display (TFT LCD) é a tecnologia de telas mais comum usada em celulares, monitores e outros dispositivos eletrônicos. É uma variação do Display de Cristal Líquido (LCD) que utiliza a tecnologia Transistor de Película Fina (TFT) para controlar cada ponto na

tela, conhecido como pixel, e não linhas e colunas como era feito nas telas de raios catódicos, oferecendo assim melhor qualidade de imagem e maiores resoluções quando comparado com a geração de telas LCD. Construção LCD-TFT Estes displays necessitam de uma luz de fundo, chamado de backlight, sempre acesa. A matriz TFT controla a passagem das cores primárias da visão vermelho, verde e azul através de filtros dessas cores. Cada pixel tem 3 células, uma para cada cor, que são transparentes em seu estado natural, porém ficam opacas ao receber uma carga elétrica, o que impede a passagem de luz. Pelo fato do preto nessa tela não ser tão intenso, pois é gerado apenas pela opacidade das células, o contraste fica debilitado, pois as cores escuras não ficam vivas. Dados Técnicos do Display

Imagem do display funcionamento em O display utilizado neste Lab, como já mencionado anteriormente, é controlado pelo driver ILI9163C. Este driver oferece diversas formas de comunicação com periféricos como microprocessadores e microcontroladores. Algumas das características principais deste display podem ser conferidas abaixo: Interface: 8-bits, 9-bits, 16-bits, 18-bits com MCU série 8080 8-bits, 9-bits, 16-bits, 18-bits para MCU série 6800 6-bits, 16-bits, 18-bits RGB interface 3-pin/4-pin Interface SPI Display mode: Full color mode (Standby desligado): 262K-cores Reduced color mode (Standby ligado): 8-colors (3bits MSB bits mode) Arquitetura de baixo consumo: VDDI = 1.65V ~ 3.3 V (interface I/O) VCI = 2.5V ~ 4.0 V (analog)

O diagrama de blocos deste controlador está ilustrado abaixo. Diagrama blocos do controlador display Utilizamos neste Lab a interface SPI de 4 vias para comunicação entre o controlador e o Microcontrolador. Os pinos do display utilizados foram: CS (chip enable)

D/C (data/ command select) SCL (serial clock) SDA (serial data input/output). O modo de escrita nos registradores do display, que é o modo mais utilizado geralmente nas aplicações, significa que o microcontrolador deseja escrever comandos e dados no driver do LCD. No nosso caso, para a comunicação serial a 4 pinos, os pacotes de dados contêm os bytes de transmissão e os bits de controle que são transmitidos pela linha D/C. Se o pino D/C está em nível baixo Low o byte transmitido pelo microcontrolador é interpretado como sendo comandos dados ao driver do LCD. Já se o pino está em nível alto High, o byte transmitido é armazenado na memória de dados RAM ou no registrador de comandos como parâmetro. Comunicação SPI em4 pinos Qualquer instrução pode ser enviada em qualquer ordem para o driver. O bit mais significativo (MSB) deve ser transmitido primeiro. A interface serial é iniciada quando o pino CS está em nível alto. Neste estado, deve-se haver pulsos na linha de clock SCL ou então a linha SDA não terá nenhum efeito. A borda de descida no pino CS habilita a interface serial e indica o inicia da transmissão dos dados. Quando CS está em nível alto, o clock na linha SCL é ignorado. Na borda de descida de CS, SCL pode está em nível alto ou baixo por ser uma linha de clock. As amostras na linha SDA são feitas na borda de subida da linha CS. O pino D/C indica

quando o byte é comando (Low) ou parâmetro ou dados da RAM (High). Um diagrama simplificado de toda a dinâmica de escrita de parâmetros no drive do display está ilustrado logo abaixo. Para aqueles que desejam um aprofundamento na dinâmica de comunicação com este display, o datasheet é uma ótima fonte de informação. Diagrama comunicação SPI Relógio de tempo real RTC Um relógio de tempo real é um dispositivo eletrônico que armazena os dados de hora e data em uma memória interna. A retenção destes dados geralmente é feita utilizando uma bateria de backup de lithium de 3V. Este CI tem a capacidade de continuar o clock de contagem mesmo após o desligamento da alimentação (Bateria mantida). Neste Lab estamos utilizando o MCP 79410 da Microchip. O protocolo I2C é utilizado para a comunicação entre o microcontrolador e o RTC. As características mais importantes deste RTC estão descritas abaixo:

Gerenciamento automático de dias, meses e anos inclusive bissextos. Trabalha com formato em 12 AM/PM ou 24 horas. Gerenciamento de dias da semana (Domingo, segunda, ) Memória SRAM de 64 bytes que pode ser alimentada pela bateria de backup. Dois alarmes programáveis. Uma saída de dreno aberto para receber sinais de clock (32768 Hz, 8192 Hz, 4096 Hz ou 1 Hz) ou mesmo para a saída do alarme programável. Memória EEPROM de 1 Kbit (8 bytes paginados). Bus I2C para comunicação com o mundo em 100 ou 400 KHz Pode ser alimentado de 1,8 a 5 volts. Pode ser calibrado para atingir precisão de 1 ppm Muda automaticamente entre a alimentação pela bateria de backup e alimentação pelo VCC. Temperatura de trabalho entre -45 a 80 C. A disposição dos pinos deste CI está ilustrada na figura abaixo. Pinagem do RTC

Um diagrama de blocos simples sobre a arquitetura deste dispositivo está ilustrado na figura abaixo. Diagrama dos registradores do RTC Na linha de dados do bus I2C, O dispositivo vai ser endereçado utilizando os seguintes endereços listados: Tabela de endereços do RTC

Características da transmissão A comunicação entre o RTC e um dispositivo controlador obedece uma sequência de operação ilustrada abaixo: Sequência de operação protocolo I2C As letras destacadas na figura acima contêm os seguintes parâmetros: (A) Bus Not Busy Linha de dados não ocupada: Ambos as linhas de dados e clock permanecem em nível alto. (B) Start Data Transfer Uma transição de nível alto para baixo da linha SDA enquanto a linha de clock (SCL) está em nível alto determina uma condição de start. Todos os comandos devem ser precedidos de uma condição de start. (C) Stop Data Transfer Uma transição de nível baixo para alto da linha SDA enquanto o clock está em nível alto, determina uma condição de Stop. Todas as operações devem terminar com a condição de Stop. (D) Data Valid O estado da linha de dados representa um dado valido quando, após uma condição de start, a linha de dados é estável para a duração de um período de nível alto do sinal de clock. O dado nesta linha deve ser trocado durante o período de nível baixo do sinal de clock. Há somente um bit de dado por pulso de clock. Acknowledge ACK Reconhecimento: Cada dispositivo, quando endereçado, é obrigado a gerar um sinal de ACK

após a recepção de cada byte. Mapa de memoria e registradores O MCP79410 possui quatro diferentes blocos de memoria: Os registradores do RTCC, Memória SRAM, EEPROM de 1 Kbit com proteção via software, e uma EEPROM protegida. Os registradores do RTCC e da memória SRAM compartilham o mesmo espaço, acessado atraves do byte de controle 1101111X. A regiao de memória EEPROM está em um espaço de endereço diferente e pode ser acessada utilizando o byte de controle 1010111X. O RTC não irá reconhecer os locais onde desejamos escrever ou ler dados se o endereço especificado estiver fora do range. Uma figura com o mapa de memória esta ilustrada abaixo. Mapa de memória de RTC

Os registradores do RTCC estão contidos no endereço 0x00 até 0x1F. Temos também 64 bytes de memória SRAM para acesso do usuário, localizada no endereço 0x20 até 0x5F. A SRAM é um bloco separado dos dos registradores do RTCC. Todos estes dados são retidos enquanto a bateria de backup estiver os alimentando. Uma tabela mostrando detalhadamente os registradores do RTCC é mostrado logo abaixo. Em nossa aplicação, os principais registradores a serem acessados estão localizados entre os endereços 0x00 e 0x06. Mapa de memórias detalhado RTC Serão descritos detalhadamente, no código feito para o Arduino, o acesso para leitura e escrita deste registradores Teste e montagem Para testar esta pequena aplicação, utilizaremos a biblioteca

elaborada pela Limor Fried e fornecida pela Adafruit Industries para estabelecer a comunicação com o controlador do display. Para a comunicação com o RTC, um pequeno e simples código está embutido na aplicação principal, não sendo necessária nenhuma biblioteca extra. Baixe a biblioteca neste link, decompacte Adafruit-GFXLibrary-master.zip e TFT_ILI9163C-master.rar na pasta libraries da IDE do arduino de sua preferência, abra novamente a IDE a carregue o exemplo Nano_Display_rtc_mcp79410 para testar a aplicação. O esquema de ligação entre estes três dispositivos se encontra ilustrado abaixo. Esquema de ligação do projeto O algoritmo para teste do display e do RTC será apresentado abaixo e possui uma explicação detalhada o para melhor entendimento do leitor [crayon-58945c3db4a5a717196229/] Uma imagem da montagem final e teste na protoboard esta é ilustrado abaixo.

Montagem final em uma protoboard Conclusão Este pequeno e interessante projeto pode servir como base para grandes aplicações envolvendo displays de LCD-TFT e RTC, onde datalogs podem ser montados, ou até mesmo um aparelho portátil em que o utilizador consiga acompanhar na tela os dados de medições de sensores relacionados a data e hora exatas do dia. As aplicações são infinitas, depende apenas da imaginação do utilizador..