arduino bÁsico lição iisites2.jf.ifsudestemg.edu.br/sites/default/files/lição...arduino para...

58
02/02/14 Frederico Möller 1 ARDUINO BÁSICO Lição II Frederico José Dias Möller

Upload: others

Post on 13-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 1

ARDUINO BÁSICOLição II

Frederico José Dias Möller

Page 2: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 2

Sumário

● Muito mais que 0 e 1● Modelação por

largura de pulso● O comando

analogWrite● Exemplo III

– Software

● Interdisciplinaridade● Exercício III

Oscilação● Lidando com o

mundo analógico● O comando

analogRead

Page 3: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 3

Sumário

● O Potênciometro● Exemplo IV

– Hardware

– Software

– Arrays

● LDR● Resistor de referência

● Buzzer● Exercício IV Sensor

de iluminação– Software

● Revisão● Leitura

complementar

Page 4: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 4

Muito mais que 0 e 1

● Na lição anterior, aprendemos a usar a leitura e escrita digital.

● Ficamos limitados a “ligar” e “desligar” as coisas.

● No final usamos uma pequena artimanha para controlar a intensidade aparente de um led.

● Nessa lição aprenderemos a usar recursos do Arduino para essa variação de valores.

Page 5: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 5

Modelação por largura de pulso (PWM)

● No último exercício, regulamos a intensidade da iluminação de um led, definindo a fração de tempo no qual o mesmo ficava em alto num determinador período.

● Se o led recebia um pulso de 5V em todo o período de 5ms, então a tensão aparente sobre o led era de 5V

● Se ficasse apenas 3ms dos 5ms, a tensão média no período seria de 3V se ficasse 2ms, 2V e assim por diante

Page 6: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 6

Modelação por largura de pulso (PWM)

Page 7: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 7

Modelação por largura de pulso (PWM)

● O PWM pode ser usado para expressar saídas em curva, como senoides e etc.

● Apesar de, como visto na lição anterior, ser possível implementar um PWM em qualquer pino de saída, O Arduino tem uma função própria para gerar PWMs e estas devem ser usadas com os pinos apropriados.

Page 8: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 8

Modelação por largura de pulso (PWM)

● Os pinos PWM estão dentro do grupo dos digitais e podem ser identificados por um “PWM” ou um “~” marcado ao seu lado.

Page 9: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 9

O comando analogWrite

● A “escrita” analógica do Arduino pode ser feita usando o PWM e a função responsável por isso é a “analogWrite”

● A forma da função é analogWrite(pino,valor)● Pino é o pino digital/PWM de saída.● Valor é um valor qualquer entre 0 e 255

Page 10: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 10

Exemplo III

● Vamos refazer o último exercício, dessa vez usando o comando analogWrite.

● O material utilizado vai ser o mesmo do ultimo exercício, as conexões, as mesmas.

Page 11: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 11

Exemplo III (Software)

● O código, como um todo, é bem parecido com o do exercício II

● Os comandos de delay e digitalWrite foram compilados em um único comando analog Write

1

Page 12: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 12

Exemplo III (Software)

● Para cada unidade na variável valor, teremos uma saída analógica aumentada 51x.

● Se 255 representa 5v

51 representa 1v 1

Page 13: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 13

Interdisciplinaridade

● Com base em seu conhecimento em metrologia, ou eletrônica digital, você consegue dizer qual é a “resolução” D/A do Arduíno?

● É importante observar que a saída PWM não pode ser entendida como a saída de um conversor D/A comum. Enquanto um D/A comum de 8bits e 5v teria uma saída de 1V de fato para uma entrada “51”, o PWM emite 5V em um quinto do tempo do pulso. Para determinados componentes, o PWM pode não trabalhar muito bem.

Page 14: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 14

Exercício III Oscilação

● Com base no que foi aprendido até agora, montar um protótipo onde um led oscile seu brilho continuamente.

● O led deverá começar numa intensidade mínima, ou até mesmo nula, progredir até uma intensidade máxima e depois regredir de forma suave.

