Você está na página 1de 68

Microcontroladores

Prof. Felipe Nascimento Martins


felipe.n.martins@gmail.com

FEV/2013
professor
http://nera.sr.ifes.edu.br

professor
Contato:

Twitter: @f_n_martins
http://www.facebook.com/felipenm
felipe.n.martins@gmail.com

professor
Conteúdo do Curso
• Introdução;
• O que é Arduino?
• Características de hardware do Arduino;
• Microcontroladores;
• Software do Arduino;
• Linguagem de Programação do Arduino;

professor
Conteúdo do Curso
• Arquitetura de Microcontroladores: Von-
Neumann x Harvard, CISC x RISC;
• Arquitetura do ATmega328P;
• Mapas de Memória;
• Pinos (entradas e saídas digitais);
• Interrupções;
• Comunicação Serial (USART, I2C, SPI);
• Conversor Analógico Digital (A/D);
• Módulo Comparador Analógico;
professor
Conteúdo do Curso
• Módulo LCD;
• Temporizadores;
• Sinais PWM;
• Memória EEPROM;
• Práticas de laboratório.

professor
Motivação
• Aplicações de microcontroladores:
– Automação: comercial, residencial,
industrial, automotiva...
– Controle de eletrodomésticos: máquinas de
lavar, liquidificadores, fornos de
microondas, cafeteiras...
– Controle de motores (inversores e
conversores);
– Interface para captura de dados (leitura de
sensores) e comando de atuadores;
– Etc. professor
Motivação
• Vantagens do uso de
microcontroladores:
– Circuitos ficam mais compactos (menos
componentes) e podem ter mais funções;
– Permite armazenamento de sinais (dados)
com relativa facilidade;
– Facilita correção/modificação das funções
do circuito sem alteração de hardware
(programável);
– Facilita integração do circuito com
computadores ou outros dispositivos.
professor
Exemplos de Aplicação

professor
Motivação
Todos os produtos mencionados são de
empresas capixabas, desenvolvidos no ES:
– Automatica Tecnologia S.A.;
– MTS Engenharia;
– Intechno Desenvolvimento e Capacitação;
– Zaruc.

professor
O que é um Microcontrolador?

– CPU de pequeno porte, capaz de executar


um conjunto de instruções;
– Ou seja, possui um microprocessador!
– Instruções simples e rápidas;
– Possui memória(s);
– Possui periféricos;
– Pode interfacear com outros periféricos; etc.
professor
professor
Componentes de um
Microcontrolador
Microcontrolador

Conversor Porta
EEPROM
D/A Serial

Conversor Porta
CPU
A/D Paralela

PWM RAM Temporizadores

professor
Exemplos de Microcontroladores
• Família 8051 (Intel)
• 80C196KB (Intel)
• 68HC11 (Motorola / Freescale)
• MSP430 (Texas Instruments)
• ATmega328 (ATMEL)
• PIC16F628A (Microchip)
• dsPIC30F6014 (Microchip)
• Cortex M3 (ARM)

