eng-1450 microcontroladores e sistemas embarcadosabranco/eng1450/lab01/lab01.pdf · exercício:...

30
ENG-1450 Microcontroladores e Sistemas Embarcados – Lab01 – Ambientação com o Proteus e mikroC I/O Digital, LCD, A/D e PWM http://www.inf.puc-rio.br/~abranco/eng1450/

Upload: lykhanh

Post on 12-Jan-2019

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

ENG-1450Microcontroladores e Sistemas Embarcados

– Lab01 – Ambientação com o Proteus e mikroC

I/O Digital, LCD, A/D e PWM

http://www.inf.puc-rio.br/~abranco/eng1450/

Page 2: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

ENG-1450Microcontroladores e Sistemas Embarcados

– Lab01 – Ambientação com o Proteus e mikroC

I/O Digital, LCD, A/D e PWM

http://www.inf.puc-rio.br/~abranco/eng1450/

Material

Page 3: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

Roteiro

1. Apresentação: Proteus e MikroC

2. Exercício guiado: Chave+LED

3. Exercício: Adicionar Chave e LED

4. Apresentação: Display LCD – Componente + Lib;

5. Exercício: Delay no LOOP+Contador+LCD(4 regiões)

6. Apresentação: A/D & PWM

7. Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio

** Extra, se sobrar tempo

8. Apresentação da Interface Serial + Terminal

9. Exercício: Envio de comando para o PWM e consulta ao A/D (via terminal)

Page 4: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

Entrada e SaídaDigital

Page 5: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

Lab1-1

1. Criar novo projeto "Lab1-1" no mikroC.– Configurar Device=PIC18F452 e Clock=8MHz– Usar o código C apresentado em sala

2. Criar novo projeto no Proteus – Montar o circuito apresentado– Executar a simulação

Obs: Dentro da configuração do microcontrolador deve-se alterar o parâmetro de clock da CPU para 8MHz e indicar o arquivo Lab1-1.hex como executável.

Page 6: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

Código C exemplo Lab1-1

void main() {

TRISB.RB0 = 1;

TRISD.RD0 = 0;

while(1)

{

if (!PORTB.RB0)

{

PORTD.RD0 = 1;

Delay_ms(100);

PORTD.RD0 = 0;

Delay_ms(100);

}

}

}

http://www.inf.puc-rio.br/~abranco/eng1450/Lab01/Lab1-1.c

Page 7: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

Inicialização

Loop infinito

Código C exemplo Lab1-1

void main() {

TRISB.RB0 = 1;

TRISD.RD0 = 0;

while(1)

{

if (!PORTB.RB0)

{

PORTD.RD0 = 1;

Delay_ms(100);

PORTD.RD0 = 0;

Delay_ms(100);

}

}

}

http://www.inf.puc-rio.br/~abranco/eng1450/Lab01/Lab1-1.c

Page 8: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

Código C exemplo Lab1-1

while(1)

{

Delay_ms(100);

PORTD.RD0 = 0;

}

}

}

http://www.inf.puc-rio.br/~abranco/eng1450/Lab01/Lab1-1.c

Page 9: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação
Page 10: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação
Page 11: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

Display LCD

Page 12: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

Display LCD

● Funções prontas na biblioteca do MikroC● Utiliza 4 bits do LCD + 2 pinos de controle● Usuário define os pinos utilizados

– sbit LCD_D4 at RPb_bit;

– sbit LCD_D4_Direction at TRISPb_bit;

– Exemplo: Pb = C4 => Porta C, bit 4

● Cuidado quando usar os pinos Anx– Devem estar configurados como digitais

– A configuração default é como Analógica.● Exemplo: ADCON1 = 6; // Tudo digital

Page 13: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

Display LCDno MikroC

// LCD module connectionssbit LCD_RS at RE0_bit;sbit LCD_EN at RE1_bit;sbit LCD_D4 at RC4_bit;sbit LCD_D5 at RC5_bit;sbit LCD_D6 at RC6_bit;sbit LCD_D7 at RC7_bit;

sbit LCD_RS_Direction at TRISE0_bit;sbit LCD_EN_Direction at TRISE1_bit;sbit LCD_D4_Direction at TRISC4_bit;sbit LCD_D5_Direction at TRISC5_bit;sbit LCD_D6_Direction at TRISC6_bit;sbit LCD_D7_Direction at TRISC7_bit;…. ADCON1 = 0x6;

LM016L

POT-HG

Page 14: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

Lab1-2Delay no LOOP+Contador+LCD

● Loop– Cont++;

– Escrever Cont no LCD em diferentes posições.● (Cont%4) == 0 → Linha 1, Coluna 1● (Cont%4) == 1 → Linha 1, Coluna 8● (Cont%4) == 2 → Linha 2, Coluna 0● (Cont%4) == 3 → Linha 2, Coluna 8

– Delay_ms(1000);

● Obs - Usar a função IntToStr() do MikroC

Page 15: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

Manual PICConsulta obrigatória

Page 16: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

A/D & PWM

Page 17: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

Conversor A/DAnalógico para Digital

Page 18: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

Conversor A/DFuncionamento

Contador10 bits

ConversorDigital/Analógico

Vin

Vref

clock

. . .D0 D9

Comparador

Vx

Page 19: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

Port AAN pins

Page 20: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

A/D pinsPort A [0,1,2,3, ,5] Port E [0,1,2]

Page 21: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

PIC18F452 – PortA Functions

Page 22: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

A/D pinsPort A [0,1,2,3, ,5] Port E [0,1,2]

Page 23: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

PIC18F452 - RegistersPort A and A/D control

ADCON0

CHS → A/D Channel Selection

Obs: A biblioteca do MikroC funciona com configurações pré-definidas.

Page 24: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

ADCS & ADFM

Page 25: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

PIC18F452 – ADCON1:PCFG

RE2 RE1 RE0 RA5 RA3 RA2 RA1 RA0

RA4 → T0CKI

0x06

0x0E

0x04

Page 26: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

PWMPulse Width Modulation

Freq = 1/TWx = Largura do pulso 0 → 0% 255 → 100%

T

Pulso A

Pulso B

Pulso C

W2

W1

W3

T

Page 27: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

PWMPulse Width Modulation

Pulso A

Pulso B

Pulso C

W2

W1

W3

Energia = f(Área)

E=1/5

E=2/5

E=3/5

Page 28: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

A/D e PWM no MikroC Pro v6.0

● A/D– Definir AN0 como entrada– ADC_Read(0);

● PWM– PWM1_Init(1000);– PWM1_Start();– PWM1_Set_Duty(128); // 50%

Obs: ● Verificar Library Manager na IDE do MikroC se as bibliotecas ADC e PWM estão selecionadas.

● No PIC18F452, PWM1=RC2/CCP1 e PWM2=RC1/CCP2

Page 29: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

Lab1-3A/D(Potenciômetro)->PWM / LCD / Osciloscópio

Vcc

GND

0v .. 5v 0 .. 1023 0 .. 255

AN0 input ADC_Read() PWM1_Set_Duty()

Page 30: ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio ** Extra, se sobrar tempo 8. Apresentação

Extra: Lab1-4Interface Serial & Terminal

Envio de comando para o PWM e consulta ao A/D● Interface serial da biblioteca do MikroC● Terminal no Proteus

– ícone de instrumentos

– Baudrate 9600

– Durante a simulação ativar “Echo Typed Characters”

● Interface Serial na vida real– Adaptador Bluetooth + Terminal/Aplicativo no Android

– NodeMCU WIFI + Serial PIC

– Debug - Terminal no PC (MikroC / tools / USART terminal)