arduino bÁsico lição i -...

60
28/01/14 Frederico Möller 1 ARDUINO BÁSICO Lição I Frederico José Dias Möller

Upload: ngongoc

Post on 04-May-2018

229 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 1

ARDUINO BÁSICOLição I

Frederico José Dias Möller

Page 2: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 2

SUMÁRIO

● Introdução– Plataforma de que?

– Plataforma de prototipagem

● Vantagens e desvantagens

● Arduino.cc● Arduino IDE

– Configurando o bicho

● O Mínimo● Para começar: blink

– Hardware

– Software● Definição● Setup● Loop

– A função digitalWrite()– A função delay()

Page 3: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 3

SUMÁRIO

● Um pouco de programação– Variáveis

– Laços

– Condicionais

● Exercício 1● Lendo...● Exemplo: Alterar led

– Hardware

– Software

● Exercício 2● Revisão● Leitura

complementar

Page 4: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 4

INTRODUÇÃO

● O Arduino é uma plataforma de prototipagem eletrônica italiana.

● É conhecida por seu fácil uso, podendo ser usada até por “leigos”.

● Tem preço relativamente accessível, bom suporte online e uma boa configuração de hardware.

Page 5: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 5

PLATAFORMA DE QUE???

● O Atmel é um microcontrolador.

● Ele pode ser ligado a sensores, atuadores, módulos de RF...

● Ele também pode ser programado para agir dentro de uma rotina, reagir a sinais de sensores...

Page 6: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 6

PLATAFORMA DE QUE?

● No entanto, é preciso montar um circuito de alimentação para manter o mesmo em operação.

● Para programá-lo, é necessário usar um módulo programador.

● É necessário criar extensões de seus pinos, para poder ligar sua saídas à periféricos.

Page 7: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 7

PLATAFORMA DE PROTOTIPAGEM

● Quando reunimos todos esses elementos em uma só placa, temos a plataforma de prototipagem eletrônica.

● O Arduino, não é um microcontrolador, o Arduino é uma PPE.

Page 8: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 8

VANTAGENS E DESVANTAGENS

● Acessível ● Fácil programação● Grande variedade de

módulos disponíveis no mercado

● Muitos tutoriais na internet

● Limitação de funções em nome da facilidade de programação

● Não aproveita totalmente a capacidade de seu hardware

Page 9: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 9

Arduino.cc

● A página oficial do arduino é http://arduino.cc/● Podemos encontrar lá produtos, tutoriais, um

fórum de discussões...● Lá também podemos encontrar a IDE do

arduino e seus drivers.

Page 10: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 10

Arduino IDE

● É o ambiente de programação do arduino

● Vem com exemplos embutidos

● É leve e gratuita

Page 11: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 11

Configurando o bicho

● Uma vez instalada a IDE e os drivers FTDI é necessário configurar a mesma para o Arduíno em uso.

● Fazemos isso no menu “Tools”.

● Em “board” selecionamos o modelo de Arduíno que iremos usar.

● Em “serial port” a porta onde o Arduíno está conectado.

● Em “programmer” o tipo de programador do Arduíno. (Em geral é Arduíno ISP)

Page 12: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 12

O Mínimo

● O Arduino tem duas grandes funções básicas:– A função setup(){}

– E a função loop(){}

SETUP

LOOP

Page 13: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 13

O Mínimo

● A função setup(){} define as configurações de hardware com as quais o arduino irá trabalhar

● Ex.: Quais pinos serão de saída, quais serão de entrada, b.rate...

● A função loop(){} seria a função “main” do arduino... mas na verdade ela nem sempre é necessária

● Tudo o que for escrito na função loop será repetido indefinidamente

Page 14: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 14

PARA COMEÇAR... blink

● Vamos começar com um programa simples, um “blink”

● Blink é um programa de fazer um led piscar

Page 15: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 15

Hardware

● Vamos usar:– 1 led 5mm

– 1 resistor de 220 Ω

– 1 placa de matrizes

– E é claro, um Arduíno