● A frequência dessas oscilações deverá ser controlada pelo usuário através de um botão, cada vez que o mesmo for pressionado a frequência deverá aumentar num máximo de 3 diferentes

Page 15: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 15

Exercício III Oscilação

● Mais uma vez, montamos a base do programa igual ao exemplo anterior.

● Dessa vez a variável valor começa com 1 e vai até 3

● Inserimos uma variável deg, que corresponde à um ângulo em graus

Page 16: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 16

Exercício III Oscilação

● Em 1 temos um teste condicional. Se o produto de valor por deg for maior que 180, deg é mandada para 0

● Em 2 temos a “escrita analógica”. A “intensidade” do sinal de saída em 11 será proporcional à uma função seno

1

2

Page 17: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 17

Exercício III Oscilação

● A função sin(x), do Arduíno, retorna o valor do seno de x, sendo x em radianos.

● Para transformarmos graus em radianos, multiplicamos os graus por pi/180.

● Deg representa os graus e valor a frquencia.

Page 18: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 18

Exercício III Oscilação

● Como valor*frequência nunca pode exceder 180, o resultado de sin vai ser sempre entre 0 e 1. Multiplicados por 255, dará sempre um valor entre 0 e 255.

● A função int(x), arrendonda o número x para um valor inteiro.

Page 19: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 19

Exercício III Oscilação

● Em 3 temos um delay de 25ms para que seja mais fácil acompanhar a variação de valores

● É importante observar também, que logo no início do loop, a variável deg é acrescida de uma unidade. Ela foi declarada fora do loop e com valor inicial de -1, alguém pode dizer o motivo?

3

Page 20: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 20

Lidando com o ambiente analógico

● Para “escrever” dados analógicos, o Arduino usa PWM.

● Para “ler”, ele usa portas especiais ligadas a conversores ADC.

Page 21: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 21

O comando analogRead

● As portas analógicas convertem tensões na faixa de 0V a 5V para 10bits.

● A função de leitura é dada por analogRead(pino) onde pino é um valor de 0 a 5 e representa o pino analógico a ser lido.

● Apesar de retornar valores inteiros de 0 a 1023, é interessante que, se alguma variável for receber o resultado de analogRead, essa seja do tipo float.

Page 22: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 22

O potenciômetro

● É um resistor variável.● Possui 3 pinos, mas pode

funcionar apenas com 2● A resistência entre os dois

pinos extremos é a máxima do potenciômetro.

● O pino central tem resistência variável.

Page 23: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 23

Exemplo IV RGB

● O led RGB é uma junção dos leds azul, verde e vermelho em um único componente.

● Minúsculos leds RGBs são responsáveis pela formação da imagem em um monitor led.

● É possível gerar uma grande gama de cores no led RGB variando a intensidade da tensão sobre cada pino do led.

Page 24: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 24

Exemplo IV RGB

● Pode parecer uma boa ideia ligar 3 potenciômetros nas entradas analógicas do Arduino. Mas se vamos gastar 3 desses componentes, por que usar um Arduino?

Page 25: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 25

Exemplo IV RGB

● Usaremos um botão e um potenciometro.● O botão alternará entre 6 estados possíveis:

0,1,2,3,4,5;● Nos estados pares ele fará com que o valor de

leitura da porta analógica seja associada à uma variável que não será usada.

● Nos estados 1,3 e 5 ele fará com que a intensidade dos leds R G B sejam alteradas.

Page 26: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 26

Exemplo IV Hardware

Page 27: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 27

Exemplo IV Software

● A base desse programa é muito parecida com os últimos.

● Logo no início, além das variáveis que estamos habituados, declaramos também uma int “i” e uma float “val2”

Page 28: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 28

Exemplo IV “Arrays”

● A variável “i” é um mero contador e será melhor explicada adiante.

● A variável val2 no entanto, é completamente diferente do que vimos até agora. Ela é do tipo float, ou seja, um número real e não apenas um inteiro. Ela pode assumir valores como 0.5, 3.14, 1.745823, -0.7, 3.0 e etc

