Você está na página 1de 39

Mini Curso:

Introdução ao Arduino
Profª Me. Gedeane G.S. Kenshima
Arduino Day Sanca 2023 - 25/03/2023

gedeanekenshima@gmail.com
Agenda
• O que é Arduino? • Sobre simuladores online
• Possibilidades de projetos • Primeiro programa: o Blink
• Elementos de prototipagem • E se? E se não?
eletrônica: • Comando por botão
• Protoboard
• Jumpers
• Apresentando um LED RGB
• Resistores • Servomotores
• LEDs • Bibliografia
• Buzzer
• Ambiente de Programação
gedeanekenshima@gmail.com
O que é Arduino?
• Plataforma de prototipagem
eletrônica
• Composto de parte física
(hardware) e parte lógica (software)
• Microcontrolador é o cérebro da
plataforma
• Conexão com o mundo externo
(pinos de entradas e saídas)
• Alimentação elétrica por USB ou
fonte externa (pilhas, baterias, Esta Foto de Autor Desconhecido está licenciado em CC BY-SA

fonte etc.)
gedeanekenshima@gmail.com
O que é Arduino?
• Criado por Hernando Barragan
(colombiano) durante seu
mestrado em IVREA (Itália).
Nome original WIRING
• Divulgado amplamente por ser
de plataforma aberta (open
source)
• Massimo Banzi era professor e
orientador de Barragan

Fonte: Micreiros.com

gedeanekenshima@gmail.com
O que é Arduino?

Fonte: Micreiros.com

gedeanekenshima@gmail.com
Possibilidades de
projetos
• Detecção de obstáculos,
temperatura, luminosidade,
umidade relativa, umidade do
solo etc
• Controle de motores CC,
motores de passo,
servomotores, LEDs, fitas de
LED etc.
• Mostra de informações em
displays, apps e navegadores
• Conexão Bluetooth, WiFi,
infravermelho, rádio Fonte: IndiaMART

frequência etc. gedeanekenshima@gmail.com


Elementos de
prototipagem eletrônica

Protoboard: conexões
elétricas temporárias sem
uso de solda.
Também conhecido como
matriz de contatos.
Divididos por grupos de
conexão de 5 em 5 furos.

Fonte: Canal QSP Tecnologia

gedeanekenshima@gmail.com
Elementos de
prototipagem eletrônica

Protoboard:
• Frente: conjuntos de 5
furos interligados.
• Trás: pequenas chapas
de metal para
conduzir eletricidade e
interligar os pontos.

Fonte: Electronic Components Distributor

gedeanekenshima@gmail.com
Elementos de
prototipagem eletrônica
Protoboard:
• Conexão de elementos
diferentes no conjunto de 5
pontos (linha)
• Mesmo componente não
pode estar na mesma linha
(curto)
• Linhas não estão
conectadas de lado a outro
• Linhas laterais servem para
alimentação (positivo e Fonte: Instructables

negativo) gedeanekenshima@gmail.com
Elementos de
prototipagem eletrônica

Cabos jumpers
• Elemento de conexão
entre pontos
(protoboard, Arduino,
módulos etc)
• Tipos: macho-macho;
macho-fêmea; fêmea-
fêmea

gedeanekenshima@gmail.com
Elementos de
prototipagem eletrônica
Resistores
• Componente elétrico que se opõe
à corrente elétrica
• Unidade em Ohms (Ω)
• Não possui polaridade (não
importa o lado que liga)
• Faixas coloridas para identificação
do valor nominal
• Nos experimentos:
• 220 Ω (vermelho-vermelho-
marrom-dourado)
Fonte: Engenharia 360
• 10 kΩ (marrom-preto-laranja-
dourado) gedeanekenshima@gmail.com
Elementos de
prototipagem eletrônica
LEDs
• Sigla para Diodo Emissor de
Luz
• Possui polaridade (importa o
lado que liga)
• Anodo (terminal maior-
positivo)
• Catodo (terminal menor-
negativo)
• Corpo colorido: difuso
Fonte: Adafruit Learning System
• Corpo transparente: alto brilho
gedeanekenshima@gmail.com
Elementos de
prototipagem eletrônica
Buzzer
• Emissão de sons simples
• Possui polaridade (importa o
lado que liga)
• Terminal maior ou com (+)
positivo
• Terminal menor ou sem
marcação - negativo
• Proteção preta e terminais
diferentes: ativo
• Parte verde à mostra e terminais
iguais: passivo gedeanekenshima@gmail.com
Ambiente de programação
IDE Arduino (até 1.8.19)
• Ambiente gratuito offline
• Disponível em www.arduino.cc
• Escrita de códigos e verificação
de erros
• Carregamento de códigos para a
placa

