1) O documento apresenta uma introdução ao curso de programação com Arduino, abordando conceitos de eletrônica, programação de microcontroladores e desenvolvimento de projetos.
2) A metodologia do curso inclui aulas expositivas, simulações, práticas com a placa Arduino e desafios em grupo.
3) O curso é dividido em 4 dias, abordando tópicos como entrada/saída digital e analógica, PWM, interrupções e controle de motores DC.
2. OBJETIVOS DO CURSO
• Aprender os conceitos de eletrônica necessários para as aplicações.
• Aprender a programar microcontroladores e realizar projetos de
automação.
• Aprender os detalhes Importantes na implementação de um projeto com
microcontroladores.
• Utilizar ferramentas para implementar projetos.
3. METODOLOGIA ADOTADA
• 15/30 Minutos introdução aos conceitos básicos.
• 30 Minutos para práticas na simulação.
• Realizada individualmente.
• 30 Minutos para práticas na placa do Arduíno.
• Realizada em grupos de no máximo 2 integrantes.
• 30/45 Minutos para resolver o Desafio da aula.
• Realizada em grupos de 2 integrantes.
4. PROGRAMAÇÃO DO CURSO
1º DIA – 05/09
• Introdução aos
microcontroladores.
• Introdução a eletrônica.
• Programando o Arduíno.
(Prática)
• Entradas/saídas digitais.
• Prática.
2º DIA – 12/09
• Entrada/Saídas analógicas.
• PWM (Pulse-Width
Modulation).
• Prática.
• Uso de interrupções.
• Prática.
5. • Controlando motores DC.
• Usando os Shields do
Arduíno.
• Desenvolvimento de um
Projeto Final.
PROGRAMAÇÃO DO CURSO - CONTINUAÇÃO
3º DIA – 19/09 4º DIA – 26/09
• Continuação do
Projeto.
6. OS MICROCONTROLADORES
• O Arduíno é um peça de hardware, ou melhor, uma placa de
prototipação que contém um microcontrolador responsável
pelo processamento.
• Mas afinal o que é um Microcontrolador?
• É o núcleo de todo o sistema.
• Lidam com a lógica e o processamento das instruções.
• Basicamente um computador em um único chip.
• Dedicado ao dispositivo que o controla. São embarcados.
• Faz apenas aquilo que esta definido em seu programa e nada mais.
• Seria um microcontrolador igual ao um microprocessador?
9. O microcontrolador do Arduíno.
ATMEL ATMEGA 328P-PU
Diagrama do microcontrolador
• O controle e a leitura dos sensores é feita toda através de sinais elétricos. (0s e
1s).
• São transmitidos por condutores, normalmente feitos de cobre. (fios,
trilhas, etc...)
• Programamos o microcontrolador para emitir/receber sinais elétricos e assim
Observações:
O MICROCONTROLADOR DO ARDUÍNO
11. ATÉ AGORA...
• Arduíno é uma placa de prototipação para facilitar o desenvolvimento
de sistemas embarcados.
• Microcontroladores possuem tudo em um único chip (RAM, CPU, Portas
de I/O, etc...).
• É o responsável pela execução de nossos programas e por todo o
controle realizado na placa.
• Atua enviando e recebendo sinais elétricos. (0s e 1s).
• Os microcontroladores do Arduíno são da fabricante ATMEL.
• Cada versão do Arduíno pode ou não utilizar um microcontrolador
diferente.
• É o microcontrolador que determina:
• O numero de portas de I/O.
• A velocidade de processamento.
• Como a programação é feita.
• Os protocolos de comunicação implementados.
• A quantidade e os tipos de memória.
12. PRÓXIMO DEGRAU... A ELETRÔNICA
• Porque devemos saber sobre energia elétrica, sinais elétricos, tensão,
corrente, resistência, e tudo mais... ?
• Objetivos deste capítulo:
• Entender os sinais elétricos.
• Aprender o que é tensão.
• Aprender o que é corrente.
• Aprender o que são os resistores e o que fazem.
• Entender o porque isso se aplica nos sistemas embarcados.
• Faremos uma overview para entendermos como nossas aplicações
funcionam e os cuidados que devemos ter.
13. SINAIS ELÉTRICOS
• Como vimos, o microcontrolador utiliza sinais elétricos para
realizar o controle da aplicação.
• Para entendermos melhor o que são estes sinais precisamos
saber os conceitos de:
•Tensão
•Corrente
14. ENTÃO... TENSÃO, O QUE É?
• Pode ser definida como um diferencia de potencial entre dois
polos.
• Temos os Polos negativos (elétrons) e os Polos positivo (prótons).
• Elétrons carregados negativamente e Prótons carregados positivamente.
• Quando existe excesso de Prótons em um polo, os elétrons tendem a ser
atraídos para este polo até que não haja mais excesso e o equilíbrio seja
atingido.
• A força que faz com que os elétrons saem de seus lugares é chamada
de Tensão e é medida em Volts (V).
• Portanto, o trabalho realizado pelos elétrons para se
movimentar de um polo a outro é o que chamamos de Tensão.
18. ENTÃO... TENSÃO, O QUE É? RESUMINDO
• Tensão é a diferença de potencial entre dois polos.
• Enquanto em um polo falta no outro polo sobra.
• A natureza tende a fazer o equilíbrio.
• O que esta sobrando vai doar para o que esta faltando.
• Isso acontece até os dois polos ficarem com quantidades iguais, ou seja, equilib
19. ENTÃO... E A CORRENTE?
• Quando temos uma diferença de potencial em dois polos (Tensão) e
interligamos eles, os polos tendem a se equilibrarem.
• Para se equilibrarem, o que tem sobrando deve doar para o que tem
faltando.
• Quando isso acontece, os elétrons de um polo se movimentam para o
outro polo até ficarem com a mesma carga.
• Essa movimentação ordenada dos elétrons entre os polos é o que
chamamos de corrente.
20. ENTÃO... E A CORRENTE?
• A Corrente é fluxo de elétrons que transita entre os polos.
• Mede a quantidade de carga que passa por unidade de tempo.
• Pode se dizer que é a velocidade com que os elétrons trafegam em um
circuito/ligação.
• Quem determina esta velocidade é a carga que esta conectada a fonte.
• Só existe corrente quando existe Tensão. Mas existe Tensão quando não
tem corrente.
• É medido em Amperes (A).
PARA MEDIRMOS A CORRENTE USAMOS O AMPERÍMETRO
21. ENTÃO... E A CORRENTE?
• Temos tensão na figura abaixo?
• E existe corrente?
22. ENTÃO... E A CORRENTE? - CONTINUAÇÃO
• Temos tensão na figura abaixo?
• E existe corrente?
• Quem determina a corrente na figura abaixo?
23. ENTÃO... E OS RESISTORES?
• Se tivermos tensão de mais ou precisamos de uma corrente mais baixa, o
que fazer?
• Resistores são utilizados para diminuir a corrente.
• Como seu próprio nome diz, eles resistem a passagem de elétrons.
24. ENTÃO... E OS RESISTORES?
• Em uma analogia, o resistor seria a torneira que regula a passagem de agua
de acordo com o que se deseja. Logo, o fluxo diminui.
• Por esse motivo, ele é de suma importância em nossas aplicações e estamos
constantemente utilizando eles.
25. ENTÃO... E OS RESISTORES? - EXEMPLOS
• Para sabermos qual é a resistividade
do resistor devemos analisar suas
cores e consultar a tabela.
• Pode-se também utilizar um
multímetro.
• Para calcular quanta corrente e tensão
esta passando através do resistor
utilizamos a lei de Ohm.
• V = R * I
• Onde:
• V = tensão de entrada (V).
• R = resistência do resistor (Ω).
• I = corrente (A).
26. ENTÃO... E OS RESISTORES? - EXEMPLOS
• V = R * I
• Onde:
• V = tensão de entrada (V).
• R = resistência do resistor (Ω).
• I = corrente (A).
Supondo que a tensão seja 12 V, e o
resistor utilizado seja de 500 Ω.
Qual é a corrente que esta circulando
entre os polos?
Vamos analisar o circuito abaixo:
27. ENTÃO... E OS RESISTORES? - EXEMPLOS
• V = R * I
• Onde:
• V = tensão de entrada (V).
• R = resistência do resistor (Ω).
• I = corrente (A).
• V = 12 V;
• R = 500 Ω;
• I = ?
• 12 = 500 * I
• I = 12/500
• I = 0,024 A ou 24
mA.
• Conclusão:
Utilizando este resistor com uma fonte de
12V conseguimos obter uma corrente de
24 mA.
Mas porque estamos fazendo isso?
28. ENTÃO... E OS RESISTORES? - EXEMPLOS
• Digamos que queremos acender um LED, o que
devemos saber?
1. Devemos olhar o datasheet (Manual) do
LED para sabermos com que tensão e
corrente ele trabalha.
2. Devemos verificar o quanto de tensão
nossa fonte fornece e o quanto de corrente
é possível de obter dela.
3. Descobrindo esses valores, se necessário
aplicamos a Lei de Ohm para escolher
nosso resistor.
29. ENTÃO... E OS RESISTORES? - EXEMPLOS
• Vamos analisar o circuito
abaixo: • Olhando no datasheet do LED descobrimos
que:
• O LED precisa de uma tensão de 2,3 Volts.
• O LED consome apenas 10 mA.
• Olhando nosso circuito, descobrimos que:
• Nossa fonte fornece 5 Volts.
• A corrente máxima da fonte é de 40 mA.
• Concluímos então que:
• A fonte é capaz de alimentar o LED.
• Devemos limitar a tensão/corrente
que chega ao LED para não queima-
lo.
• Devemos utilizar um resistor.
• Como saber o valor certo do
resistor?
30. ENTÃO... E OS RESISTORES? - EXEMPLOS
• Vamos analisar o circuito
abaixo:
• V = 5 – 2,3 = 2,7 V
• Precisamos de algo que cause uma queda na
tensão de 2,7 V.
• I = 0,01 A
• A corrente que precisa circular para o LED é de
10 mA
• R =?
• Precisamos saber o resistor correto.
Calculo:
• V = R * I;
• 2,7 = R *
0,01;
• R = 270 Ω;
Precisamos então de um
resistor com resistência de
270 Ohms.
Caso não encontrarmos,
pegamos valores acima do
calculado.
31. ENTÃO... E OS RESISTORES? - EXEMPLOS
Precisamos então de um resistor com
resistência de 270 Ohms.
O Resistor deve ter as cores:
Vermelho, Violeta e Marrom.
A ultima cor seria a precisão do resistor.
Neste caso não precisamos nos
preocupar.
32. ENTÃO... E OS RESISTORES? - EXEMPLOS
Resultado
final:
Vamos fazer esse circuito na
prática
33. SINAIS ELÉTRICOS
• E afinal, o que são estes sinais elétricos?
• Duas definições:
• Chama-se sinal elétrico a variação na diferença de potencial (tensão) entre
dois pontos no decorrer do tempo.
• Chamamos de sinal elétrico a variação da corrente no decorrer do tempo.
• Pode-se entender que:
• Temos dois pontos conectados por um condutor e alimentados por uma
fonte.
• Quando esta transmitindo energia o sinal é lido como 1. (Tensão alta).
• Quando não esta havendo transmissão de energia ou ela é muito baixa, o
sinal é lido como 0. (Tensão baixa).
• Uma analogia pode ser feita com o ato de ligar/desligar uma tomada.
34. O QUE APRENDEMOS ATÉ AGORA:
• Vimos o que faz os microcontroladores.
• Aprendemos que ele utiliza sinais elétricos para controlar os sistemas e
para obter as leituras.
• Aprendemos o que é Tensão, Corrente e Resistor.
• Aprendemos como calcular o Resistor para nosso circuito.
• Aprendemos como calcular a quantidade de corrente que esta passando
no circuito.
• Aprendemos os que devemos saber para não queimar nossos
componentes. Agora iremos ver
O porque estudamos tudo isso para podermos praticar com o
Arduíno.
37. COMO PROGRAMAMOS O ARDUÍNO?
• Podemos utilizar a IDE do Arduíno para programar.
• Oferece somente o básico e não possui muitas ferramentas.
• Podemos também utilizar a IDE da Microsoft - Visual Studio.
• Oferece um completo acervo de ferramentas, incluindo o Intellisense.
• Mais robusto e completo.
• Possui suporte completo da Microsoft e é gratuito para nós estudantes.
• Tem opções de Debug.
Hoje utilizaremos o Visual Studio por ser completo e o mais
utilizado no dia-a-dia dos programadores.
39. COMO PROGRAMAMOS O ARDUÍNO?
OVERVIEW - VISUAL STUDIO
Hoje o Visual Studio 2015 possui 3 versões:
• Visual Studio Enterprise
• Visual Studio Professional
• Visual Studio Community Edition
Suporta nativamente as seguintes
linguagens:
• C#
• Visual Basic
• Visual C++
• Visual F#
• Possui uma infinidade de
extensões e ferramentas.
• É multiplataforma.
• Pode ser utilizado no
desenvolvimento para Arduíno,
Raspberry Pi, Netduino e muitas
outras placas.
Para usar com o Arduíno precisamos instalar um plugin, o
Visual Micro.
40. COMO PROGRAMAMOS O ARDUÍNO?
OVERVIEW - VISUALMICRO
• Visual Micro é um plugin gratuito que estende as capacidades
do Visual Studio.
• Fornece compatibilidade total com o Arduíno para todas as
versões 2012-2015 do Visual Studio.
• É a única IDE a fornecer suporte total a todas as versões do
Arduíno.
• Fornece suporte não somente ao Arduíno, mas também outras
placas como o Intel Galileo e o ESP8266.
41. COMO PROGRAMAMOS O ARDUÍNO?
USANDO VISUAL STUDIO
• Para programarmos o Arduíno com o Visual Studio primeiro
precisamos fazer algumas configurações:
• Instalar o Visual Studio. A versão 2015 é a mais recomendado.
• Você pode obter acesso ao Visual Studio pelo www.dreamspark.com
• Instalar a IDE do Arduíno e configurar os drivers para o reconhecimento
da placa pelo USB.
• Instalar o Plugin VisualMicro para o Visual Studio.
• Configurar o local das bibliotecas do Arduíno no VisualMicro.
Após a configuração, estamos prontos para realizar nosso primeiro
Sketch.
47. Faça a lógica de seu programa. A função Setup() executa uma
única vez e sempre no inicio da
execução do programa.
Utilizado para configuramos a
placa e as portas como
entradas/saídas.
A função Loop() executa um laço
infinito, repetindo sempre o que
estiver em seu bloco.
É aqui onde definimos o que
nossa aplicação vai fazer, ou
seja, nossa lógica.
Na Solution Explorer encontram-se
os programas e as bibliotecas
utilizadas.
Por padrão, a biblioteca do
Arduíno já vem incluída.
Você pode adicionar novas
bibliotecas nas configurações
do Visual Micro
48. Antes de executar na placa, tente compilar para
verificar se está tudo correto.
49. Se não apresentar erros, podemos mandar para a
placa. Mas antes, precisamos configurar a IDE.
Nas configurações do Visual Micro, adicione a placa
que esta utilizando na opção Board.
50. Na opção de Serial Port, coloque a porta serial que o
seu Arduíno esta conectado.
Você pode identificar a porta no Gerenciador de
Dispositivos do Windows que se encontra no painel de
controle.
Certifique-se de instalar o Driver caso apresente
algum problema.
51. Para executar seu programa na placa, podemos tanto executar
no modo Debug ou no modo sem o Debug.
Para as atividades faremos todos sem o modo Debug.
52. Quando o programa terminar de ser carregado, uma
mensagem de Done Uploading aparece no monitor.
Todas vez que formos fazer um novo programa e utilizar uma
nova placa, devemos fazer todos os passos novamente.
No guia do laboratório encontra-se as principais funções do
Arduíno.
53. PROGRAMAÇÃO DO CURSO - CONTINUAÇÃO
1º DIA – 05/09
• Introdução aos
microcontroladores.
• Introdução a eletrônica.
• Programando o Arduíno.
(Prática)
• Entradas/saídas digitais.
• Prática.
2º DIA – 12/09
• Entrada/Saídas analógicas.
• PWM (Pulse-Width
Modulation).
• Prática.
• Uso de interrupções.
• Prática.
54. INTERRUPÇÕES.
• Interrupções são utilizadas para executar alguma função/rotina
em um determinado tempo especifico.
• O tempo pode ser definido por um timer ou mesmo por uma
ação.
• A cada 500 ms, ou 1000ms...
• A cada vez que mudar o estado de um pino I/O.
• A cada vez que um botão for acionado, etc...
55. INTERRUPÇÕES.
• Quando é configurado uma interrupção e o evento ocorre, a
interrupção interrompe o programa principal e executa a rotina
que foi configurada, ou seja, o código a ser executado naquele
momento.
56. INTERRUPÇÕES NO ARDUÍNO
O Arduíno UNO fornece dois pinos para serem utilizados com
interrupções
O Arduíno UNO fornece 4 modos para configurar as interrupções
57. INTERRUPÇÕES NO ARDUÍNO
attachInterrupt(digitalPinToInterrupt(pin), ISR, mode);
attachInterrupt(interrupt, ISR, mode);
O Arduíno fornece uma função para configurarmos as
interrupções:
digitalPinToInterrupt(pin) = pode ser ou o pino 2 ou o 3.
interrupt = pode ser passado ou 0 para pino 2 ou 1 para
pino 3.
ISR = deve ser passada a função a ser executada.
mode = deve ser passado um dos modos abaixo.
59. ENTRADAS/SAÍDAS ANALÓGICAS
• Muitos sensores que utilizamos produzem saídas analógicas
como resultado.
• Ex: microfone, buzzer, temperatura etc...
• Microcontroladores são circuitos digitais que não interpretam
sinais analógicos por natureza.
Para possibilitar a interpretação de
sinais analógicos alguns
microcontroladores possuem um
conversor Analógico-Digital para ler
sinais analógicos e conversores Digital-
Analógico para emitir sinais analógicos.
61. SAIDAS ANALÓGICAS – PWM (PULSE-WIDTH
MODULATION)
Controlam o valor da alimentação fornecidas.
Criam ondas quadradas com pulsos de largura
variável, podendo assim dar uma tensão média à carga,
por exemplo.
63. • Controlando motores DC.
• Usando os Shields do
Arduíno.
• Desenvolvimento de um
Projeto Final.
PROGRAMAÇÃO DO CURSO - CONTINUAÇÃO
3º DIA – 19/09 4º DIA – 26/09
• Continuação do
Projeto.
64. MOTORES E ARDUÍNO
Os tipos mais comuns de motores utilizados em aplicações são os:
Motores DCMotores de Passo Servo Motores
65. MOTORES DE
PASSO
O que fazem?
Convertem pulsos elétricos em movimentos mecânicos que
geram variações angulares.
1. As selonoides são energizadas em uma
sequencia.
2. As selonoides atraem o rotor fazendo-
o se alinhar com o eixo.
3. Ocorre uma pequena variação no
angulo, que é chamada de passo.
4. O numero de passos determina a
quantidade de passos para uma volta
completa (360).
5. A velocidade e o sentido de movimento
são determinados pela forma como
cada solenoide é ativado
67. MOTORES DC
O que fazem?
Operam aproveitando as forças de atração e repulsão
geradas por eletroímãs e imãs permanentes.
68. MOTORES DC -
FUNCIONAMENTO
O Eletroímã é
magnetizado e sofre
atração/repulsão dos
imãs permanentes.
O comutador inverte o
sentido da corrente do
eletroímã fazendo com
que os polos mudem de
direção.
Com os polos invertidos,
o eletroímã sofre
repulsão/atração
novamente e o ciclo se
repete.
71. SERVO MOTORES
O que fazem?
Possuem a capacidade de movimentar o seu braço até uma
posição e mantê-lo, mesmo que este seja forçado em uma
outra direção.
72. SERVO MOTORES
É mandado um sinal
PWM para o controlador
do Servo.
O Servo interpreta este
sinal e verifica se o
potenciômetro já se
encontra na posição
resultante.
Caso encontra-se na
posição ele o mantem
parado, caso não, o servo
ativa o motor DC até a
posição desejada.
Ao tentar girar o servo com
força bruta, o controlador
verifica a deslocação do
potenciômetro e aciona o
motor para manter a
posição.
COMO FUNCIONA?
73. COMPARATIVO
Motores de Passo Motores DC Servo-Motores
Velocidade Baixa Alta Média
Torque Alto/Média Zero/Alto Baixo/Alto
Complexidade Média Fácil Complexo
Precisão Alta Nenhuma Muito Alto
Durabilidades Ótima Média Média
Requer Manutenção Não Sim Sim
76. O L298N é uma ponte H
que permite mudarmos o
sentido da corrente
transmitida ao motor.
(FRENTE-TRAZ).
MOTORES E ARDUÍNO – USANDO O L298N
O QUE É UMA PONTE
H?
Características:
• Controle até 2 motores DC
ou 1 motor de passo.
• Controla o sentido de
direção e velocidade.
• Tensão de saida: +5~+7V
• Tensão de Operação:
4~35v
• Corrente de Operação
máxima: 2A por canal ou
4A max.
• Potência Máxima: 25W