Introdução a Engenharia Elétrica Comunicação serial, Acelerômetro, Display LCD

Documentos relacionados
Introdução a Engenharia Elétrica

LED RGB, PWM, Comunicação Serial, Acelerômetro

PSI2662 Projeto em Sistemas Eletrônicos Embarcados: Sensores e Atuadores. Temporizadores e Interrupção, AD/DA, Display, Integração com MatLab

Projeto Final de Microcontroladores 2 Alarme de Temperatura

KIT NXP FREEDOM FRMD KL25Z

KIT NXP FREEDOM FRDM KL25Z

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

Aula S8. Introdução a Engenharia Elétrica Módulo 1 Conversores AD e DA

LCDs Inteligentes. LCD Inteligente. Gabriel Kovalhuk DAELN / UTFPR

EL08D - MICROCONTROLADORES

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

Módulo de Cristal Líquido LCD

PSI3441 Arquitetura de Sistemas Embarcados

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

Cerne Tecnologia e Treinamento

Kit de desenvolvimento ACEPIC Light

Comunicação Serial 1

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

Plano de Aula. 1 o semestre. Aula número 011 Periféricos Display LCD, Conversor AD e conversor DA (PWM)

Guia da Placa de desenvolvimento PD Mega16 N1

Oxímetro Bluetooth e LCD 16 2 em Python

EXPERIÊNCIA 05 - MEDIÇÃO DE SINAIS DC E AC UTILIZANDO MICROCONTROLADOR

Por Fernando Koyanagi

Circuito de Recepção Serial Assíncrona

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

SICILIANO TECNOLOGIA

Kit de desenvolvimento ACEPIC PRO V3.0

Terminal de Operação Cimrex 90

Usando display LCD tipo 16x2

Manual do usuário - Kit DLS v4.0. Kit DLS v4.0 Display LCD serial Manual do usuário. Copyright VW Soluções

Depois de configurada nossa comunicação serial podemos enviar vários comandos para comunicação entre o computador e o Arduino:

Introdução a Engenharia Elétrica

Projeto de Sistemas Eletrônicos

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

Manual DETECTOR NH (11) (62) (11) (62)

Microcontroladores PIC16 - XM 116 -

Introdução do Arduino para aquisição de dados e controle de instrumentos

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

DGA21 SISTEMA FIXO COM SUPERVISÓRIO PARA DETECÇÃO DE GASES NOCIVOS E AMÔNIA IP 65. Manual

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento

MANUAL PARA INSTALAÇÃO

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

Profª Danielle Casillo

AULA 6 - INTRODUÇÃO AO ARDUINO Revisão de Eletrônica Digital e introdução aos Sistemas Computacionais.