professor
Intel 8051
• CPU de 8 bits;
• Memória de Programa Interna de 4 kB;
• RAM Interna de 128 Bytes;
• Memória externa de até 64 kB;
• Porta Paralela - 32 Linhas E/S;
• Dois contadores/temporizadores de 16
Bits;
• Uma Porta Serial;
• Cinco fontes de interrupção.
professor
Intel 80C196KB
• CPU de 16 bits;
• Memória Interna de 230 bytes;
• Memória externa de até 64 kB;
• 48 Linhas Entrada/Saída;
• Dois contadores/temporizadores de 16 Bits;
• Porta Serial;
• Conversor A/D;
• Saída PWM;
• 28 Fontes de Interrupção.
professor
Motorola M68HC11K
• CPU de 8 bits;
• Possui registradores e algumas instruções de
16 bits;
• Dois acumuladores de 8 bits (=1x16 bits);
• Memória RAM Interna de 1 kB;
• Memória EEPROM interna de 640 bytes;
• Temporizadores de 16 Bits;
• Porta Serial;
• Conversor A/D de 8 bits – 8 canais;
• Saída PWM de 8 bits;
• Fontes de Interrupção interna e externa;
• Até 64 Linhas Entrada/Saída.
professor
TI MSP430G2553
• MSP430 é uma família de CPUs de 16 bits RISC;
• Memória de Programa Interna de 16kB (Flash);
• RAM Interna de 512 bytes;
• 16 Linhas Entrada/Saída;
• 2 temporizadores de 16 bits;
• 8 canais de conversor A/D de 10 bits;
• Comparador analógico;
• UART, I2C, SPI;
• Tensão de alimentação: 1,8 a 3,6V;
• Drena 0,5 μA no modo stand by.
professor
Microchip PIC16F628A
• PIC16F é uma família da CPUs de 8 bits;
• Memória de Programa Interna de 2 kwords (14 bits);
• RAM Interna de 224 Bytes;
• Memória EEPROM de 128 Bytes;
• 16 Linhas Entrada/Saída;
• 3 contadores/temporizadores (8 Bits e 16 Bits);
• Um temporizador de 8 bits;
• Porta Serial;
• Dois Comparadores Analógicos;
• Voltagem de referência interna;
• CCP (Capture, Compare e PWM);
• Dez fontes de interrupção.
professor
Atmel ATmega328
• ATmega: família com núcleo AVR RISC de 8 bits;
• 32kB Flash, 2kB RAM, 1kB EEPROM;
• 23 pinos de E/S;
• 3 temporizadores/contadores;
• Interrupção por mudança de nível em todos os pinos;
• Multiplicador em hardware;
• USART;
• interface a 2 fios SPI;
• 6 canais de conversor A/D de 10 bits;
• WDT com oscilador interno;
• Clock máximo de 20MHz;
• Opera de 1,8V a 5,5V.
Microchip dsPIC30F6014
• dsPIC30F é uma família de CPUs de 16 bits com
instruções DSP;
• Memória de Programa Interna de 144 kB (24 bits);
• RAM Interna de 8kB;
• Memória EEPROM de 4kB;
• Multiplicação 16x16 bits com acumulação em 1 ciclo;
• Divisão 32/16 e 16/16 bits;
• 2 acumuladores de 40 bits com saturação;
• 68 Linhas Entrada/Saída;
• 5 contadores/temporizadores de 16 bits;
• Comunicação: 2 UART, 2 SPI, I2C, 2 CAN;
• 8 saídas PWM;
• 45 fontes de interrupção.
professor
Stellaris LM3S6965 (Cortex M3)
• CPU de 32 bits RISC com clock de até 50MHz;
• Memória de Programa Interna de 256kB;
• RAM Interna de 64kB;
• Multiplicação e divisão em hardware;
• Salvamento e restauração automáticos de contexto;
• 42 Linhas Entrada/Saída;
• 4 contadores/temporizadores de 32 bits;
• Comunicação: 3 UART, 2 I2C, 4 ADC, 2 QEI, Ethernet;
• 6 saídas PWM, 2 comparadores analógicos;
• 38 fontes de interrupção com prioridade;
• Módulo de hibernação (baixo consumo).

professor
Atmel ATSAM3X8E (Cortex M3)
• CPU de 32 bits RISC com clock de até 84MHz;
• Memória de Programa Interna de 512kB;
• RAM Interna de 96kB;
• Multiplicação e divisão em hardware;
• 103 Linhas Entrada/Saída;
• 16 ADC de 12 bits;
• Comunicação: 5 UART, 4 SPI, 2 I2C, 2 QEI,
Ethernet, 2 CAN, USB mini host;
• 2 saídas analógicas (DAC), 8 saídas PWM;
• 9 temporizadores;
• 103 fontes de interrupção externa;
professor
professor
O que é Arduino?
Arduino é uma plataforma de prototipagem
eletrônica open-source, baseada nos princípios de
flexibilidade e facilidade de uso para hardware e
software.
Consiste de uma placa com microcontrolador
programável preparada para receber sinais de
sensores e acionar atuadores.
Sua linguagem de programação é baseada em Wiring
(baseado em C/C++).
A placa pode funcionar em conjunto ou de forma
independente do computador.
Arduino
Desenvolvido por: Massimo Banzi, David Cuartielles,
Tom Igoe, Gianluca Martino e David Mellis, na
Itália, em 2005;
200 placas vendidas em 2005, 5.000 em 2006, 30.000
em 2007 e mais de 250.000 até novembro de
2011!

Site oficial: www.arduino.cc


Microcontroladores do Arduino
ATMEL
ATmega168: Diecimila, Duemilanove, Nano, LilyPad;
ATmega328P: Duemilanove, Nano, Fio, LilyPad, Uno;
ATmega1280: Mega;
ATmega2560: Mega2560;
ATmega32u4: Leonardo, Esplora, LilyPad USB;
AT91SAM3X8E: Due.
Arduino: hardware
Arduino: hardware
Arduino: hardware
Arduino
Flash EEPROM SRAM Dig. Pinos Clock Pinos
Arduino Processador
kB kB kB I/O A/D (MHz) PWM

Duemilanove ATmega168/328P 16/32 0,5/1 0,5 14 6 16 6

Uno ATmega328P 32 1 2 14 6 16 6

Mega ATmega1280 128 4 8 54 16 16 15

Mega2560 ATmega2560 256 4 8 54 16 16 15


ATmega168 ou
Nano 16/32 0,5/1 0,5 14 8 16 6
ATmega328
ATmega168V ou
LilyPad 16/32 0,5 1 14 6 16 6
ATmega328V
Leonardo ATmega32u4 32 1 2,5 20 12 16 7
Due AT91SAM3X8E 512 -- 96 54 12 84 12