Fonte: Micreiros.com

Fonte: Blog FilipeFlop


gedeanekenshima@gmail.com
Ambiente de programação
IDE Arduino (a partir de 2.0.0)
• Ambiente gratuito offline
• Disponível em www.arduino.cc
• Escrita de códigos e verificação
de erros
• Carregamento de códigos para a
placa

Fonte: Arduino Blog

gedeanekenshima@gmail.com
Sobre simuladores online
Tinkercad
• Ambiente
gratuito online
• Disponível em
https://www.tink
ercad.com

• Simulação de
circuitos
eletrônicos, Fonte: da autora
programação em
blocos e em texto
gedeanekenshima@gmail.com
Sobre simuladores online
Tinkercad
• Download do
código e da
montagem
• Montagens
ficam salvas na
conta
• Login com conta
Google, Apple
ou Autodesk Fonte: da autora

gedeanekenshima@gmail.com
Sobre simuladores online
Wokwi
• Ambiente gratuito
online
• Disponível em
https://wokwi.co
m/

• Simulação de
sistemas
embarcados com
programação em Fonte: da autora
texto (Wiring e
MicroPython)
gedeanekenshima@gmail.com
Sobre simuladores online
Wokwi
• Download do
código e da
montagem
• Montagens ficam
salvas na conta
• Login com conta
Google, GitHub ou
e-mail
• Opção auto
completar
(comandos) Fonte: da autora

gedeanekenshima@gmail.com
Primeiro programa: o Blink
// Início do sketch e Função de configuração
void setup() {
// define pino 13 como saída
pinMode(13, OUTPUT);
} // fim da função de configuração

// função de repetição infinita


void loop() {
digitalWrite(13, HIGH); // liga 13 (coloca pino em nível 1)
delay(1000); // aguarda 1s
digitalWrite(13, LOW); // desliga 13 (coloca pino em nível 0)
delay(1000); // aguarda um segundo
} // fim da função de loop e programa
gedeanekenshima@gmail.com
Primeiro programa: o Blink
Configuração da placa Arduino (Uno)

gedeanekenshima@gmail.com
Primeiro programa: o Blink
Configuração da porta COM

gedeanekenshima@gmail.com
Primeiro programa: o Blink
• LED L piscando na placa

Fonte: Canal Creative Robotics

gedeanekenshima@gmail.com
Primeiro programa: o Blink
LED externo piscando no protoboard
• 2 cabos
jumpers
macho-macho
• 1 resistor 220Ω
• 1 LED difuso
(qualquer cor)
• 1 placa
Arduino Uno
com cabo USB
• 1 protoboard

Fonte: Embarcados

gedeanekenshima@gmail.com
Primeiro programa: o Blink
LED externo piscando
no Tinkercad
• 1 placa Arduino Uno
• Inserir componentes arrastando para
área de trabalho
• 1 resistor 220 ou 330 (editar após inserir
o resistor)
• 1 LED
• Conexões (clicar no terminal dos
componentes)
• Clicar no botão código e mudar para
TEXTO
• Simular através do botão Iniciar
simulação
Fonte: da autora
gedeanekenshima@gmail.com
E se?
Condicional
• Realiza um comando
conforme um evento (Ex:
aperto de botão)
• Uso do laço condicional if
Ex:
SE (botão apertado){
Liga LED
}
Fonte: Makerguides.com

gedeanekenshima@gmail.com
E se não?
Complementa o if
• Opção para se a condição do
if não for verdadeira
Ex:
SE (botão apertado){
Liga LED
}
SE NÃO{
Desliga LED
} Fonte: Makerguides.com

gedeanekenshima@gmail.com
Comando por botão (montagem)

gedeanekenshima@gmail.com
Comando por botão (sketch)
// função de repetição infinita
// Início do sketch
void loop() {
// Cria uma constante chamada botao no pino 2
int leitura; // Variável leitura para saber condição de
const int botao = 2; aperto
// Cria uma constante chamada LED no pino 13 leitura = digitalRead(botao); // Lê pino botao e
const int LED = 13; guarda em leitura
if (leitura == HIGH){ // Se leitura for HIGH, então
//Função de configuração digitalWrite(LED, HIGH); // liga LED (coloca pino
em nível 1)
void setup() {
}
// define LED como saída
else{ // Se leitura não for HIGH
pinMode(LED, OUTPUT);
digitalWrite(13, LOW); // desliga LED (coloca
// define botao como entrada pino em nível 0)
pinMode(botao, INPUT); }
} // fim da função de configuração } // fim da função de loop e programa
gedeanekenshima@gmail.com
Apresentando um LED RGB

