Você está na página 1de 25

Microcontroladores e Aplicações

Aula 5

Programação
Prof. Msc. Giancarlo
Michelino Gaeta Lopes
Programação

Para a programação de microcontroladores utilizamos


os ambientes de desenvolvimento integrado (IDE).
IDE é o ambiente onde o código é escrito.
Junto com a IDE existe o compilador.
O compilador converte o código em linguagem de
máquina para ser carregado no microcontrolador.
Programação

No momento da compilação, os erros são


identificados e apresentados na IDE.
Um microcontrolador pode ser compatível com
várias IDEs e compiladores.
A escolha da IDE leva em consideração bibliotecas,
sistema de depuração, compiladores e custo.
Programação

As principais IDEs para PIC são:


§ MPLAB
• Desenvolvido pela própria Microchip;
• Permite o gerenciamento do projeto, a
compilação, a depuração e a gravação do chip;
• Interação com softwares matemáticos e de
simulação;
• Gratuito.
Programação

As principais IDEs para PIC são:


§ MicroC
• Apresenta grande quantidade de bibliotecas;
• Bibliotecas criadas por desenvolvedores
disponíveis em fóruns;
• Gravação do microcontrolador com
programador especifico;
• Pago.
Programação

Para os microcontroladores ATMEL existe o Atmel


Studio:
§ Gratuito, com compilador integrado;
§ Bibliotecas também disponíveis.
Interface Arduino mais simples para iniciantes.
Com grande quantidade de bibliotecas que
facilitam a programação.
IDE Arduino

Download disponível gratuitamente no site da


plataforma (www.arduino.cc).
Interface simples e intuitiva.
Necessita de apenas duas configurações para
iniciar a programação:
§ Porta COM onde o Arduino está ligado;
§ Placa Arduino utilizada.
IDE Arduino
Continuando...
Programação
Programando na interface Arduino

A programação é baseada nos chamados “Sketchs”.


Possui estrutura padronizada com duas funções
padronizadas:
§ Setup;
§ Loop.
Programando na interface Arduino

Função Setup:
§ Objetivo de configurar o Arduino;
§ Utilizado para a inicialização das variáveis,
dispositivos I/O como entradas e saídas, define-
se as velocidades de transmissão dos periféricos
de comunicação, entre outros;
§ Executado apenas uma vez.
Programando na interface Arduino

Função Loop:
§ Parte do código executado infinitamente;
§ Maioria do código colocada nessa função;
§ Começa a ser executada logo após o término da
função setup.
Programando dispositivos de I/O

Pode ser configurado como


entrada ou saída digital;
Sintaxe “pinMode(pino,
modo)”;
§ pino = numero do pino
do Arduino;
§ modo = determina se o pino
é entrada (INPUT), entrada
com resistor de pull-up
(INPUT_PULLUP) ou saída
(OUTPUT).
Programando dispositivos de I/O

Exemplo de declaração:

Leitura do estado de um pino como entrada feito


por meio da função “digitalRead(pino)”.
O valor de retorno será 1 (HIGH)
caso o sinal apresente nível
lógico alto e 0 (LOW) para nível
lógico baixo.
Programando dispositivos de I/O

Exemplo de leitura de estado de um pino:

Para pinos como saída,


utiliza-se a função:
“digitalWrite(pino, valor)”
Programando dispositivos de I/O

Exemplo de pisca LED:


Finalizando...
Programação
Programando PWM

O ambiente arduino possui uma biblioteca pronta:


“analogWrite(pino, valor)”.
§ pino = número do pino;
§ valor = valor da razão cíclica de 0 a 255.
Somente os pinos indicados com til (~) no Arduino
Uno podem gerar sinais de PWM.
Utilizando a biblioteca a
frequência do sinal PWM é fixa
em 980 Hz ou 490 Hz.
Programando PWM

Exemplo de código para gerar sinal PWM:


Programando Conversor A/D

Possui resolução de 10 bits à se alimentado em


5 V, tem-se 4,88 mV por nível.
Utiliza a função “analogRead(pino)”, onde o
argumento “pino” corresponde a um dos seis
canais de entrada (0-5).
Programando Conversor A/D

Exemplo de utilização da biblioteca:


Programando a Comunicação Serial

Bibliotecas para configuração simples de uma


comunicação UART.
Pino digital 0 funciona como receptor (RX) e pino
1 como transmissor (TX).
A configuração inicial é feita com a função:
“Serial.begin(velocidade,config)”.
Argumento config é opcional.
Funções de escrita:
§ “Serial.print()”
§ “Serial.println()”
Programando a Comunicação Serial
Programando a Comunicação Serial