Escolar Documentos
Profissional Documentos
Cultura Documentos
1 INTRODUÇÃO......................................................................................... 2
2 O HARDWARE ........................................................................................ 2
3 SOFTWARE ............................................................................................ 8
3.3 FUNÇÕES....................................................................................... 11
3.4 BIBLIOTECAS................................................................................. 12
4 PROJETOS ........................................................................................... 15
5 REFERÊNCIAS ..................................................................................... 28
1
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
1 INTRODUÇÃO
2 O HARDWARE
2
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
Tensão de entrada (limites) 6-20 V
Pinos E/S digitais 14 (dos quais 6 podem ser saídas PWM)
Pinos de entrada analógica 6
Corrente CC por pino E/S 40 mA
Corrente CC para o pino 3,3V 50 mA
Flash Memory 32 KB (ATmega328) dos quais 0,5KB são
utilizados pelo bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Velocidade de Clock 16 MHz
Tabela 1: Características do Arduino UNO
3
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
Figura 2: Arquitetura do Arduino
Nota: Como podemos observar, o arduíno uno utilizado neste minicurso é na versão
SMD genérica, há ainda outras diversas versões do Arduino. Entretanto estas versões pouco
diferem das disposições dos blocos que utilizaremos aqui.
Agora que já vimos as disposições dos blocos, vamos conhecer a função dos
principais blocos desta placa.
2.1 ALIMENTAÇÃO
O Arduino uno pode ser alimentado pela conexão USB ou por qualquer fonte
de alimentação externa. A fonte de alimentação é selecionada automaticamente.
A alimentação externa (não - USB) pode ser tanto de uma fonte ou de uma
bateria. A fonte pode ser conectada com um plug de 2,1 mm (centro positivo) no
conector de alimentação. Cabos vindos de uma bateria podem ser inseridos nos pinos
GND (terra) e Vin (entrada de tensão) do conector de alimentação.
A placa pode operar com uma alimentação externa de 6 a 20 V. Entretanto,
se a alimentação for inferior a 7 V o pino 5 V pode fornecer menos de 5 V e a placa
pode ficar instável. Se a alimentação for superior a 12 V o regulador de tensão pode
superaquecer e avariar a placa. A alimentação recomendada é de 7 a 12 V.
4
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
Os pinos de alimentação são:
• Vin: entrada de alimentação para a placa arduino quando uma fonte
externa for utilizada. Você pode fornecer alimentação por este pino ou,
se usar o conector de alimentação, acessar a alimentação por este
pino;
• 5V. Esse é um pino de saída que gera um 5V regulado do regulador de
tensão na placa. A alimentação da placa pode ser proveniente do
conector DC (7 - 12V), do conector USB (5V) ou do pino VIN da placa
(7-12V). O fornecimento de tensão através dos pinos de 5V ou 3,3V
ignora o regulador e pode danificar sua placa. Nós não aconselhamos.
• 3V3. Outro pino de saída de 3,3 volts gerado pelo regulador de interno.
O consumo máximo de corrente é de 50 mA.
• GND (ground): pino terra.
Cada um dos 14 pinos digitais do UNO podem ser usados como entradas ou
saídas usando as funções de pinMode (), digitalWrite (), e digitalRead (). Eles operam
5
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
com 5 V. Cada pino pode fornecer ou receber um máximo de 40 mA e tem um resistor
pull-up interno (desconectado por padrão) de 20-50 kΩ. Além disso, alguns pinos têm
funções especializadas:
• Serial: 0 (RX) e 1 (TX). Usados para receber (RX) e transmitir (TX)
dados seriais TTL. Estes pinos são conectados aos pinos
correspondentes do chip serial FTDI USB-to-TTL.
• PWM: 3, 5, 6, 9, 10, e 11. Fornecem uma saída analógica PWM de 8-
bit com a função analogWrite().
• SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estes pinos suportam
comunicação SPI, que embora compatível com o hardware, não está
incluída na linguagem do Arduino.
O UNO tem 6 entradas analógicas, cada uma delas está ligada a um
conversor analógico-digital de 10 bits, ou seja, transformam a leitura analógica em um
valor dentre 1024 possibilidades (exemplo: de 0 a 1023). Por padrão, elas medem de
0 a 5 V, embora seja possível mudar o limite superior usando o pino AREF e um pouco
de código de baixo nível. Adicionalmente alguns pinos têm funcionalidades
especializadas:
• I2C: 4 (SDA) e 5 (SCL). Suportam comunicação I2C (TWI) usando a
biblioteca Wire.
• AREF: referência de tens para entradas analógicas. Usados com
analogReference().
• Reset: Envie o valor LOW para reiniciar o microcontrolador.
Tipicamente utilizados para adicionar um botão de reset aos Shields
(placas que podem ser plugadas ao Arduino para estender suas
capacidades) que bloqueiam o que há na placa
6
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
2.5 LEDS
7
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
3 SOFTWARE
8
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
Figura 3: Ambiente de programação (Integrated Development Environment-IDE)
9
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
A estrutura básica de programação é baseada no firework wiring tendo duas
funções principais:
• Setup() – que:
✓ É a primeira função a ser chamada;
✓ Recebe as configurações iniciais;
✓ Roda apenas uma única vez;
✓ Função obrigatória.
• Loop() – que:
✓ Recebe o código fonte;
✓ É um laço infinito;
✓ Função obrigatória.
Exemplo:
void setup() {
// recebe as configurações iniciais
void loop() {
// recebe o código fonte
10
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
Os programas para o Arduino são implementados tendo como referência a
linguagem C++. Preservando sua sintaxe clássica na declaração de variáveis, nos
operadores, nos ponteiros, nos vetores, nas estruturas e em muitas outras
características da linguagem. Com isso temos as referências da linguagem, essas
podem ser divididas em três partes principais: As estruturas, os valores (variáveis e
constantes) e as funções.
As estruturas de referências são:
• Estruturas de controle (if, else, break, ...);
• Sintaxe básica (define, include, ; , ...);
• Operadores aritméticos e de comparação (+, -, =, ==, !=, ...);
• Operadores booleanos (, ||, !);
• Acesso a ponteiros (*, );
• Operadores compostos (++, –, +=, ...).
Os valores de referências são:
• Tipos de dados (byte, array, int , char , ...);
• Conversões (char(), byte(), int(), ...);
• Variável de escopo e de qualificação (variable scope, static, volatile,
...);
• Utilitários (sizeof(), diz o tamanho da variável em bytes).
É bom citar que o software que vem no Arduino já provê várias funções e
constantes para facilitar a programação, além das já referenciadas no tópico 3.1
ESTRUTURA DO PROGRAMA, temos ainda:
• Constantes (HIGH | LOW , INPUT | OUTPUT , ...);
• Bibliotecas (Serial, Servo, Tone, etc.).
3.3 FUNÇÕES
3.4 BIBLIOTECAS
12
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
• Ethernet - para se conectar a uma rede Ethernet usando o Arduino
Ethernet Shield.
• Firmata - para se comunicar com os aplicativos no computador usando
o protocolo Fir- mata.
• LiquidCrystal - para controlar telas de cristal líquido (LCDs).
• Servo - para controlar servo motores.
• SPI - para se comunicar com dispositivos que utilizam barramento
Serial Peripheral In- terface (SPI).
• SoftwareSerial - Para a comunicação serial em qualquer um dos pinos
digitais.
• Stepper - para controlar motores de passo.
• Wire - Dois Wire Interface (TWI/I2C) para enviar e receber dados
através de uma rede de dispositivos ou sensores.
Temos como referência também, o uso de bibliotecas mais específicas. O que
é de extrema importância quando se faz o uso do Arduino com um enfoque em uma
determinada área. Como por exemplo:
13
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
• SerialControl - Controle remoto através de uma conexão serial.
Sensoriamento
• Capacitive Sensing - Transformar dois ou mais pinos em sensores
capacitivos.
• Debounce - Leitura de ruídos na entrada digital.
Temporização
• DateTime - Uma biblioteca para se manter informado da data e hora
atuais do software.
• Metro - Ajuda ao programador a acionar o tempo em intervalos
regulares.
• MsTimer2 - Utiliza o temporizador de 2 de interrupção para
desencadear uma ação a cada N milissegundos.
Utilidades
• TextString (String) - Manipular strings
• PString - uma classe leve para imprimir em buffers.
• Streaming - Um método para simplificar as declarações de impressão
Para utilizar algumas bibliotecas você deve realizar a instalação das mesmas
na IDE Arduino, para isto há duas formas: Você pode instalar as bibliotecas
disponíveis para a instalação na própria IDE, ou baixar e instalar a partir de um arquivo
.zip, veremos as duas formas.
14
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
Instalar bibliotecas já disponíveis para download e instalação no IDE
No menu principal do IDE vá em:
Sketch>Incluir Biblioteca>Gerenciar Bibliotecas...
Procure a biblioteca que você precise é clique em instalar. Pronto! A biblioteca
já está instalada e pronta para uso.
4 PROJETOS
4.1 BLINK
O código blink já está disponível como exemplo no IDE Arduino, entretanto o
mesmo está com código para acionar o LED ligado a porta 13 referenciado no tópico
2.5 LEDs, no programa que usaremos, iremos utilizar um LED externo acionado por
outra saída digital da placa Arduino.
15
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
Componentes necessário
• 1 protoboard 400 pontos;
• 1 placa Arduino UNO com cabo USB tipo A/B;
• 1 LED verde;
• 1 resistor de 220 Ohm;
• Jumpers.
Sketch (Código)
/*
################################################################
## Programa 1: Blink ##
## Minicurso Arduino: Primeiros passos ##
## Autor: Douglas Santos ##
## Oferecido por: AD Robótica ##
## www.adrobotica.com ##
################################################################
*/
16
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
Figura 4: Montagem dos componentes projeto 1 - Blink
Dica importante:
Você pode utilizar LEDs de outras cores, mas para isto você deve fazer um
cálculo para ajustar o resistor para cada LED especifico. Para realizar este cálculo
você deve utilizar a seguinte formula:
𝑉𝑓𝑜𝑛𝑡𝑒 − 𝑉𝐿𝐸𝐷
𝑅=
𝐼𝐿𝐸𝐷
Em que: R é a resistência do resistor que você procura, 𝑉𝑓𝑜𝑛𝑡𝑒 a tensão da
fonte, 𝑉𝐿𝐸𝐷 a tensão do LED e 𝐼𝐿𝐸𝐷 a corrente do LED.
Quando a placa Arduino muda o status de uma porta digital para HIGH, é
enviado uma tensão de 5V, neste caso a tensão de fonte.
A tensão e corrente de LED você geralmente encontra no datasheet (folha de
dados) do mesmo, entretanto caso não a encontre podemos considerar para casos
mais gerais a corrente de 20mA e a tensão de acordo com a cor do LED indicado na
tabela abaixo:
Cor do LED Tensão aproximada
Vermelho 2V
Laranja 2V
Amarelo 2.1 V
Verde 2.2 V
Azul 3.3 V
Branco 3.3 V
Tabela 3: Tensão do LED de acordo com a cor do mesmo
17
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
No nosso exemplo, estamos utilizando um LED verde, neste caso o nosso
calculo fica:
5 − 2.2
𝑅= = 140 𝑂ℎ𝑚
20 × 10−3
Como em nosso kit não há um resistor de 140 Ohm exatamente, podemos
aproximar com o que temos disponíveis, geralmente para cima para não ter risco de
queimar o LED. No nosso caso o mais próximo disponível era um de 220 Ohm, neste
caso o que pode ocorrer é o LED emitir o brilho total do mesmo.
Agora você aprenderá como fazer o projeto Arduino LED com botão. Este
projeto consiste em controlar o funcionamento de um LED, ligando e desligando o
mesmo através de um push button. Este projeto básico introduz a utilização de botões,
ou push buttons, em projetos Arduino, permitindo a você dar um passo a mais no seu
aprendizado. Então vamos lá.
Componentes necessário
• 1 protoboard 400 pontos;
• 1 placa Arduino UNO com cabo USB tipo A/B;
• 1 LED verde;
• 1 resistor de 220 Ohm;
• 1 resistor de 100 Ohm;
• 1 push button;
• Jumpers.
Sketch (Código)
/*
################################################################
## Programa 2:LED COM BOTÃO LIGA/DESLIGA ##
## Minicurso Arduino: Primeiros passos ##
## Autor: Douglas Santos ##
## Oferecido por: AD Robótica ##
## www.adrobotica.com ##
################################################################
18
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
*/
19
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
4.3 CONTROLE DE LUZ COM LDR
Componentes necessário
• 1 protoboard 400 pontos;
• 1 placa Arduino UNO com cabo USB tipo A/B;
• 1 LED verde;
• 1 resistor de 220 Ohm;
• 1 resistor de 10 kOhm;
• 1 LDR;
• Jumpers.
Sketch (Código)
/*
################################################################
## Programa 3: CONTROLE DE LUZ COM LDR ##
## Minicurso Arduino: Primeiros passos ##
## Autor: Douglas Santos ##
## Oferecido por: AD Robótica ##
## www.adrobotica.com ##
################################################################
*/
void setup()
{
pinMode(portaLed, OUTPUT); //Define a porta do Led como saída
}
void loop()
{
int estado = analogRead(portaLDR); //Lê o valor fornecido pelo LDR
Componentes necessário
• 1 protoboard 400 pontos;
• 1 placa Arduino UNO com cabo USB tipo A/B;
21
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
• 2 LEDs verde;
• 2 LEDs Vermelho;
• 1 LED amarelo;
• 5 resistores de 220 Ohm;
• 2 resistores de 100 Ohm;
• 2 push bottons;
• Jumpers.
Sketch (Código)
/*
################################################################
## Programa 4: SINAL DE TRÂNSITO PARA FAIXA DE PEDESTRE ##
## Minicurso Arduino: Primeiros passos ##
## Autor: Douglas Santos ##
## Oferecido por: AD Robótica ##
## www.adrobotica.com ##
################################################################
*/
22
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
digitalWrite(sinal_v_verde,LOW);
digitalWrite(sinal_v_amarelo,LOW);
digitalWrite(sinal_v_vermelho,LOW); //Neste bloco desligamos todos
digitalWrite(sinal_p_verde,LOW); //os sinais do semáfaro
digitalWrite(sinal_p_vermelho,LOW);
23
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
//depois que sai do laço, desliga o sinal vermelho para o //pedestre
digitalWrite(sinal_p_vermelho,HIGH);
delay(1000); //e aguarda por 1 seg
Neste projeto iremos realizar o controle de uma lâmpada (simulada por LED
através de palmas), utilizando um sensor de som. O sensor de som que utilizaremos
nada mais é que uma plaquinha contendo um microfone e um controlador. Este sensor
deve ser alimentado por 5V e GND, ele fornecerá dados digitais a partir do pino out
que estará sempre em sinal alto (fornecendo 5V), e no momento em que ele detectar
um som ele enviará um sinal baixo (0V) pela porta out. A Altura deste som pode ser
regulada através do potenciômetro presente no próprio sensor.
24
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
Componentes necessário
• 1 protoboard 400 pontos;
• 1 placa Arduino UNO com cabo USB tipo A/B;
• 1 LED verde;
• 1 resistor de 220 Ohm;
• 1 sensor de som;
• Jumpers.
Sketch (Código)
25
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
#define pinlampada 2
#define tempoMaximoDeUmaPalma 150 //milisegundos
#define tempoMaximoEntrePalmas 500 //milisegundos
int contaPalmas = 0;
long tempoEspera = 0;
long tempoEsperaEntrePalmas = 0;
void executarAcao();
void setup() {
pinMode(pinSom, INPUT);
pinMode(pinlampada, OUTPUT);
}
void loop() {
//verifica o estado do sensor de som (ele fica normalmente com a porta
//ligada.
//Quando ouver uma palma, ele desliga momentaneamente a porta)
int sensorSom = digitalRead(pinSom);
//espera um tempo para nao detectar a mesma palma mais de uma vez
if (tempoEspera == 0) {
tempoEspera = tempoEsperaEntrePalmas = millis();
contaPalmas++;
} else if ((millis() - tempoEspera) >= tempoMaximoDeUmaPalma) {
tempoEspera = 0;
}
}
void executarAcao()
{
switch (contaPalmas) {
case 2:
digitalWrite(pinlampada, !digitalRead(pinlampada));
break;
}
}
Obrigado!
Caso você tenha alguma dúvida, não deixe de entrar em contato pelo site:
www.adrobotica.com ou pelo e-mail: contato@adrobotica.com.
27
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com
5 REFERÊNCIAS
[1] https://www.arduino.cc/
Acesso em: 31/07/19
[2] http://www.eletrica.ufpr.br/~james/Laboratorio%20V/arquivos/Mini%20C
urso%20Arduino.pdf
Acesso em: 31/07/19
[3] http://www.roboliv.re/uploads/documentos/arduino-
basico/ERUS_minicurso%20arduino_2190_1382631240.pdf
Acesso em: 31/07/19
[4] http://siep.ifpe.edu.br/anderson/arquivos/arduino/Curso%20de%20Ardu
ino.pdf
Acesso em: 31/07/19
[5] https://br-arduino.org/2015/05/arduino-icsp-attiny-atmega.html
Acesso em 31/07/19
[6] http://www.comofazerascoisas.com.br/projeto-arduino-led-com-botao-
liga-desliga.html
Acesso em 31/07/19
[7] https://www.arduinoecia.com.br/2013/09/controle-de-luz-com-ldr-e-
arduino.html
[8] Curso de Arduino para Iniciantes - Aula 02 - Partes do Arduino - Controle
por Palmas. Disponível em:
https://www.youtube.com/watch?v=rIdiLlf4vJQ
Acesso em: 02/08/19
28
AD ROBÓTICA - E-commerce de componentes eletrônicos voltados a
robótica com ênfase na plataforma Arduíno.
www.adrobotica.com