ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício:...
Transcript of ENG-1450 Microcontroladores e Sistemas Embarcadosabranco/eng1450/Lab01/Lab01.pdf · Exercício:...
![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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/1.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/2.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/3.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/4.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/5.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/6.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/7.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/8.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/9.jpg)
![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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/10.jpg)
![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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/11.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/12.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/13.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/14.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/15.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/16.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/17.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/18.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/19.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/20.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/21.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/22.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/23.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/24.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/25.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/26.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/27.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/28.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/29.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021911/5c3a10e993f3c3276555fca0/html5/thumbnails/30.jpg)
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)