● O Arduíno fornece uma tensão de 5v, como V=Ri, devemos ligar o led em série com o resistor de 220 ohms

Page 16: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 16

Hardware

Page 17: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 17

Software definição

● Nosso objetivo é fazer com que um led fique piscando, ou seja, alterne seu estado a cada t segundos

● Ou seja, o Arduíno deverá fornecer corrente para o led por t segundos, depois deverá cortar essa corrente por mais t segundos e repetir isso indefinidamente.

Page 18: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 18

Software: Setup

● Se é o led que vai receber um sinal do Arduíno, então ele deverá estar ligado à um pino de saída.

● Assim, informamos ao Arduíno que o pino 13 será um pino de saída

Page 19: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 19

Software loop

● Uma vez que o programa rodará indefinidamente, ou seja, após rodar a última instrução ele voltará para a primeira, podemos (devemos) escrevê-lo dentro da função loop.

Page 20: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 20

digitalWrite(pino,valor)

● A função digitalWrite faz com que um dos pinos digitais emita um sinal, alto ou baixo.

● Ela recebe a numeração do pino e um HIGH para sinal alto e um LOW para baixo

Page 21: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 21

delay(num)

● A função delay faz com que o microcontrolador espere por um número de milésimos de segundos antes de executar a próxima operação

Page 22: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 22

Software blink

● Tentem agora escrever o programa blink

● Se parece com o programa ao lado?

● Tentem carregar ele no Arduíno através do botão:

?

Page 23: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 23

Um pouco de programação

● Antes de prosseguirmos vamos falar um pouco mais da linguagem usada no Arduíno

● O Arduíno usa uma linguagem simples, bastante intuitiva. É possível, com realizar com um único comando uma tarefa que levaria umas boas 10 linhas em outras plataformas.

● Outra característica é que essa linguagem é um dialeto do C ansi, ou seja, a sintaxe das duas é muito parecida.

Page 24: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 24

Variáveis

● Assim como no C, as instruções são executadas na ordem em que foram escritas.

● Em diversas ocasiões é possível que o Arduíno tenha que trabalhar com números e palavras armazenados em sua memória, estes são chamados de variáveis

● Antes de uma variável ser usada, ela precisa ser declarada, ou seja, seu nome e tipo deve aparecer no escopo do programa.

Page 25: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 25

Variáveis

● Tipos:● int

– Números inteiro

● float– Números reais

● char– “letras”

● Exemplos● int

– 16, 15, 2, 0

● float– 5.2 , 0.001, 3.5679

● char– 47, 'a', “ ”

Page 26: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 26

Laços

● Laços de repetição são usados quando um determinado grupo de instruções deve ser executado diversas vezes, até que um objetivo seja alcançado.

● A função “loop” de certa forma é um laço de repetição, mas ela só pode ser chamada uma vez.

● Temos os laços for, while e do-while

Page 27: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 27

Laço

● For:– for(condição inicial;

objetivo; ação após cada laço)

– Usado em geral para repetições contadas

● While– while(objetivo)

– O laço só será executado e continuará sendo até que o objetivo seja alcançado

● Do-while– do{}while(objetivo)

– Igual ao o while, mas as instruções serão executadas pelo menos uma vez

Page 28: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 28

Condicionais

● É uma tomada de decisão, com base em um teste lógico.

● Tem o formato if(teste lógico){} else{}● O bloco else é opcional.● Se o teste lógico for verdadeiro, ele executa

as instruções dentro do 1º bloco.● Se não, executa as dentro do bloco else{}

Page 29: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 29

Um pouco de programação

● À esquerda temos um exemplo de um programa que faz um de dois leds piscarem cerca de 998x

● Um led piscará se o número for primo e o outro se não for.

Page 30: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 30

Um pouco de programação

● Em 1 temos declarações de variáveis.

● As variáveis i e j são do tipo inteiro.

● A variável a é do tipo booleana.

Page 31: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 31

Um pouco de programação

● O tipo booleano só pode assumir valores lógicos, ou seja, verdadeiro ou falso.

