Buscar

AULA 01b - ARDUINO e o ATMEGA 328

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 71 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 71 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 71 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Prof. Alan Francisco dos Santos
alan.f.santos@gmail.com
67 – 98147-9293
ARDUINO
mailto:alan.f.santos@gmail.com
UNO LEONARDO MEGA 2560
MEGA ADK NANO MINI
MODELOS DE PLACAS ARDUINO
CARACTERISTICAS TECNICAS DE DIFERENTE MODELOS DE ARDUINO
O PROJETO ARDUINO
O projeto iniciou-se na cidade de Ivrea, Itália, em 2005, com o intuito de interagir em projetos
escolares de forma a ter um orçamento menor que outros sistemas de prototipagem disponíveis
naquela época. O sucesso foi sinalizado com o obtenção de uma menção honrosa na
categoria Comunidades Digitais em 2006, pela Prix Ars Electronica, além da marca de mais de
50.000 placas vendidas até outubro de 2008.
ARDUINO UNO
ARDUINO UNO ORIGINAL
ARDUINO UNO GENÉRICO
▪ Microcontrolador: ATmega328;
▪ Tensão de funcionamento: 5V;
▪ Tensão de entrada (recomendada): 7-9V;
▪ Limite de tensão: 6 a 20 Volts;
▪ Saídas digitais I/O – 14 pinos (dos quais 6 oferecem saída PWM);
▪ Saídas analógicas 3.3V - 6 pinos;
▪ Corrente DC por pino de I/O: 40mA;
▪ Corrente DC por pino: 50mA;
▪ Flash memory: 32Kb (ATmega328) 0,5 KB são utilizados pelo carregador de inicialização;
▪ SRAM: 2Kb (ATmega328);
▪ EEPROM: 1Kb (ATmega328);
▪ Clock Speed: 16MHz;
ESPECIFICAÇÕES TÉCNICAS:
CARACTERÍSTICAS FÍSICAS DA PLACA ARDUINO UNO
Dimensões da Arduino UNO
ITENS DA PLACA ARDUINO UNO
Podemos alimentar o Arduino Uno pela porta USB com tensões definidas de 5V ou ainda por meio de fonte
externa com tensões DC que podem variar entre 6 a 20 Volts, contudo, é recomendável que a tensão
fornecida esteja entre 7 a 9V.
TENSÃO DE ALIMENTAÇÃO – ARDUINO UNO
NOTA: NÃO use uma fonte de alimentação superior a 15 V, pois você irá superar a tensão máxima
do seu Arduino (e assim queimá-lo). A tensão recomendada para a maioria dos modelos Arduino é
de 6 V a 12 V.
ALIMENTAÇÃO (USB/CONECTOR P4)
O Arduino UNO pode ser alimentado a partir de um cabo USB
proveniente do seu computador ou a partir de uma fonte de
alimentação de parede que é terminada em um conector P4. A
conexão USB também é como você irá carregar o código em sua
placa Arduino.
Quando alimentar a sua placa por uma fonte externa, verifique 
se o terminal positivo (+) é o terminal interno do conector P4.
REGULADOR DE TENSÃO
A tensão VIN, proveniente de uma fonte externa, será aplicada na entrada do regulador de
tensão, que fornecerá 5 VDC em sua saída para alimentar o MCU.
CONECTOR - ICSP
Ao centro da placa existe um pequeno LED ao lado da palavra "ON" (10). Este LED deve acender
sempre que você ligar o Arduino a uma fonte de energia. Se esta luz não ligar, há uma boa chance de
haver algo errado.
LED INDICADOR DE ENERGIA
LED INDICADOR DE LIGADO
PORTAS DIGITAIS DO ARDUINO UNO
São rotuladas de 0 a 13 e podem atuar como entrada ou saída digital (como indicar se um botão está
pressionado) como para saída digital (como alimentar um LED);. Trabalham exclusivamente com dois
níveis de tensão: o nível alto, representado por um sinal de tensão de 5V e o nível baixo, caracterizado por 0V.
PORTAS DIGITAIS
Comunicação serial: Portas 0 e 1 podem ser
utilizadas para comunicação serial. Deve-se
observar que estes pinos são ligados ao
microcontrolador responsável pela comunicação
USB com o PC.
RxD
TxD
COMUNICAÇÃO SERIAL
Cuidado: quando estiver ligado esses pinos, pode não aceitar gravação 
do firmware, por essas portas ser compartilhas com a porta USB
TX é a abreviação para transmitir, o RX é a sigla para receber. Essas
marcas aparecem um pouco na eletrônica para indicar os pinos
responsáveis pela comunicação serial. No nosso caso, há dois lugares
no Arduino UNO onde TX e RX aparecem: uma vez ao lado dos pinos
digitais 0 e 1, e uma segunda vez ao lado dos LEDs indicadores TX e RX
(11). Esses LEDs nos darão algumas boas indicações visuais sempre que
nosso Arduino estiver recebendo ou transmitindo dados (como quando
estamos carregando um novo programa na placa).
LEDs TX e RX
TX
RX
LED TX e RX
PWM: 3,5,6,9,10 e 11 podem ser usados como
saídas PWM de 8 bits através da
função analogWrite().
PWM
PWM
PWM
PWM
PWM
PWM
PWM - Pulse Width Modulation
Observe o til (~) ao lado de alguns dos pinos digitais (3, 5, 6, 9, 10 e 11 no UNO). Esses pinos atuam
como pinos digitais normais, mas também podem ser utilizados para algo chamado Modulação por
Largura de Pulso (PWM).
PWM - Pulse Width Modulation
PWM: 3,5,6,9,10 e 11 podem ser usados como saídas PWM de 8 bits através da função analogWrite();
▪ Período: um ciclo completo.
▪ Ton: Tempo em que o pulso permanece em nível lógico alto.
▪ Toff: Tempo em que o pulso permanece em nível lógico baixo.
▪ Duty Cycle: Indica a porcentagem de tempo que o pulso esta em nível lógico alto.
https://arduino.cc/en/Reference/AnalogWrite
EXEMPLOS DE DUTY CYCLE
Interrupção externa: 2 e 3 . Estes pinos podem ser
configurados para gerar uma interrupção externa,
através da função attachInterrupt()
INTERRUPÇÕES 
Int 1
Int 0
Para interface com o mundo analógico, a placa Arduino UNO
possui 6 entradas, onde cada uma tem a resolução de 10 bits.
Por padrão a referencia do conversor AD está ligada
internamente a 5V, ou seja, quando a entrada estiver com 5V
o valor da conversão analógica digital será 1023. O valor da
referência pode ser mudado através do pino AREF. A figura a
seguir exibe a relação entre os pinos do microcontrolador
ATMEL ATMEGA328 e a pinagem do Arduino UNO:
210=1024
AREF
ARF
TIMER
O Atmega328, utilizado na placa Arduino UNO, possui 3 timers, sendo dois de 8 bits (TIMER0 e TIMER2) e
um de 16 bits (TIMER1). Esses temporizadores são importantes para diversas funcionalidades, tais como:
▪ Temporização;
▪ Contagem de eventos externos;
▪ Geração de sinais PWM;
▪ Interrupções periódicas;
▪ Medida de intervalos de pulsos.
A biblioteca do Arduino abstrai o uso destes temporizadores em muitas de suas funções. Por exemplos, as
funções delay(), millis(), micros(), tone(), analogWrite() utilizam recursos de timers para o funcionamento.
https://www.embarcados.com.br/timers -do-at mega32 8-no-arduino/ https://www.youtube.com/watch?v=Ll-oncfvunw
https://www.embarcados.com.br/timers-do-atmega328-no-arduino/
https://www.youtube.com/watch?v=Ll-oncfvunw
https://medium.com/@automacaoem5minutos/arduino -em-5-minutos-1-o-que -%C3% A9-uma -placa-a rduino-7ee3c7 33931e
RESUMO DA PINAGEM DO ARDUINO
https://medium.com/@automacaoem5minutos/arduino-em-5-minutos-1-o-que-%C3%A9-uma-placa-arduino-7ee3c733931e
PORTAS ANALÓGICAS DO ARDUINO UNO
PORTAS ANALÓGICAS
A área dos pinos rotulada com "ANALOG IN" (A0 a A5 no UNO) é para os pinos analógicos. Esses
pinos podem ler o sinal de um sensor analógico (como um sensor de luminosidade) e convertê-lo em
um valor digital para usar no código;
NOTA: geralmente os pinos analógicos do Arduino podem também ser usados como entrada ou saída 
digital (isso vale para A0 a A5 no UNO).
TENSÕES DE SAÍDA DE 5V, 3V3, GND
GND
GND
+5V
+3,3V
RESETGND: abreviação de
"ground" (terra em inglês). Reset: Reinicia o Arduino. NOTA: o
reset não apaga o código carregado
na placa, ele serve somente para
reiniciar a execução do programa.
VIN - pino para alimentar a
placa através de shield ou
bateria externa. Quando a
placa é alimentada através
do conector Jack, a tensão
da fonte estará nesse pino
IOREF - Fornece uma tensão de 
referência para que shields possam 
selecionar o tipo de interface 
apropriada, dessa forma shields que 
funcionam com a placas Arduino que 
são alimentadas com 3,3V. podem 
se adaptar para ser utilizados em 
5V. e vice-versa.
3,3 V. - Pode alimentar
shields e módulos externos.
Corrente máxima de 50 mA.
5 V - Fornece tensão de 5 V
para alimentação de shields
e circuitos externos.
IOREF
VIN
SIMULADORES DE ARDUINO
PLATAFORMA DE PROTOTIPAGEM ELETRÔNICA
SIMULADOR ARDUINO - PROTEUS
http://www.virtualbreadboard.com/
VIRTUAL BREADBOARD
http://www.virtualbreadboard.com/
https://library.io/
SIMULADOR ON-LINE PARA ARDUINO
https://library.io/
SIMULADORDE ARDUINO
https://www.tinkercad.com/
https://www.tinkercad.com/
https://www.arduino.cc/
SITE OFICIAL DO ARDUINO
https://www.arduino.cc/
ESQUEMA ELÉTRICO DO ARDUINO
MICROCONTROLADOR ATMEGA328
ENCAPSULAMENTO
28 pinos
28 pinos
▪ CPU RISC (Reduced Instruction Set Computer)
▪ Arquitetura Harvard.
▪ Estrutura pipeline de 1 nível.
▪ Conjunto de 133 instruções
▪ Frequência máxima externa: 20 MHz
▪ Frequência máxima externa: 8 MHz
▪ Memória de programa (Flash): 32 KB.
▪ Memória SRAM: 2048 B.
▪ Memória EEPROM: 1024 B
▪ Registradores de 8 bits de uso geral.
▪ Temporizadores: 3
▪ Comparador: 1
▪ Módulo PWM com 6 canais.
▪ Módulo ADC: 6 conversores de 10bits.
▪ Interfaces de Comunicação: USART, SPI.
▪ Tensões: 1.8V ~ 5.5V
CARACTERISTICAS
A maioria das instruções são executadas em um ciclo de clock
DIAGRAMA AVR CPU
PINAGEM DO ATMEGA 328
PINAGEM DO ATMEGA 328
https://320volt.com/en/atmel-arduino-colored-connecti on-char t/
https://320volt.com/en/atmel-arduino-colored-connection-chart/
ALIMENTAÇÃO
CLOCK
É uma sequencia de impulsos elétricos (trem de pulso) que serve de sincronismo para circuitos
alguns tipos de circuitos digitais, como microcontroladores, microprocessadores, entre outros.
MEMÓRIAS
32KB
1KB
2KB
MEMÓRIAS DO ARDUINO UNO
MEMÓRIA DE DADOS
A memória de dados (SRAM) é subdividida em blocos de registradores:
MEMÓRIA UTILIZADAS EM MICROCONTROLADORES E MICROCOMPUTADORES
Existe dois tipos de memória RAM, a SRAM (Static RAM) e a DRAM (Dynamic RAM). A SRAM é uma memória
que retém dados enquanto estiver sendo alimentada eletricamente. Se tirar sua alimentação ela apaga os
dados.
RAM (Random Access Memory)
A memória SRAM é volátil, rápida e alto custo. O microcontrolador utiliza essa
memória para acesso rápido de escrita e leitura quando em execução
SRAM (Static Random Access Memory)
A DRAM é uma memória volátil, mantendo o seu conteúdo apenas quando 
alimentada eletricamente. 
DRAM (Dinamic Random Access Memory)
As memórias ROM são memória que retém dados mesmo quando não estiverem sendo alimentadas
eletricamente. Elas se diferenciam a partir do modo como são programadas e o número de vezes
que podem ser escritas. Existem dois tipos:
Memória ROM (Read-Only Memory):
São memórias que permite varias regravações conforme a
especificação do produto emitida pelo fabricante. EPROM são
programáveis com exposição à luz.
EPROM (Erasable-and-Programmable Read-Only Memory).
São memórias que só aceita uma gravação.
PROM ( Programmable Read-Only Memory)
EEPROM (Electrically-Erasable-Programmable)
São apagadas eletricamente e aceita reprogramações. Elas são iguais a EPROM, mas são 
programadas eletricamente enquanto que as EPROM são programáveis com exposição à luz. 
Uma desvantagem da EEPROM é o custo alto e o número limitado de ciclos de gravação
Alta densidade, baixo custo, não-volátil e rápidas (para ler e não para escrever). Elas podem
ser reescritas eletricamente como a EEPROM, porém são mais rápidas e gravam de setor a
setor (grupo de bytes).Geralmente as memórias FLASH são utilizadas para gravar a
programação do microcontrolador, por causa da velocidade e armazenamento.
FLASH 
Esta memória é idêntica a SRAM, porém ela tem uma bateria de backup 
que ao ser desligada, a bateria de backup a alimenta e assim 
armazenando a memória. 
NVRAM (Non-Volatile RAM). 
RESISTORES DE PULL-DOWN – PULL-UP
Os resistores de pull-down ou pull-up garantem estado inicial definido quando a chave estiver aberta.
Estado lógico indefinido Estado lógico definido
https://www.embarcados.com.br/leitur a-de-cha ves-de bounce/
https://www.embarcados.com.br/leitura-de-chaves-debounce/
ARDUINO - Resistores de pull-up
Ligar o pino a 5V ou GND é irrelevante, pois o programa poderá escolher o que fazer em cada caso. Por
exemplo, se escolhermos ligar uma chave a 5V, o valor no pino será HIGH quando a chave for pressionada,
mas indefinido quando ela estiver aberta (veja ilustração abaixo). Usando um resistor de pull-down
(tipicamente de 10k) ligando o pino inicialmente a GND, garantirá ao pino um estado inicial LOW que mudará
para HIGH quando a chave for pressionada.
Se usarmos a lógica oposta (conectar com GND/LOW em vez de 5V/HIGH) não precisaremos dos resistores, pois
o Arduino possui internamente resistores de pull-up (ligados em 5V) para cada pino. Esta opção pode ser
ativado configurando o pinMode() com INPUT_PULLUP:
EFEITO BOUCING
Estes tipo de componente apresenta um problema de oscilação do sinal no momento em que a tecla 
é pressionada. Esta oscilação é conhecida como bouncing
Estas oscilações indevidas podem gerar acionamentos acidentais, causando mau funcionamento do
programa. Para evitar isso podemos utilizar técnicas de debounce, por hardware ou software.
DEBOUNCE POR HARDWARE
Neste circuito, o capacitor desempenha o papel de amortecedor do sinal. Um circuito com um resistor e um
capacitor possui um tempo de atraso para o sinal. Este é o tempo necessário para carregar o capacitor. Deste
modo as alterações rápidas no sinal, devido à oscilação mecânica da chave, são filtradas e não ocorre o
problema dos chaveamentos indevidos, como pode ser visto na figura 4. Notar que o nível do sinal filtrado
não chega a zero em nenhum momento, devido à constante de tempo do filtro RC ser maior que o período
de debounce.
LEITURA DE CHAVES: DE-BOUNCING POR SOFTWARE
https://www.embarcados.com.br/leitur a-de-cha ves-de bounce/
O debounce por software em geral é utilizado em situações onde se deseja aumentar a robustez de
uma entrada que já possua um debounce por hardware ou reduzir o custo da placa utilizando
apenas a solução por software. A grande desvantagem deste tipo de sistema de leitura de chaves é
inserir um atraso na detecção da informação.
https://www.embarcados.com.br/leitura-de-chaves-debounce/
ESPECIFICAÇÕES TÉCNICAS BÁSICAS DO ESP32 E ESP8266
MICROCONTROLADOR ESP8266.
Em 2015, a empresa chinesa Espressif lançou o Microcontrolador ESP8266.
MICROCONTROLADOR ESP8266.
NodeMCU é uma plataforma open source da Internet das Coisas. Ela usa a linguagem de script Lua. Baseado no 
projeto eLua, foi construído sobre o SDK ESP8266 0.9.5
PINAGEM DO MICROCONTROLADOR ESP8266.
MICROCONTROLADOR ESP32
Possui dois Microprocessadores Xtensa® 32-bit
LX6 com até 600 DMIPS (velocidade de
processamento). A frequência do clock pode ser de
até 240 MHz, dependendo do modelo. A frequência
mais comum é 160 MHz ( 10 vezes o clock do
Arduino Uno).
MICROCONTROLADOR ESP32
Lançamento: 2016
CPU: Xtensa® Dual-Core 32-bit LX6
ROM: 448 KBytes
RAM: 520 Kbytes
Flash: 4 MB
Clock máximo: 240MHz
Wireless padrão 802.11 b/g/n
Conexão Wifi 2.4Ghz (máximo de 150 Mbps)
Antena: embutida
Conector micro-usb
Modos de operação: STA/AP/STA+AP
Bluetooth BLE 4.2
Pinos: 30 
GPIO com funções de PWM, I2C, SPI, etc
Tensão de operação: 4,5 ~ 9V
Conversor analógico digital (ADC)
ESPECIFICAÇÕES:
DIAGRAMA EM BLOCOS DO CHIP ESP32
PINAGEM DO CHIP ESP32
ESP32 CHIP PINOUT (VISTO POR CIMA) 48 PINOS
MODELOS DE MÓDULOS ESP32
https://docs.espressif.com/projects/esp-i df/en/l atest/hw-refer ence/modules-a nd-boa rds.html#
ESP-WROOM-32 ESP32-WROVER
ESP32 – PICO-D4
▪ ESP-WROOM-32 , 32D e 32U (mais comum)
▪ ESP32-WROVER , WROVER-I, B e ID
▪ ESP32 – PICO-D4
A Espressif desenvolveu alguns tipos de mini-módulos com o Chip ESP32 – dual core :
Todos esses módulos possuem uma memória Flash de 4 MBytes, onde fica armazenado o firmware
(código). Os módulos mais recentes da linha Wrover já vem com uma memória PSRAM( RAM pseudo
estática) de 8 MBytes. Existem também outros modelos de módulos ESP32, mas com single core, isto é,
com um processador somente. Mas esses modelos não são comuns aqui no Brasil.
https://docs.espressif.com/projects/esp-idf/en/latest/hw-reference/modules-and-boards.html
PLACAS DE DESENVOLVIMENTO ESP32
Quando a Espressif lançou o ESP8266, ela só vendia o módulo sem regulador e sem interface USB-Serial. Isso
dificultou para muitos, o uso desse módulo.Para evitar o mesmo erro, a Espressif lançou os módulos ESP32
e as placas de desenvolvimento (Development Boards) também :
ESP32-LyraT
https://www.espressif.com/en/products/hardw are/dev elopme nt-boar ds
ESP-WROVER-KIT ESP32-PICO-KIT
ESP-WROVER-KIT-VBESP32-DevKitCESP32-LyraTD-MSC
https://www.espressif.com/en/products/hardware/development-boards
PLATAFORMA COMPLETA DO ESP32
Alguns outros fabricantes, criaram as suas próprias versões de Placas de Desenvolvimento :
▪ WiPy 3.0 MycroPython da PYCOM
https://blog.eletrogate.com/conhecendo-o-esp32-introducao-1/
ESP32 – Thing da SparkFun ESP32 DevKit V1 da DOIT
ESP32 Feather Board da ADAFRUIT
FireBeetle ESP32 da DFRobot
PLACAS DE DESENVOLVIMENTO EQUIVALENTES 
Os Boards mais comuns encontrados aqui no Brasil , usam os módulos ESP-WROOM-32. Existem dois
modelos de placas de desenvolvimento ESP32 DevKit, uma placa com 30 pinos e a outra com 38 pinos. As
diferenças não são tão importantes, já que na Placa de 30 pinos não tem disponíveis os pinos para interface
com o SD card ( SD0, SD1, SD2, SD3, CMD e CLK) . Não é recomendável o uso desses pinos, já que são usados
pela memória Flash do módulo ESP32.
ESP32 DevKit
FIM

Continue navegando