C:\Users\House\Desktop\fluxo.c 1: /****************************************************************************** 2: * Objetivo: Este projeto visa

MANUAL DE INSTALAÇÃO E PROGRAMAÇÃO CONVERSOR - IP / USB / SERIAL RV1

Cerne Tecnologia e Treinamento (21) (11) MSN: Skipe: cerne-tec

Display Torre. Índice

Curso de automação industrial utilizando o CLP Haiwell

Copyright 2013 VW Soluções

Microcontroladores PIC18 - XM 118 -

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento. Apostila de BASIC para PIC16F628A

Gateway PowerView. Guia Rápido

Manual Técnico Protuino FTDi

Matriz Vídeo Componente & Áudio Estéreo & RS x 8 TRANSCORTEC STATUS OUTPUT 2 INPUT

Gradual Tecnologia Ltda

Guia da Experiência 10 Fonte PWM controlada por AVR em Microcontrolador

Manual Técnico. Indicador Para Células de Carga. Modelo: GI-4910

GUIA BÁSICO DE UTILIZAÇÃO E INSTALAÇÃO DO LINUX OUT OF THE BOX KIT MERCURIOIV

Microcontroladores PROF. ME. HÉLIO ESPERIDIÃO

Leitor MaxProx-PC. O leitor de cartões de proximidade MaxProx-PC é destinado aos Integradores de Controle de Acesso.

Interface Comutadora USB para Microterminais RS-485

ou

Módulo Conversor RS-232/RS-485

Usando Display Gráfico com C18 e C30

Professor Marcelo Josué Telles Porta LPT, programação, componentes eletrônicos, sistema binário...

Plano de Aula. 1 o semestre. Aula número 012 Periféricos Comunicação Serial. Conhecer os princípios de comunicação serial

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

Training Box Duo Mini Curso.

- Microterminais Série TC _ rede IP via cabo - - Microterminais Série TW _ rede IP wi-fi _ TED série: série:

Manual da Pinagem dos Microcontroladores BASIC Step 1 e M8 + Esquema de instalação do cabo

Modelo Display de cristal líquido Nº de teclas

3. CARACTERÍSTICAS TÉCNICAS

ÍNDICE 2- ESPECIFICAÇÕES GERAIS 3 3- DETALHAMENTO DO PRODUTO TECLADO LEITOR DE CARTÕES MAGNÉTICOS DISPLAY 8

Projeto para interligação do Teclado Matricial 4X3 o módulo PIC PCI-208 Princípio de Funcionamento:

CS-Ethernet. Conversor Serial Ethernet RS232/RS485. Observe Pense Solucione. Manual de Utilização. Ethernet TCP/IP - MODBUS Serial RS232 Serial RS485

TERMÔMETRO COM O LM35 Parte I

PROTO-BEE Versão 1.0 Março/2010 Copyright, ROGERCOM Fones: / Cel Brasil

Programação em Linguagem C

TCI 120 Conversor de interface USB RS232

Conjunto Extensor 4K HDMI HDBaseT, 100 m

Referência: PDF Revisão: 0 Arquivo : PDF doc Atualizado em: 7/6/2002

Conjunto de Extensor 4K HDMI HDBaseT, 70 m

Conjunto Extensor KVM 4K HDMI, HDBaseT

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Manual de operação. Fonte de tensão e corrente digital FTC-111

Manual Placa DMX 36 pixels RGB

Sumário Introdução Revisão de Números Complexos Programação em Delphi... 94

KIT DIDÁTICO PIC-2377

Manual do Usuário. Placa de Desenvolvimento para Controlador BL1800 Jackrabbit

Interligação de Terminais com Modem

Interface Comutadora Serial para Microterminais RS-485

MODULO PR-7SEG-4 Experiência 01:

MÓDULO INTELIGENTE COM SOFTWARE SIMPLES E PRATICO PARA PROGRAMAÇÃO

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

Programação Estruturada

Transcrição:

Introdução a Engenharia Elétrica - 323100 Aula S12 Comunicação serial, Acelerômetro, Display LCD Escola Politécnica da Universidade de São Paulo Departamentos da Engenharia Elétrica PCS Computação e Sistemas Digitais PEA Energia e Automação Elétricas PSI Sistemas Eletrônicos V1.4 PTC Telecomunicações e Controle Outubro de 2014

2 Comunicação Serial - revisão Comunicação com um PC host através de um "USB Virtual Serial Port" através do mesmo cabo USB que é usado para a programação. Isso permite que você: Imprima mensagens para um terminal host PC (útil para depuração!) Leia a entrada do teclado do PC host Comunique-se com aplicativos e linguagens de programação em execução no PC host que podem se comunicar com uma porta serial, por exemplo, Perl, Python, Java, etc.

3 No Mbed: Serial name(usbtx, USBRX):define a comunicação serial com TX e RX via USB DAS. Define o label name. name.baud(9600): define a taxa de transmissão (baud rate) em 9600 kbps. Aceita outors valotes (19200, 38400, etc). name.printf: imprime string KL25Z PC; name.putc: envia um caractere KL25Z PC; name.getc: recebe um caractere PC KL25Z.

Comunicação Serial 4 Ao conectar o cabo USB, aparece enumerada no computador uma porta OpenSDA CDC.

Comunicação Serial 5 Caso não apareça no sistema windos, é necessário instalar o driver. Busque por Download the mbed Windows serial port driver no Dashboard do mbed. Para o curso, vamos utilizar um aplicativo emulador de terminal denominado Tera Term (http://ttssh2.sourceforge.jp/index.html.en).

Comunicação Serial 6 Escolher a opção serial e a porta enumerada.

Comunicação Serial 7 Exemplos Básicos no Mbed Hello World! #include "mbed.h" Serial pc(usbtx, USBRX); // tx, rx int main() { pc.printf("hello World!\n"); } Papagaio de pirata - Echo back characters you type #include "mbed.h" Serial pc(usbtx, USBRX); int main() { pc.printf("echoes back to the screen anything you type\n"); while(1) { pc.putc(pc.getc()); } }

Comunicação Serial 8 Outros Exemplos: Controla brilho do LED ( u p/ UP e d p/ DOWN). #include "mbed.h" Serial pc(usbtx, USBRX); // tx, rx PwmOut led(led1); int main() { char c; float brightness = 1.0; pc.printf("press 'u' para aumentar brilho e 'd' para diminuir \n\r"); while(1) { c = pc.getc(); if((c == 'u') && (brightness > 0.0)) { brightness -= 0.1; led = brightness; } if((c == 'd') && (brightness < 1.0)) { brightness += 0.1; led = brightness; } pc.printf("brilho = %2.0f %% \r", (1.0-led)*100); } }

Comunicação Serial 9 Muda cor do led RGB ( r p/ RED, g p/ GREEN, b p/ BLUE. Qualquer outra tecla apaga tudo). #include "mbed.h" Serial pc(usbtx, USBRX); // tx, rx DigitalOut r(led1); DigitalOut g(led2); DigitalOut b(led3); int main() { char c; r=1; g=1; b=1; pc.printf("pressione a inicial da cor desejada (r ou g ou b)"); while(1) { c = pc.getc(); switch(c){ case 'r': r=0; g=1; b=1; break; case 'g': r=1; g=0; b=1; break; case 'b': r=1; g=1; b=0; break; default: r=1; g=1; b=1; break; } } }

10 Acelerômetro Dispositivo para medição das acelerações às quais está submetido. O kit FRDM KL25Z possui um acelerômetro triaxial, do tipo capacitivo, modelo MMA8451Q, capaz de medir a aceleração no eixo X, Y e Z, ortogonais ao chip. O MMA8451Q é conectado ao KL05Z via interface de comunicação serial I2C, com a seguinte pinagem: SCL = PTE24 SDA = PTE25

Acelerômetro 11 Pinos no FRDM KL25Z

Acelerômetro 12 Exemplo: #include "mbed.h" #include "MMA8451Q.h" //biblioteca do Acelerometro // Definição dos pinos de acordo com o modelo do KIT #define SDA PTE25 #define SCL PTE24 #define MMA8451_I2C_ADDRESS (0x1d<<1) int main(void) { //ativa o periférico e aloca os pinos da com. I2C MMA8451Q acc(sda, SCL, MMA8451_I2C_ADDRESS); PwmOut rled(led1); PwmOut gled(led2); PwmOut bled(led3); float x, y, z; printf("mma8451 ID: %d\n", acc.getwhoami()); while (true) { x = acc.getaccx(); //valor de acordo com a posição do eixo x y = acc.getaccy(); //valor de acordo com a posição do eixo y z = acc.getaccz(); //valor de acordo com a posição do eixo z rled = 1.0 - abs(x); //intensidade da componente x na cor vermelha gled = 1.0 - abs(y); //intensidade da componente y na cor verde bled = 1.0 - abs(z); //intensidade da componente z na cor azul wait(0.2); printf("x: %1.2f, Y: %1.2f, Z: %1.2f\r", x, y, z); } }

Acelerômetro 13 Dica: Para testar este programa, crie um novo projeto no Mbed e utilize o template Example program for FRDM boards with a Freescale MMA8451Q. Depois, copie o conteúdo do código do exemplo no programa principal.

14 Display LCD Há diversos tipos e tamanhos de LCD alfanuméricos disponíveis comercialmente. Eles são sempre especificados em número de caracteres exibidos, no formato de colunas e linhas. Mais comuns: 08x02 (oito colunas por duas linhas), 16x01 (16 colunas por 1 linha), 16x02 (16 colunas por 2 linhas), 16x04 (16 colunas por 4 linhas), 20x01 (20 colunas por 1 linha), 20x02 (20 colunas por 2 linhas) e 20x04 (20 colunas por 4 linhas).

15 Funcionamento básico do cristal líquido São dispositivos que trabalham com luz polarizada com um líquido eletricamente controlável. Ao se aplicar ou retirar uma tensão em alguns locais (pixels), os cristais do líquido são polarizados, permitindo ou impedindo a passagem da luz. Não são elementos que emitem luz própria, apenas alteram o estado de reflexão da luz ambiente. Para funcionamento em locais escuros, precisam de uma fonte de luz na parte traseira, denominada backlight.

Interface com Display LCD 16 Exemplo de display LCD 16x02 Cada célula (caractere) do LCD possui 8 pixels na vertical e 5 pixels na horizontal. Cada caractere é desenhado com até 35 pixels, pois a linha inferior é normalmente reservada para representar um cursor.

Interface com Display LCD 17 Os LCDs mais comuns são os gerenciados por um chip controlador Hitachi HD44780. O módulo do display deve ser ligado à placa freedom através de um conjunto de conexões elétricas, denominadas barramento de dados. O barramento de dados pode ser de quatro bits (modo nibble) ou oito bits (modo byte). No modo nibble, são usadas apenas quatro linhas de dados (D4 a D7), simplificando a montagem.

Interface com Display LCD 18 Pinagem Na maioria dos displays, a pinagem está impressa. (VEE) (RS) Alimentação Barramento de comunicação Energia para os LEDs de backlight

Interface com Display LCD 19 O pino 1 (V ss ) é ligado ao terra e o pino 2 (V dd ) na tensão de 5V. No pino 3 (Vo) deve-se ter uma tensão entre 0 e 5V para ajuste do contraste. Isso pode ser feito com um potênciômetro, como abaixo:

Interface com Display LCD 20 No modo nibble, o display é controlado por meio de comandos e dados, enviados pelos pinos RS, RW, D4, D5, D6 e D7) O pino RS designa o tipo de informação enviada: Se RS=0: envio de comandos; Se RS=1: envio de dados. O pino RW controla a natureza da operação. Se RW=0: operação de escrita de dados no display; Se RW=1: operação de leitura. Também possui um pino de habilitação (ENABLE). Em geral, deixa-se permanentemente o pino ENABLE ligado em 3,3V e o pino RW ligado em GND.

Interface com Display LCD 21 Biblioteca TextLCD Biblioteca disponível no MBED para utilização do display LDC no kit FR25Z, modo nibble. A mesma deve ser incluída no cabeçalho do programa principal: #include "TextLCD.h" O seguinte comando define a pinagem utilizada do kit para interface com o display LCD: TextLCD lcd(rs, Enable, DB4, DB5, DB6, DB7); Como exemplo, o comando: TextLCD lcd(pta13, PTD5, PTC9, PTC8, PTA5, PTA4); faz as seguintes atribuições:

Interface com Display LCD 22 Biblioteca TextLCD /* PINAGEM DA LIGAÇÃO FR25Z - LDC ** --------------------------------------------- * - DB4 : d4 -> PTC9 * - DB5 : d5 -> PTC8 * - DB6 : d6 -> PTA5 * - DB7 : d7 -> PTA4 * - RS : d8 -> PTA13 * - Enable : d9 -> PTD5 * - RW : GND (only W mode) --------------------------------------------- ***/

Interface com Display LCD 23 Biblioteca TextLCD O comando lcd.cls() limpa os caracteres do display; O comando lcd.printf() imprime strings constantes e variáveis no display. O comando lcd.locate(x,y) posiciona o display na coluna x (0 a 15), linha y (0 ou 1).

Interface com Display LCD 24 Exemplo de Aplicação Utilize o display LCD 16x02 para mostrar o valor do acumulador de um contador cíclico de 0 a 59, com incremento a cada 0,5 segundos. BOARD

Montagem com Display 7 Segmentos 25

Interface com Display LCD 26 Código #include "mbed.h" #include "TextLCD.h" TextLCD lcd(pta13, PTD5, PTC9, PTC8, PTA5, PTA4); int main() { int count = 0; lcd.cls(); lcd.printf("conta DE 0 A 59"); wait(0.5); while (1) { lcd.locate(0,1); lcd.printf("ct=%2d", count); count = count + 1; wait(0.5); if (count == 60) count=0; } }

Acelerômetro 27 Observação: A biblioteca TextLCD.h precisa ser importada no projeto.