● Voltando nas variáveis inteiras, notem que se quisermos, podemos atribuir um valor ao declararmos, como fizemos com i.

Page 32: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 32

Um pouco de programação

● Em dois temos o início de um ciclo, será executado enquanto i for menor que 1000.

● Se tivéssemos atribuído 1000 ou mais para i, esse ciclo NUNCA seria executado!

Page 33: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 33

Um pouco de programação

● Se fosse um ciclo do-while, as instruções em seu interior seriam executadas pelo menos uma vez, independente do valor de i

● Em 3 atribuímos um valor para a

Page 34: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 34

Um pouco de programação

● Em 4 abrimos um laço for.

● Sua condição inicial é a variável j tendo o valor de i.

● Ele será executado enquanto j for maior que um.

● Ao fim de cada execução, j será diminuído em uma unidade.

Page 35: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 35

Um pouco de programação

● Em 5, dentro do ciclo, executamos uma operação com ª

● No caso uma operação lógica.

● 'a' assumirá o seu valor antigo, ou o valor lógico da expressão:– “O resto da divisão de i

por j é igual a zero”

Page 36: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 36

Um pouco de programação

● Em 6 temos um condicional. Se a for verdadeiro, i led ligado ao pino 12 piscará.

● Caso o contrário o led ligado ao pino 13 piscará.

Page 37: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 37

Um pouco de programação

● Em 6 temos um condicional. Se a for verdadeiro, i led ligado ao pino 12 piscará.

● Caso o contrário o led ligado ao pino 13 piscará.

Page 38: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 38

Exercício 1

● Altere o programa blink, de modo que o tempo que o led ficará aceso seja igual 1000xn ms sendo n o número de piscadas que ele já deu mais 1.

● Exemplo:– 1ª piscada, delays de

1000ms.

– 2ª piscada, delays de 2000ms

– 3ª piscada, delays de 3000ms

Page 39: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 39

Exercício 1

● Notem que você pode declarar variáveis fora da função loop.

● Notem que cada vez que a função a for é chamada, j assume o valor de i

Page 40: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 40

Lendo...

● Um microcontrolador ainda poderia fazer muita coisa se só tivesse pinos de saída.

● No entanto é muito interessante que ele tenha pinos de entrada, ou seja, pinos que possibilitem com que eles leiam informações do mundo exterior.

● Sinais digitais podem ser lidos com a função “digitalRead(pino)”

Page 41: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 41

Exemplo: Alterar led

● A função digitalRead(porta) retorna o valor digital da porta a qual está associada.

● Se tivermos um sinal alto, ela retornará 1, se não, retornará um 0● Vamos fazer um exemplo, para entender melhor seu funcionamento● Nosso programa será uma derivação do blink. No entanto haverá um led

vermelho também e um botão de pressão. ● O programa começará com um dos leds piscando e o outro não. Quando o

botão for pressionado, os leds deverão alternar de função.● Hardware:

– 2 leds de 5mms (cores diferentes)

– 2 resistores de 220 ohms

– 1 resistor de 150 ohms

– 1 pushbuttom

Page 42: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 42

Hardware: Alterar led

Page 43: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 43

Hardware: Alterar led

Page 44: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 44

Hardware: pushbuttom

● A “tecla de pressão”, com 4 pinos, tem funcionamento simples: Ao ligarmos um sinal em uma de suas “perninhas” o sinal é mandado para a em frente. Quando pressionamos o botão o sinal deixa de ser mandado para esta e é mandado para a lateral

Page 45: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 45

Hardware pushbuttom

● Note que ligamos um dos pinos de “saída” do botão à uma resistência e ao GND, isso serve para “forçar” que a tensão no outro pino abaixe quando o botão não estiver acionado, dando assim um valor “0” de input lógico

● Isso significa que nosso botão envia um “ALTO” quando acionado. Trocando os pinos de saída, conseguiríamos um botão que envia um “BAIXO” quando acionado.

Page 46: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 46

Hardware: pushbuttom