● A utilidade de ser float será explicada adiante

Page 29: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 29

Exemplo IV “Arrays”

● Outra diferença em var2 é o 6 entre colchetes após seu nome “[6]”.

● Isso indica que a variável é uma array float, ou seja uma variável float que pode armazenar diversos (no caso 6) valores ao mesmo tempo.

● Ao chamarmos val2[2] estamos pegando o 3º valor armazenado em var2.

Page 30: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 30

Exemplo IV Software

● No setup, habilitamos os pinos de 9 a 11 para saída de dados. Note que todos esses pinos tem saída PWM

● O pino 12 foi configurado como pino de entrada.

Page 31: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 31

Exemplo IV Software

● O pino analógico 0 não precisou ser setado.

● Há um ciclo for de 0 a 5, é importante observar ele, para que acham que esse ciclo está servindo?

Page 32: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 32

Exemplo IV Software

● O resultado do acionamento do botão é o mesmo dos outros exemplos, ele incrementa a variável valor até um limite pré-estabelecido.

Page 33: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 33

Exemplo IV Software

● Há uma mudança no entanto sobre o uso de valor. Agora ela é o índice da variável val2. A variável val2[valor] recebe a leitura analógica da porta 0.

Page 34: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 34

Exemplo IV Software

● Teremos assim:– Val2[0] = valorA

– Val2[1] = valor11

– Val2[2] = valorB

– Val2[3] = valor10

– Val2[4] = valorC

– Val2[5] = valor9

● Os valores A,B,C não serão utilizados para nada.

Page 35: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 35

Exemplo IV Software

● O ciclo for no setup serviu para zerar todas as variáveis.

● Logo que o programa é iniciado, a variável valor é igual a 0, significa que val2 está no índice 0.

● Por consequência o valorA é que recebe o valor inicial do potenciômetro.

Page 36: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 36

Exemplo IV Software

● Ao clicar o botão, a variável val2 recebe o índice 1.

● Ele agora pode alterar a intensidade de uma das cores do led usando o potenciômetro.

● Regulada a cor ele clica novamente no botão e o índice “valor” vai para 2.

● O valor de val2[2] não é utilizado, assim, o valor anterior do potenciômetro não influencia na próxima cor do led.

Page 37: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 37

Exemplo IV Software

● A sequencia de setagem de tensões do led segue ciclicamente.

● A importância de val2 ser float é vista dentro das funções analogWrite, val2 recebe valores inteiro de 0 a 1023 da função analogRead.

● Dentro da função analogWrite, é pedido para dividir val2 por 1023. Se val2 fosse tipo int, o valor dessa divisão seria int, ou seja, nesse caso 0, ou 1!

Page 38: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 38

Exemplo IV Software

● O restante do programa segue a lógica dos programas anteriores.

● Apesar de funcionar, esse é um programa burro! Ele carrega informações para a memória que nunca irá utilizar (var2[0],var2[2] e var2[4]), o usuário também não pode escolher a cor que quer setar, ele precisa percorrer uma a uma.

Page 39: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 39

LDR

● Vamos sair um pouco do Arduino e falar um pouco sobre o LDR

● O resistor dependente de luz tem sua resistência variando de acordo com a incidência de luz sobre ele.

Page 40: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 40

LDR

● Sua resistência diminui não-linearmente à medida que a incidência de luz sobre ele aumenta.

Page 41: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 41

Resistor de referência

● Se ligarmos um sensor tal qual o LDR em série à uma entrada analógica do Arduino não obteremos nenhum resultado válido. O LDR assumirá o valor da tensão a qual está submetido e assim a entrada analógica registrará sempre o mesmo valor.

Page 42: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 42

Resistor de referência

● Se ligarmos um sensor tal qual o LDR, diretamente à uma entrada analógica do Arduino o mesmo não funcionará corretamente. A tensão sobre o sensor será constante e o Arduino sempre obterá um valor fixo.

Page 43: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 43

Resistor de referência