Esplora ATmega32u4 32 1 2,5 20 12 16 7


Arduino: software
Arduino é Open Source!
• Todo o hardware é aberto e os projetos estão
disponíveis.
Arduino é Open Source!
Arduino é Open Source!
Arduino é Open Source!
• Todo o hardware é aberto e os projetos estão
disponíveis.
• Quem quiser, pode comprar os componentes e montar
a sua placa!
• O software de programação também é livre e está
disponível para download gratuitamente.
Arduino é Open Source!
• Todo o hardware é aberto e os projetos estão
disponíveis.
• Quem quiser, pode comprar os componentes e montar
a sua placa!
• O software de programação também é livre e está
disponível para download gratuitamente.

Mas...
Arduino é Open Source!
• Todo o hardware é aberto e os projetos estão
disponíveis.
• Quem quiser, pode comprar os componentes e montar
a sua placa!
• O software de programação também é livre e está
disponível para download gratuitamente.

Mas...
O nome Arduino é marca registrada!
Clones do Arduino
Freeduino
Clones do Arduino
Seeduino

Felipe Nascimento Martins


Clones do Arduino
Brasuíno
Clones do Arduino
Severino
Similares ao Arduino
chipKIT Uno32 - PIC32MX320F128 (32 bits, 80MHz,
128kB Flash, 16kB SRAM)
Similares ao Arduino
Olimexino – STM32F103RBT6 (núcleo ARM Cortex M3,
32 bits, 128kB, 72MHz)
Similares ao Arduino
LaunchPad - MSP430 (vem com 2 microcontroladores)
Similares ao Arduino
LaunchPad - MSP430 (vem com 2 microcontroladores)

US$4,30
com frete
grátis!!

http://www.ti.com/tool/msp-exp430g2
Arduino Uno

professor
Arduino Uno
Microcontrolador: ATmega328;
Tensão de operação: 5V;
Tensão de entrada (recomendada): 7-12V;
Pinos digitais de E/S:14 (6 podem ter sinal PWM);
Pinos com entrada analógica: 6;
Corrente máxima por pino de E/S: 40 mA;
Memória Flash (de programa): 32 kB, dos quais 0,5 kB
são usados pelo bootloader;
Memória SRAM: 2 kB; EEPROM: 1 kB;
Frequência de clock: 16 MHz.
Arduino Uno
Linguagem do Arduino

professor
Linguagem do Arduino

professor
Linguagem do Arduino

professor
Linguagem do Arduino

professor
Programação do Microcontrolador

Programa Compilador Programa.HEX Programador

IDE

professor
Prática 1:
Pisca-LED

professor
Fluxograma
Prática 1: Pisca-LED
Fluxograma:
Prática 1: Pisca-LED
Prática 1: Pisca-LED
Prática 1: Pisca-LED
Prática 1: Pisca-LED
Prática 1: Pisca-LED
Prática 1: Pisca-LED
Montagem:
Prática 2:
Código Morse

professor
Prática 2: Código MORSE
• Modifique o programa
Pisca-LED de forma que
o LED sinalize
indefinidamente o
código Morse que
representa S.O.S.:
...---...

OBS.: Construa e chame


funções ponto() e
traco().
Referências
• ARDUINO. Language Reference. Disponível em:
<http://arduino.cc/en/Reference/HomePage>. Acesso em 20/set/2012.
• ARDUINO. Hardware Index. Disponível em: <http://arduino.cc/en/Main/Boards>.
Acesso em 20/set/2012.
• ATMEL. ATmega48A/PA/88A/PA/168A/PA/328/P datasheet. Rev. 8271D–AVR–
05/11. 2011.
• ATMEL. Atmel AVR042: AVR Hardware Design
• Considerations. Rev. 2521K-AVR-03/11. 2011.
• LIMA, Charles B. de; VILLAÇA, Marco V. M. AVR e Arduino – Técnicas de Projeto. 2ª
ed. 2012.
• MARTINS, Felipe N. Introdução à Eletrônica com Arduino. Disponível em:
<http://www.slideshare.net/felipenm/oficina-de-introduo-a-eletrnica-com-
arduino>. Acesso em 20/set/2012.
• BOYLESTAD, Robert L. Dispositivos eletrônicos e teoria de circuitos. 8ª ed. Prentice
Hall. São Paulo, 2004.
• BALBINOT, Alexandre e BRUSAMARELLO, Valner J. Instrumentação e Fundamentos
de Medidas. Vol. 1. LTC, 2006.
• MELIM, Roberto Salles. Plataforma de Baixo Custo para Desenvolvimento de
Sistemas de Automação e Controle. Projeto de Iniciação Científica, UCL, 2006.
• MICROCHIP Technology Inc., PIC16F627A/628A/648A Data Sheet. DS40044F, 2007.

professor

Você também pode gostar