ATV2ArthurFinal Arduino Aprenda
ATV2ArthurFinal Arduino Aprenda
MANUAL DO PROFESSOR
Arthur Caio Vargas e Pinto
Belo Horizonte
Instituto Federal de Minas Gerais
2022
© 2022 by Instituto Federal de Minas Gerais
Todos os direitos autorais reservados. Nenhuma parte desta publicação poderá ser
reproduzida ou transmitida de qualquer modo ou por qualquer outro meio, eletrônico
ou mecânico. Incluindo fotocópia, gravação ou qualquer outro tipo de sistema de
armazenamento e transmissão de informação, sem prévia autorização por escrito do
Instituto Federal de Minas Gerais.
FICHA CATALOGRÁFICA
Dados Internacionais de Catalogação na Publicação (CIP)
Índice para catálogo sistemático:
1. Não preencher
Não preencher
2022
Direitos exclusivos cedidos à
Instituto Federal de Minas Gerais
Avenida Mário Werneck, 2590,
CEP: 30575-180, Buritis, Belo Horizonte – MG,
Telefone: (31) 2513-5157
Sobre o material
Os ícones são elementos gráficos para facilitar os estudos, fique atento quando
eles aparecem no texto. Veja aqui o seu significado:
1.1. Introdução
Neste curso os alunos irão aprender a usar um sensor de presença para detectar
pessoas e acender um LED com Arduino. Pode até parecer um projeto simples, mas ele
serve como base para a utilização do Arduino no controle de diversos outros dispositivos.
Os conceitos aprendidos neste curso servirão tanto para o acionamento de LEDs quanto de
outros dispositivos externos como motores, lâmpadas, e etc. Antes de nos direcionarmos de
fato à solução do problema, a primeira parte deste curso visa promover um contato inicial
dos alunos com conceitos de eletrônica e programação. Provavelmente os alunos do curso
terão nenhum ou pouco contato com esses assuntos, portanto por se tratar de um curso de
curta duração o objetivo não é ensiná-los de fato a programar. O foco desta atividade é o de
apresentar os principais conceitos básicos sobre essas áreas, explicar o funcionamento e
permitir a manipulação dos componentes, com o intuito de despertar o interesse nos alunos
neste campo do conhecimento até então inacessível. Montar um circuito elétrico e criar o
código de programação para fazer o LED piscar com Arduino geralmente é o primeiro passo
para iniciantes, pois mostra que o aluno é capaz de programá-lo. Essa primeira parte é,
portanto, um pequeno grande passo no aprendizado de eletrônica e programação e permite
que o aluno possa se aventurar em projetos mais complexos depois.
Os alunos irão começar aprendendo o que são e como funcionam os materiais e
componentes utilizados na atividade, principalmente sobre o Arduino. Verão que o LED
possui polaridade e que deve ser ligado do jeito certo, além de conhecer a tabela de cores
de resistores.
Após esta etapa, o professor irá explicar o funcionamento de circuitos elétricos
básicos, incluindo a ligação de componentes e como a corrente “se movimenta” pelo circuito.
Haverá uma discussão sobre fontes de energia e o primeiro circuito será montado. Na
terceira etapa, os alunos aprenderão como utilizar o Arduino para atuar no papel de fonte
para o circuito, possibilitando ligar e desligar o circuito utilizando programação. Eles irão
aprender a montar um circuito com Arduino e a enviar o código de programação para a placa,
além de entender o que cada palavra do código faz. Depois serão propostos desafios para
que os alunos testem seus conhecimentos em circuitos elétricos e programação para
Arduino. Ao final do curso, os alunos terão sido apresentados à componentes básicos de
circuitos eletrônicos e aos principais conceitos sobre eletrônica básica. Além disso, terão um
contato inicial com lógica de programação e serão capazes de desenvolver seus próprios
códigos a partir de um código de exemplo que será fornecido.
Por fim, os alunos poderão utilizar o que aprenderam para resolver o problema
principal deste curso: acender o LED quando o sensor de presença detectar movimento.
Nesta parte do curso os alunos irão conhecer os diversos tipos de sensores disponíveis para
uso junto com o Arduino. Depois, poderão programar o sensor de presença para resolver o
problema proposto.
15
Laboratório de Inovação Tecnológica - LIC
16
Materiais necessários Laboratório de Inovação Tecnológica - LIC
Para este curso utilizaremos alguns componentes eletrônicos juntamente com a placa
Arduino. A seguir é apresentada a Tabela 1 em que são descritos os materiais necessários
para a realização da atividade, juntamente com imagens dos equipamentos, quantitativo, e
opções de substituição.
Tabela 1 – Materiais para o curso.
Nome do
Item Descrição Quant. Foto Substituição
item
LED
LED LEDs de
1 monocromático 2
vermelho outras cores
na cor vermelha
Caso o uso da
bateria não
Bateria alcalina
seja possível,
2 Bateria de 9V (qualquer 1
utilizar o pino
marca)
de saída de
5V do Arduino
Fonte: Robocore (2022)
Resistores na
3 Resistor Resistor de 510Ω 1 faixa de 510Ω
a 1kΩ
Resistores na
4 Resistor Resistor de 300Ω 2 faixa de 270Ω
a 330Ω
Fios para
Fios Não há
5 conexão de 10
conectores substituto
componentes
17
Laboratório de Inovação Tecnológica - LIC
Protoboard de
Protoboard 400
6 Protoboard 1 outros
pontos
tamanhos
Placa Arduino
Uno R3 + Cabo Não há
7 Arduino 1
USB para substituto
Arduino
Sensor de
Movimento e
Presença PIR
Sensor de Não há
8 HC-SR501 1
presença substituto
Verificar se tem
esse sensor no
kit arduino
Fonte: Eletrogate (2022c)
18
Laboratório de Inovação Tecnológica - LIC
O Arduino é uma placa de código aberto projetada na Itália que surgiu para ser
utilizada como forma de prototipagem eletrônica, com o objetivo de tornar a robótica e a
eletrônica mais acessíveis à artistas, designers, hobbistas e qualquer pessoa interessada
em criar objetos ou ambientes interativos. Idealizada por Massimo Banzi e David Cuartielles
em 2005, a placa surgiu como uma maneira mais barata de estudar eletrônica e
programação, além de ser uma excelente ferramenta para iniciantes no estudo das
linguagens de programação, tornando o aprendizado de eletrônica e engenharia muito
menos maçante e difícil. Desde sua criação, cada versão lançada do Arduino se mostrava
mais simples e mais fácil de ser usada (MCROBERTS, 2018). Resumidamente, pode-se
dizer que o Arduino é um pequeno computador que o programamos de acordo com a nossa
necessidade. O Arduino possibilita a criação de projetos de diferentes tamanhos e
complexidades, desde programas que acendem LEDs a sistemas de captação de dados
provenientes de uma infinidade de sensores que possuam compatibilidade com a placa.
Outra característica essencial do Arduino é que todo o material, incluindo bibliotecas,
hardware e o próprio software, é de código aberto, ou seja, pode ser reproduzido e usado
por qualquer pessoa sem a necessidade do pagamento de direitos autorais a seus criadores
(EVANS, NOBLE e HOCHENBAUM, 2013). Além disso, a existência de uma forte
comunidade online, com sites e fóruns dedicados, permitiu a criação de um extenso acervo
de bibliotecas e códigos na internet. Tanto entusiastas quanto profissionais compartilham
seus códigos na internet, auxiliando ainda mais iniciantes em busca de aprendizado.
O Arduino pode ser programado por meio de uma linguagem de programação própria
baseada na linguagem Wiring, semelhante à linguagem C++. Utilizando o IDE (ambiente de
desenvolvimento integrado) específico, é possível escolher a placa que se está utilizando,
além de contar com diversas bibliotecas e exemplos de utilização para programadores
iniciantes (SOUZA, 2014).
De forma geral, cada placa Arduino é constituída por um microcontrolador, pinos
digitais e analógicos de entrada e saída e uma porta USB. Além disso, o Arduino também
acompanha um ambiente de desenvolvimento para a programação no computador. Existem
diversos modelos de Arduino disponíveis no mercado, cada qual com sua peculiaridade,
variando número de portas, tipo de conexão USB, etc. Uma das placas mais populares e a
que utilizaremos nesta aula prática é a UNO, que apresenta baixo custo e possui recursos
suficientes para a execução de variados projetos.
O Arduino UNO é equipado com um microcontrolador da série ATMEGA de 8 bits. A
placa possui 14 pinos digitais de entrada e saída, sendo que seis destes podem ser usados
como saídas analógicas. Possui também seis entradas analógicas, conexão USB e um
conector de alimentação, podendo então ser alimentado via USB, ou por meio de baterias
ou fontes externas (SOUZA, 2014).
19
Laboratório de Inovação Tecnológica - LIC
20
Laboratório de Inovação Tecnológica - LIC
deixe como está. Clique em “Install” e espere o procedimento terminar. Ao final, o programa
estará instalado e pronto para uso.
Um LED é um diodo emissor de luz (do inglês, Light Emitting Diode) que realiza um
procedimento eletroquímico chamado de eletroluminescência, que é quando um material
emite resposta luminosa se percorrido por uma corrente elétrica, sendo basicamente uma
lâmpada que consome pouca energia. Um LED pode ser produzido em muitas cores e é
utilizado principalmente como indicador luminoso em projetos eletrônicos, estando presente
em quase todos os dispositivos eletrônicos para indicar que os mesmos estão energizados.
O LED, assim como alguns componentes, possui polaridade. Assim, possui um lado
positivo “+” e um lado negativo “-“. Para que um LED funcione corretamente, primeiramente
é necessário que a polarização esteja correta. Para que isso ocorra você deve ligar o terminal
positivo do LED no VCC e o negativo no GND do seu circuito, do contrário não haverá
condução e isso prejudicará todo o restante do circuito. A identificação de polos de um LED
pode ser feita pela estrutura do corpo do mesmo, como mostra a Figura 2.O polo positivo
(anodo) conta com maior haste metálica para a ligação com a placa, além de
encapsulamento plástico circular do lado positivo, enquanto o lado negativo (catodo)
apresenta menor haste de contato e encapsulamento achatado, como ilustrado.
2.3 Resistores
21
Laboratório de Inovação Tecnológica - LIC
Uma boa notícia é que diferentemente dos LEDs, resistores não possuem polaridade,
por isso você pode ligar um resistor tranquilamente pois ele não tem lado positivo ou
negativo, ou seja, tanto faz o lado em que é conectado.
Os resistores possuem diferentes valores de resistência, sendo que quanto maior a
resistência, mais ele irá limitar a corrente que passa por ele. O valor de um resistor é fixo e
é indicado pelas faixas de cores pintadas nele, de acordo com a Figura 3.
2.4 Protoboard
22
Laboratório de Inovação Tecnológica - LIC
seus objetivos. Cada protoboard é composta por furos interconectados por um material
condutor localizado abaixo da camada de plástico, conforme mostra a Figura 4:
23
Laboratório de Inovação Tecnológica - LIC
24
Atividade proposta Plataforma +IFMG
Parte 1
Nesta primeira etapa de execução da prática, peça aos alunos que leiam as
informações sobre os materiais e componentes utilizados na atividade. Eles irão conhecer
sobre o Arduino, LEDs, resistores e protoboard. Se preferir, faça a leitura em voz alta
juntamente a eles. Durante a leitura sobre o Arduino, pegue uma placa e mostre onde cada
pino e conexão mencionados se encontram. Durante a leitura sobre resistores, se possível
tenha à mão alguns resistores de diferentes valores de resistência e peça para que
identifiquem as resistências usando a tabela de cores presente no material. Este primeiro
momento fornecerá a base teórica necessária para a realização das atividades seguintes.
Os alunos devem responder as seguintes questões:
1) Complete a tabela a seguir com informações sobre os materiais:
Resistores são componentes eletrônicos cuja principal função é limitar o fluxo de corrente
elétrica que passa em um circuito, por isso devem ser usados com o LED para limitar a
corrente que passa por ele, evitando que se queime.
25
Plataforma +IFMG
Dê um tempo para que concluam esta atividade, e ajude os alunos que não
conseguirem montar. Após a montagem, reforce o papel de cada componente do circuito e
como a corrente flui da bateria para o LED, passando pelo resistor. Após esta etapa, o aluno
já terá uma noção melhor sobre os componentes eletrônicos e como construir um circuito
com eles.
O resistor limita o fluxo de corrente elétrica que passa no circuito, “protegendo” o LED de
uma corrente maior que poderia danificá-lo.
26
Plataforma +IFMG
Na etapa 3 o aluno verá que o Arduino pode fazer o papel de fonte para o circuito,
possibilitando ligar e desligar o circuito utilizando programação.
Para começar, o aluno deverá remover a bateria e construir um circuito
composto por Arduino + resistor (300 Ω) + LED (conectado ao pino 13 do Arduino)
como exibido na Figura 6. Durante a construção, mostre novamente onde estão os
pinos digitais do Arduino.
Comente com os alunos que o pino 13 está conectado ao lado positivo do LED,
enquanto o GND ao pino negativo, por conta da polaridade deste componente. Além disso,
mostre que o resistor agora é de 300 Ω, porque a tensão da fonte que era de 9V da bateria
caiu para 5V do Arduino.
27
Plataforma +IFMG
28
Plataforma +IFMG
A instrução int pinoLED = 13 atribui o valor 13 à variável LED, que será utilizada para
representar o pino digital 13. As variáveis são utilizadas para armazenar dados. A vantagem
em se utilizar variáveis é que se você decidir remover o LED do pino 13 e passar para o 10,
por exemplo, não será necessário alterar o código em vários locais, basta alterar o valor da
variável pinoLED.
A função void setup( ) é executada somente uma vez assim que o Arduino é ligado.
Nela, o comando pinMode(pinoLED, OUTPUT) define o pino digital 13 do Arduino como um
pino de saída.
A função void loop() é executada indefinidamente enquanto o Arduino estiver ligado.
No loop(), usamos a função digitalWrite(pinoLED, HIGH) para colocar o pino 13 em nível
alto (5V), acendendo o LED. A palavra HIGH é uma constante que significa 1, ou seja, nível
alto. Logo após, aguardamos um intervalo de 1 segundo através da função delay(1000).
Essa função funciona com milissegundos, por isso utilizamos 1000.
Para apagar o LED usamos a função digitalWrite(pinoLED, LOW), colocando o pino
13 em nível baixo (0V). A palavra LOW é uma constante que significa 0, ou seja, nível baixo.
Logo após, adicionamos mais um intervalo de 1 segundo com a função delay(1000).
Reforce aos alunos que a fonte de energia agora vem do pino 13 do Arduino. Com a
programação acima, é possível ligar e desligar a energia do pino 13, fazendo com que o LED
se acenda e apague.
Após essa explicação, oriente os alunos para que cliquem no botão em formato de
“seta” (reveja a Figura 7, trata-se do botão de “carregar”) para carregar o código para a placa.
Assim que o código estiver carregado, aparecerá uma mensagem dizendo ‘Carregado’ na
parte inferior do IDE.
O LED deve permanecer aceso por 1 segundo e depois apagado por mais um
segundo, em um comportamento de “pisca-pisca”. Este comportamento é observado
indefinidamente devido à função loop(). Reforce com os alunos como este código os
29
Plataforma +IFMG
aproxima do conceito inicial de automação, uma vez que o estado de um componente está
sendo alterado sem a interação humana.
1) O que faz a linha de código pinMode(pinoLED,OUTPUT) ?
A função pinMode() define o pino digital ao qual o LED está conectado no Arduino como um
pino de saída.
A palavra HIGH é uma constante que significa 1, ou seja, nível alto. A palavra LOW
significa 0, ou seja, nível baixo.
Por fim, na etapa 4 os alunos devem fazer modificações no código para realizar alguns
desafios. Eles devem utilizar a explicação do professor sobre o código e por analogia,
construir os códigos dos seguintes desafios:
Desafio 1: Trocar o pino ao qual o LED está conectado para o pino 10 e fazê-lo
piscar assim como feito anteriormente.
Peça aos alunos que retirem a conexão do pino 13 e passem para outro pino digital.
Esta mudança na conexão do circuito deve ser acompanhada pela mudança no código da
declaração do pino. Considerando-se que o aluno passe o LED para o pino 10, o código
deverá ser alterado para o exibido na Figura 10.
1) O que acontece se você apenas trocar o fio do pino ao qual o LED está conectado,
mas não mudar a programação? O LED ainda acenderá?
Devemos alterar tanto o circuito quanto a programação, por isso, além de trocar o fio do pino
ao qual o LED está conectado, temos que mudar também a linha em que é declarada a
variável pinoLED.
Instituto Federal de Minas Gerais
NIT – Núcleo de Inovação Tecnológica
30
Plataforma +IFMG
2) Qual linha do código você teve que alterar para que o Arduino soubesse qual o novo
pino ao qual o LED estava conectado?
Deve-se alterar a linha de código em que é declarada a variável pinoLED: int pinoLED = 10;
Desafio 2: Alterar o tempo em que o LED fica ligado para 3 segundos e desligado
para 2 segundos.
O professor já terá explicado aos alunos o papel da função delay() no código, por
isso, peça para que alterem o tempo que serve de parâmetro para esta função. A Figura 11
exibe a resposta a esse desafio.
1) Qual linha de código você teve que alterar para que o tempo mudasse?
Desafio 3: Adicionar mais um LED ao circuito e fazer com que os dois LEDs se
acendam de forma alternada.
Agora, os alunos devem usar o circuito e código das atividades anteriores para
adicionar mais um LED ao circuito. Supondo que o novo LED 1 seja conectado ao pino 5 e
o LED 2 ao pino 6, as Figuras 12 e 13 exibem, respectivamente, o circuito e código que
resolvem este desafio.
31
Plataforma +IFMG
1) Quais linhas você terá que adicionar ao código para “informar” ao Arduino sobre o
pino de conexão e modo de operação (saída ou entrada) do novo LED?
2) Qual função deverá ser usada para acender o novo LED? E para apaga-lo?
32
Plataforma +IFMG
Parte 2
Nesta segunda parte da aula iremos usar nossos conhecimentos para ajudar a
resolver um problema. A questão que irá direcionar nossos esforços a partir de agora é a
seguinte: precisamos de um sistema que acenda um LED toda vez que uma pessoa passar
em frente ao Arduino. Como fazer isso?
Apresente aos alunos os diversos sensores que o Kit Arduino possui: sensor
ultrassônico de distância, sensor de umidade, sensor infravermelho de proximidade, sensor
de luz, etc. Deixe que peguem os sensores e percebam como é a construção de cada um.
O objetivo desta etapa é que tenham contato e conheçam a ampla gama de possíveis
acessórios que podem ser utilizados com o Arduino. Não se apresse nas explicações e deixe
que façam perguntas sobre possíveis projetos com cada um deste sensores. Por exemplo,
pergunte a eles: “Se eu quiser saber quantos °C está esta sala agora, qual sensor devo
utilizar?”.
Selecione os principais sensores do kit e explique o funcionamento e função de cada
um. A partir dessa explicação, busque promover o diálogo entre os alunos para que opinem
sobre qual o melhor sensor para ser aplicado na resolução do problema apresentado acima.
Peça para que expliquem o porquê de suas decisões.
Os alunos devem responder à seguinte questão:
1) Porque o sensor infravermelho PIR é uma boa opção para resolver este problema?
O sensor PIR é capaz de detectar movimentos e a presença de alguma pessoa, por isso é
uma boa opção para nos ajudar a resolver esse problema que quer justamente acender uma
lâmpada quando uma pessoa passar pelo sensor.
33
Plataforma +IFMG
Montado o circuito, peça para que digitem o código exibido na Figura 15 no IDE do
Arduino.
Este é código mais complexo que vimos até agora. Com ele, conseguiremos acender
o LED quando alguém passar pelo sensor. Explique aos alunos o papel de cada linha e
função do código. Ressalto que o objetivo aqui não é explicar a lógica de programação de
forma aprofundada, apenas o suficiente para entenderem as funções e conseguirem utilizá-
las. Vemos que há a declaração das variáveis pinoLED, sensor e estado_sensor. A
variável pinoLED representa o pino digital ao qual o LED está conectado; sensor representa
o pino digital ao qual o sensor PIR está conectado; e estado_sensor é uma variável que
será utilizada posteriormente para sabermos se o sensor está identificando movimento ou
não. A função pinMode() define o estado dos pinos: OUTPUT (saída) ou INPUT (entrada).
Instituto Federal de Minas Gerais
NIT – Núcleo de Inovação Tecnológica
34
Plataforma +IFMG
A função digitalRead() realiza uma “leitura no pino digital” e retorna o estado do sensor. O
sensor PIR irá emitir o sinal 1 caso detecte algum objeto e 0 caso não detecte. A estrutura
if() (“se” em português) serve para comparar o valor da variável estado_sensor a um valor.
Nesse caso, se estado_sensor for igual a 1, quer dizer que o sensor identificou algum
objeto, então o LED se acende por meio da função digitalWrite(), que já vimos antes. Caso
contrário, estado_sensor será igual a 0, representando que o sensor não identificou
nenhum objeto, então o LED continuará apagado.
1) Qual o objetivo da função digitalRead() no código?
A função digitalRead() serve para realizar a leitura do pino digital ao qual o sensor está
conectado. O sensor envia a informação para o Arduino, que pode ser 0 ou 1, e a função
digitalRead() pe utilizada para ler essa informação.
Agora que conseguimos identificar quando uma pessoa passa, os alunos devem fazer
modificações no código para realizar um desafio. Eles devem utilizar a explicação do
professor sobre o código e por analogia, construir o seguinte código:
Desafio: Adicionar outro LED ao circuito e fazer com que este fique aceso
quando o sensor não identificar movimento.
Neste desafio teremos dois LEDs no circuito, cada um para representar um estado de
identificação do sensor. Enquanto não for identificado movimento, o LED1 deve permanecer
apagado e o LED2 aceso. Quando movimento for detectado pelo sensor, o LED1 se acende
e o LED2 se apaga. Supondo que o LED 1 seja conectado ao pino 4 e o LED 2 ao pino 5.
As Figuras 16 e 17 exibem a resposta a esse desafio.
35
Plataforma +IFMG
36
Resolução de problemas e perguntas frequentes
Os alunos provavelmente irão cometer erros de iniciantes, por isso esta seção visa
apresentar os erros comuns que podem acontecer ao longo do curso e suas respectivas
soluções.
5. Último recurso
Caso você já tenha feito todas as sugestões anteriores e mesmo assim o código não
funciona, um último recurso é reiniciar a conexão do Arduino. Para isso, siga o seguinte
procedimento:
a) Copie o seu código (Selecione tudo -> CTRV + C);
b) Feche o IDE do Arduino;
c) Retire o cabo USB do computador;
d) Abra novamente o IDE;
e) Cole o seu código (CTRV + V);
f) Reconecte o cabo USB ao computador e aguarde alguns segundos;
g) Configure novamente placa e porta COM;
h) Transfira o código novamente para a placa e verifique o funcionamento.
40
Currículo do autor
41
Feito por (professor-autor) Data Revisão de layout Data Versão
Arthur Caio Vargas e Pinto 05/10/2022 Desginado pela proex xx/xx/xxxx 1.0
42