● Para superar esse problema, devemos usar um resistor de referência.

● Esse resistor fica ligado em série com o sensor e a fonte de alimentação.

Page 44: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 44

Resistor de referência

● O conjunto resistor – sensor estará sob a mesma tensão da fonte.

● Ligando a conexão resistor – sensor à porta analógica, essa receberá o resultado do divisor de tensão do sensor (ou do resistor, dependendo de como se liga).

● Fazendo os devidos cálculos, é possível obter a resistência do sensor e assim a quantidade do que ele mede (no caso, incidência de luz).

Page 45: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 45

Buzzer

● É um componente componente eletrônico de audio.

● Possui, tal como o LED, um pino positivo e um negativo

● Pode ser usado para reproduzir bips, campainhas, alarmes e etc.

Page 46: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 46

Exercício IV Sensor de iluminação

● Vamos agora ao exercício nº4!● Com base no que foi visto até agora construir

um sensor de iluminação.● O sensor deverá contar com um LDR para

captar a iluminação ambiente.● Um buzzer deverá emitir bips regulares,

quanto maior for a iluminação, maior a frequência dos bips.

Page 47: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 47

Exercício IV Software

● Concebeu uma resolução difícil?

● Estranhou a resposta dada ao lado?

● Pois é, existem diversas respostas possíveis, mas a maioria vai ser bem simples!

Page 48: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 48

Exercício IV Software

● Em 1 temos a declaração de apenas uma variável, chamada luz, ela vai receber o valor de leitura do sensor.

● No setup, o pino 13 é marcado como saída digital.

1

Page 49: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 49

Exercício IV Software

● A primeira coisa que o programa faz no loop é ler a porta analógica 0 e atribuir o resultado à variável luz . [2]

2

Page 50: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 50

Exercício IV Software

● Em um LDR, quanto maior a incidência de luz, menor a resistência.

● Como o LDR está em um divisor de tensão, quanto menor a resistência do sensor, menor sua tensão.

2

Page 51: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 51

Exercício IV Software

● Portanto, quanto maior a iluminação ambiente, menor será o valor armazenado em “luz”

2

Page 52: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 52

Exercício IV Software

● Em seguida o pino 13 recebe um sinal alto (5V).

● Dessa forma o buzzer passa a emitir um som agudo.

● 25ms depois o barulho cessa. O pino 13 volta a 0V.

Page 53: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 53

Exercício IV Software

● Antes do ciclo recomeçar o programa espera “luz” segundos. Ou seja, se houver muita iluminação no ambiente, luz será um valor pequeno e o programa esperará pouco para começar um novo ciclo.

● Caso o contrário, o programa poderá esperar até pouco mais de 1 segundo para executar um novo ciclo.

Page 54: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 54

Exercício IV Software

● Isso acarretará na diferença de intervalos entre os apitos do buzzer, ele apitará com maior frequência quando o ambiente estiver mais iluminado...

● Existem, como disse, diversas outras formas de escrever esse programa. A lógica básica é essa, mas é interessante tentar outros meios. Que tal usar uma senoide e uma saída PWM no buzzer?

Page 55: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 55

Revisão

● Vimos nessa lição:

– O que é PWM.– O comando de escrita analógica.– O comando de leitura analógica.– O que são arrays.– O que é são potenciômetros, LDRs e buzzers.– O que é o resistor de referência.

Page 56: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 56

Leitura complementar

● Series and Parallel Circuits:

– http://cnx.org/content/m10674/latest/● D/A converter:

– http://hyperphysics.phy-astr.gsu.edu/hbase/electronic/dac.html● ADC converter:

– http://hyperphysics.phy-astr.gsu.edu/hbase/electronic/adc.html

Page 57: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 57

Dúvidas???

Page 58: ARDUINO BÁSICO Lição IIsites2.jf.ifsudestemg.edu.br/sites/default/files/Lição...Arduino para essa variação de valores. 02/02/14 Frederico Möller 5 Modelação por largura de

02/02/14 Frederico Möller 58

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