Microprocessadores e
microcontroladores
Arduino
Curso de Engenharia Elétrica
Universidade Paulista
© UNIP 2020 all rights reserved
Arduino (slide 2/27)
Fácil de usar
Grande gama de sensores
Barato
- Original em torno de
R$120,00 e chinês aprox.
R$50,00
- Kits com chinês em torno de
R$130,00
Muita coisa online!
- Inglês e português!
© UNIP 2020 all rights reserved
COMEÇANDO
© UNIP 2020 all rights reserved
O que é um Arduino? (slide 4/27)
É um microcontrolador open-source
Objetivo?
- Tornar o acesso à eletrônica e computação facilitado
- Principalmente nas universidades
- Barato e flexível
Possui todos os elementos anteriores em uma plaquinha muito simples
- Microcontrolador é o ATMEGA328
É um projeto Italiano
- Mas os chineses são mais baratos $$$
4
© UNIP 2020 all rights reserved
Arduino é filho único? (slide 5/27)
São quase 15 dispositivos baseados nessa plataforma
- Umas mais poderosas, com mais memórias, I/Os e processamento, outras com
menos...
Mega Uno Nano Lillypad
101x53 mm 68x53 mm 43x18 mm ∅50 mm
DIMENSÃO
© UNIP 2020 all rights reserved
HARDWARE
© UNIP 2020 all rights reserved
Pinagem (slide 7/27)
Vamos identificar os componentes
© UNIP 2020 all rights reserved
Microcontroller ATmega328P
Especificações Operating Voltage 5V
(specs) Input Voltage (recommended) 7-12V
Input Voltage (limit) 6-20V
Digital I/O Pins 14 (of which 6 provide PWM output)
PWM Digital I/O Pins 6 (3, 5, 6, 9, 10, and 11. 8-bit PWM)
Analog Input Pins 6 (A0-A5)
DC Current per I/O Pin 20 mA
DC Current for 3.3V Pin 50 mA
32 KB (ATmega328P) of which 0.5 KB
Flash Memory
used by bootloader
SRAM 2 KB (ATmega328P)
EEPROM 1 KB (ATmega328P)
Clock Speed 16 MHz
LED_BUILTIN 13
Length 68.6 mm
Width 53.4 mm
Weight 25 g
© UNIP 2020 all rights reserved
Pinagem de verdade (slide 9/27)
Doc pinagem
Doc placa
© UNIP 2020 all rights reserved
Alimentação (slide 10/27)
Três tipos: USB, carregador externo ou
pela porta Vin. O Arduino escolhe
automaticamente.
- Carregador externo: pode ser com bateria ou
conversor AC-DC com saída de até 20 V.
- USB: 5 V
- Vin: conhecida como “9V”, semelhante ao
carregador externo
A placa opera entre 6 V e 20 V.
- Se alimentamos menos de 7 V, a alimentação de
5 V pode não alimentar 5 V, deixando a placa
instável
- Se usarmos mais de 12 V, o regulador de tensão
pode sobreaquecer e danificar a placa.
- Recomenda-se entre 7 V e 12 V.
© UNIP 2020 all rights reserved
Alimentação: pinos (slide 11/27)
Tanto o VIN de 5V quanto de 3.3V saem
direto do regulador de tensão
3.3V fornece, no máximo, 50 mA
O Arduino possui um polyfuse que
protege sua porta USB (quando
utilizada como alimentação). Apesar da
maioria dos PCs já possuírem proteção
interna, essa precaução extra é
importante. Se mais de 500 mA são
demandados da porta USB, o fuso vai
automaticamente quebrar a conexão e
esperar a situação normalizar
© UNIP 2020 all rights reserved
Segurança (do Arduino!) (slide 12/27)
Cada pino do Arduino tem uma limitação de corrente...
Corrente por pino de I/O - 40 mA
Corrente máxima de todos os pinos sendo utilizados para alimentação
– 150 mA
Corrente máxima de todos os pinos sendo utilizados para drenagem –
150 mA
Corrente nos pinos Vcc (5V) e GND - 200 mA
Mais detalhes em: https://playground.arduino.cc/Main/ArduinoPinCurrentLimitations
12
© UNIP 2020 all rights reserved
Software
COMO É QUE FUNCIONA
ENTÃO?
© UNIP 2020 all rights reserved
Como funciona? Arquitetura (slide 14/27)
IDE - Integrated Development
Environment
- Ambiente onde se escreve os códigos
desejados
- O Arduino possui sua própria IDE (baseada
C/C++)
Qual o “caminho” do código?
O firmware é o software do usuário
Bootloader é o software do hardware
- Quando o hardware é energizado, ele tem que
chamar a posição 0 de memória
- Em computadores, vai inicializar todo o SO
- No Arduino, permite escrevermos nosso
programa sem hardware externo
- O usuário não reescreve o bootloader
- https://www.arduino.cc/en/Hacking/Bootloader?from
=Tutorial.Bootloader
14
© UNIP 2020 all rights reserved
Instalando a IDE (slide 15/27)
Baixar em http://arduino.cc/en/Main/Software
Instalar...
Como parece?
15
© UNIP 2020 all rights reserved
Identificando a IDE (slide 16/27)
Verify (símbolo de certo)
- Verificação de código (busca por erros)
Upload (seta pra direita)
- Compila o código e sobe na placa do Arduino
New (Pequena página em branco)
- Cria uma sketch em branco
Open (seta pra cima)
- Abre uma lista de todas as sketches que já existem no seu PC
Save (seta para baixo)
- Salva a sketch no PC
Serial Monitor (pequena lupa)
- Monitor da porta serial (USB)
16
© UNIP 2020 all rights reserved
Identificando a IDE (slide 17/27)
Console
- Situação da compilação e subida de
código
Code goes here
- Seu código (em breve)
Board & Serial port selections
- Situação da placa selecionada (!)
17
© UNIP 2020 all rights reserved
Escolhendo sua placa Arduino (slide 18/27)
Vá em Tools -> Board -> escolha sua placa
18
© UNIP 2020 all rights reserved
Exemplo! (slide 19/27)
© UNIP 2020 all rights reserved
Protoboard (slide 20/27)
Exemplo
© UNIP 2020 all rights reserved
Protoboard (slide 21/27)
Exemplo
© UNIP 2020 all rights reserved
Solução (slide 22/27)
Servem pra drenar a corrente que o Arduino não conseguiria
- Por exemplo, um motor de 24V vai puxar alguns amperes, enquanto que o Arduino
alimenta, aprox., 40 mA.
Solução?
Transistors!
- Para motores
- Para LEDs e resistores, Arduino dá conta
22
© UNIP 2020 all rights reserved
(slide 23/27)
Mais de perto
https://www.arduino.cc/en/Tutorial/TransistorMotorControl
© UNIP 2020 all rights reserved
Tipos de Entradas e Saídas (slide 24/27)
Dois tipos
- Entradas Digitais
- Medem estado
- Entradas Analógicas
- Medem valores
24
© UNIP 2020 all rights reserved
1ª TAREFA
© UNIP 2020 all rights reserved
Primeira tarefa: ligar um LED (slide 26/27)
Materiais: 1x LED, 1x Resistor 220 Ω, fios e Arduino UNO
Tinkercad.com
26
© UNIP 2020 all rights reserved
Resistor (slide 27/27)
Tabela de cores
27
© UNIP 2020 all rights reserved
Alimentação (slide 28/27)
2 maneiras
- USB (5 V)
- Até uns 400 mA
- Fonte externa (9V a 12V)
28
© UNIP 2020 all rights reserved
1ª Tarefa - Piscar meu LED (slide 29/27)
int pinoLED = 8; // pinoLED é uma variável do pino selecionado, no caso, 8
void setup() {
pinMode(pinoLED, OUTPUT); // inicializa o pino ledPin (porta 8) como um
OUTPUT
}
void loop() {
digitalWrite(pinoLED, HIGH); // liga o LED (HIGH = 5 V)
delay(250); //espera 250 ms
digitalWrite(pinoLED, LOW); //desliga o LED (LOW = 0 V)
delay(500); //espera 500 ms
}
© UNIP 2020 all rights reserved
Característica
int pinoLED = 8; setup()
void setup()
- Só roda a primeira vez
{
em que o
pinMode(ledPin, OUTPUT); microcontrolador é ligado
} ou reiniciado
void loop() {
digitalWrite(ledPin, HIGH);
loop()
delay(250); - Funciona para sempre
digitalWrite(ledPin, LOW); depois de rodar o setup()
delay(500);
}
© UNIP 2020 all rights reserved
FIM !
© UNIP 2020 all rights reserved