LED 3 em 1:
4 terminais (R,
comum, G e B)
Modelos:
• Anodo comum: pino
comum recebe 5V
• Catodo comum: pino
comum recebe 0V Fonte: Vamuino

(GND)
gedeanekenshima@gmail.com
Apresentando um LED RGB

Nível de cores:
• Red (Vermelho)
• Green (Verde)
• Blue (Azul)

Uso do comando analogWrite para Fonte: Picode Education

variação dos níveis das cores.

gedeanekenshima@gmail.com
Uso de repetições (LED Anodo Comum)

LED
Anodo
Comum

gedeanekenshima@gmail.com
Uso de repetições
// Início do sketch // função de repetição infinita
// Cria uma constante chamada LED void loop() {
no pino 10 // Contador i de 0 a 255
const int LED = 10; for(int i = 0; i < 255; i++){
// Variável i usada para alterar
//Função de configuração brilho do LED de forma automática
void setup() { analogWrite(LED, i);
// define LED como saída delay(100); // aguarda 100 ms
pinMode(LED, OUTPUT); } // Fim do contador
} // fim da função de configuração } // fim da função de loop e programa
gedeanekenshima@gmail.com
Alterando nível de brilho e cores
// Início do sketch vermelho for(int i = 0; i < 255; i++){
// Constante LED_verm no pino 10 for(int i = 0; i < 255; i++){ // Variável i usada para alterar brilho
const int LED_verm = 10; // Variável i usada para alterar brilho do LED de forma automática
// Constante LED_azul no pino 11 do LED de forma automática analogWrite(LED_azul, i);
const int LED_azul = 11; analogWrite(LED_verm, i); delay(100); // aguarda 100 ms
delay(100); // aguarda 100 ms } // Fim do contador para LED azul
//Função de configuração } // Fim do contador para LED vermelho for(int i = 255; i >=0; i--){
void setup() { // Contador i de 255 a 0 para LED // Variável i usada para alterar brilho
vermelho do LED de forma automática
// Define LEDs como saída
for(int i = 255; i >=0; i--){ analogWrite(LED_azul, i);
pinMode(LED_verm, OUTPUT);
// Variável i usada para alterar brilho delay(100); // aguarda 100 ms
pinMode(LED_azul, OUTPUT); do LED de forma automática } // Fim do contador para LED azul
} // fim da função de configuração analogWrite(LED_verm, i); } // fim da função de loop e programa
// função de repetição infinita delay(100); // aguarda 100 ms
void loop() { } // Fim do contador para LED vermelho
// Contador i de 0 a 255 para LED // Contador i de 0 a 255 para LED azul

gedeanekenshima@gmail.com
Servomotores

Controle de posição
Aplicações em:
• Robótica
• Aeromodelismo
• Dentre outros

Fonte: ArduinoInfo - MyWikis

gedeanekenshima@gmail.com
Exemplo prático 2
• 5V: fio vermelho

• GND: fio marrom

• Pino 9: fio laranja

gedeanekenshima@gmail.com
Exemplo prático: servomotor
void loop() {
// Inclui biblioteca Servo.h // Move de 0 a 180 graus de um em um grau
#include <Servo.h> for (pos = 0; pos <= 180; pos += 1) {
myservo.write(pos); // Escreve a posição atual no
objeto servo
Servo myservo; // Cria objeto myservo delay(15); // Aguarda 15 ms para ver o
movimento
// É possível criar mais de um objeto
}
int pos = 0; // Variável de posição for (pos = 180; pos >= 0; pos -= 1) { // Move de 180 a 0
grau
myservo.write(pos); // Escreve a posição atual no
void setup() { objeto servo
myservo.attach(9); // Anexa o pino 9 ao delay(15); // Aguarda 15 ms para ver o
movimento
objeto myservo }
} }// fim do programa
gedeanekenshima@gmail.com
Bibliografia

• Kenshima, G. Nas linhas do Arduino.


São Paulo: Novatec, 2020.

Cupom GEDEANE20 no site


www.novatec.com.br

gedeanekenshima@gmail.com
Obrigada!

• Instagram: @gedeanekenshima
• LinkedIn: Gedeane Kenshima
• TikTok: @gedeanekenshima
• Twitter: @ge_angrybirds
• Facebook: Gedeane Kenshima #comG
• E-mail: gedeanekenshima@gmail.com

gedeanekenshima@gmail.com

Você também pode gostar