● Outra coisa que temos que nos atentar com botões em geral é o efeito “bouncing”

● Quando o botão é acionado é normal haver uma oscilação de tensão antes que ela se estabilize

Alguma saída deve ser implementada para evitar que o pino leia algum sinal nessa “zona”

Page 47: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 47

Exemplo II: Alternar led

● Com base no que já foi dito, conseguem implementar o programa?

● Deu certo? Se parece com o programa ao lado?

?

Page 48: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 48

Exemplo II: Alternar led

● Variáveis inicializadas logo no início.(1)

● A variável botao, que vai receber o valor do pushbuttom está com tipo int, mas poderia ser boolean, ou até mesmo char(1)

1

Page 49: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 49

Exemplo II: Alternar led

● O pino 11 foi configurado como input, pois receberá dados do mundo externo.(2)

● Botao recebe o valor do pino 11 pela função digitalRead(pin)

2

3

Page 50: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 50

Exemplo II: Alternar led

● Mandar “reverificar” o a variável botao 5ms após receber um “ALTO” é uma estratégia (ainda que burra) de evitar o bouncing. (4)

● Note que não informamos literalmente um número em digitalWrite, ao invés disso apontamos uma variável...(5)

4

5

4

Page 51: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 51

Exercício II Intensidade básica

● Agora é a vez de vocês: façam um programa onde a intensidade do LED varie de acordo com a quantidade de vezes que o usuário pressiona o botão.

● Façam com que haja no mínimo 5 graus de intensidade.

● Lembrem-se, se um led pisca muito rápido, ao olho humano vai parecer que ele está sempre aceso.

Page 52: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 52

Exercício II intensidade básica

● Aqui está uma resposta possível para o exercício. Nela o LED pisca numa frequência de 5ms.

● Há uma diferença entre o tempo que o led permanece aceso e apagado durante a piscada. Essa diferença dita a intensidade aparente dele.

Page 53: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 53

Exercício II Flags

● Se observármos bem, o programa todo leva pouco mais que 10ms para executar cada ciclo.

● Isso ainda é muito rápido para um ser humano.● Se não tomarmos cuidado, o programa vai ter

executado vários loops antes do usuário tirar o dedo de cima do botão e alterado a variável valor várias e várias vezes.

Page 54: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 54

Exercício II Flags

● Para contornar esse problema, podemos usar o conceito de flags.

● Flags são mecanismos lógicos que assinalam se algo está habilitado ou não.

● No nosso caso a flag está relacionada com o botão.

Page 55: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 55

Exercício II Flags

● Em 1 a flag é declarada, o nosso programa começa com o botão ativo (flag=1)

● Quando o teste do botão pressionado é feito, é verificado se o botão está habilitado (2)

● Uma vez que as instruções do botão pressionado são executadas, o botão é desabilitado(3)

1

2

1

3

Page 56: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 56

Exercício II Flags

● Se por um acaso, após isso o programa ter executado um loop antes do usuário ter conseguido tirar o dedo do botão, a flag=0 garantirá que o programa não interpretará que o botão foi pressionado novamente.

● Somente em 4, quando o usuário tirar o dedo do botão é que a flag voltará para 1 e o botão será reabilitado (5).

4

5

Page 57: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 57

Revisão

● Vimos nessa lição:– O que é o Arduino

– A forma de um programa do Arduino

– Leitura digital

– Escrita digital

– “Anti tremulação”

– Flags

Page 58: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 58

Leitura complementar

● O que é um microcontrolador:– http://www.mikroe.com/chapters/view/64/chapter-1-introduction-to-microcontrollers/#ch1.1

● Efeito phi:– http://global.britannica.com/EBchecked/topic/455763/phi-phenomenon

Page 59: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 59

Dúvidas???

Page 60: ARDUINO BÁSICO Lição I - sites2.jf.ifsudestemg.edu.brsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição-1 Slides.pdf · 28/01/14 Frederico Möller 4 INTRODUÇÃO O Arduino

28/01/14 Frederico Möller 60

Obrigado e até a próxima lição!