Módulo III Arduino

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 51

Guia do

Estudante
Bloco+ Arduino

MÓDULO
III

Preparado pela Divisão


Educacional Asthor

1
SUMÁRIO - Bloco+ Arduino

IDE INSTALAÇÃO DO BLOCO + ARDUINO


PÁGINA 5

PROJETO 1 PISCAR UM LED


PÁGINA 10

PROJETO 2 TECLA E LED


PÁGINA 14

PROJETO 3 TECLA E LED TRIPLOS


PÁGINA 18

PROJETO 4 MONITOR SERIAL


PÁGINA 20

PROJETO 5 ESTABILIZAÇÃO ( DEBOUNCE )


PÁGINA 22

PROJETO 6 TRIGGER
PÁGINA 27

PROJETO 7 VOLTÍMETRO
PÁGINA 30

2
SUMÁRIO - Bloco+ Arduino

PROJETO 8 TERMÔMETRO DIGITAL


PÁGINA 33

PROJETO 9 DIMMER
PÁGINA 35

PROJETO 10 GERADOR DE ONDA QUADRADA


PÁGINA 39

PROJETO 11 AUTOMAÇÃO DA ILUMINAÇÃO


PÁGINA 41

PROJETO 12 FADE
PÁGINA 43

PROJETO 13 THEREMIN
PÁGINA 45

3
SUMÁRIO - Bloco+ Arduino

PROJETO 14 RGB
PÁGINA 47

4
Instalação Bloco+ Arduino

Instalação da IDE do Arduino para Windows, com a interface gráfica Ardublock.


1. Baixar o arquivo de instalação setup_arduino_ardublock.exe
2. Executar o arquivo de instalação

Clique em Começar para instalar os programas.


Ao término, aparece a janela para instalação dos drivers.

5
Instalação Bloco+ Arduino

Clique em Avançar

6
Instalação Bloco+ Arduino

Clique em Concluir
O ícone do Arduino aparece na área de trabalho. Clique nele duas vezes para
abrir a IDE do Arduino.

7
Instalação Bloco+ Arduino

Conecte o Bloco+ Arduino na porta USB do computador usando o cabo


fornecido.
Clique em Ferramentas e selecione a porta COM.

Observação: a porta COM pode ter várias identificações ( COM 1; COM2, etc ).

8
Instalação Bloco+ Arduino

Clique em Ferramentas > Ardublock para acessar a interface gráfica Ardublock.

9
PROJETO 1 Piscar um led

Nosso primeiro projeto é o mais simples que se pode fazer com o Bloco+
Arduino.
ACENDER E APAGAR UM LED POR 500 ms, repetidamente.
Esse projeto é fundamental para o aprendizado da programação, verificação se
o hardware está correto, se os drivers estão funcionando e familiaridade com
alguns códigos.
O ambiente de programação ARDUBLOCK é totalmente gráfico, intuitivo e fácil
de usar.
Inicie fazendo a montagem, conforme o esquema abaixo:

10
PROJETO 1 Piscar um led
Para abrir o Ardublock:
Iniciar > Arduino > Ferramentas > Ardublock

A janela de categorias à esquerda do Ardublock tem o menu de teclas com


todos os blocos de funções disponíveis, como operadores lógicos, condições
de estado e controles das entradas e saídas do Arduino.

11
PROJETO 1 Piscar um led

O Ardublock é uma linguagem sequencial, portanto ele executará uma função


de cada vez. Para executar as instruções no Ardublock posicionamos uma
função em baixo da outra, simplesmente arrastando e conectando um
bloquinho embaixo do outro.
Todo programa para Arduino contém a função loop ( sempre faça ).

Esta função é executada indefinidamente quando o Arduino é ligado. Portanto


é nela que devemos colocar nossos blocos.
Note que o bloco seta pino digital possui 2 argumentos: número do pino e
estado lógico desejado. Clique em D2 ( pino 2 ) e selecione D13 ( pino 13 ) no
menu suspenso.

Este trecho do programa indica que no pino digital 13, onde ligamos nosso led,
o nível lógico é HIGH, ou seja +5 V, portanto o led sempre aceso.
Para apagar o led depois de 500 milisegundos:
Na categoria controle selecione o bloco delay MILLIS milissegundos e altere
o argumento de 1000 para 500. Isso significa que o programa dá uma pausa de
meio segundo antes de partir para a próxima instrução.

A próxima instrução vai apagar o led, portanto o nível lógico do pino 13 deve
passar de HIGH para LOW. O tempo que o led permanece apagado é 500 ms.

Faça isto para os 2 últimos blocos que faltam, colocando o delay em baixo
do seta pino.

Você pode também clonar os dois blocos já criados, para facilitar o trabalho.

 Clique com o botão direito no bloco seta pino e selecione duplicar para
fazer uma cópia.
 Encaixe os dois blocos duplicados em baixo do bloco original, e configure
o segundo seta pino digital para LOW (desligado)

12
PROJETO 1 Piscar um led

Nosso primeiro programa está completo. Confira que o led acende por 500 ms,
apaga por 500 ms, volta acender e apagar, indefinidamente.
Agora vamos testar o comportamento real, será que o circuito proposto vai
funcionar conforme as instruções programadas?
Transfira o programa para o Bloco+ Arduino, clicando no botão enviar para o
arduino . Não esqueça que a porta USB do Bloco+ Arduino tem que estar
conectada à porta USB do computador.

Observe também se a porta de comunicação COM foi selecionada


corretamente e o hardware é Arduino Uno.

O próximo passo é desconectar as portas USB, retirando o cabo de


comunicação. Ligue uma fonte na entrada DC do Bloco+ Arduino ( jack J4 ) e
observe o funcionamento autônomo do circuito.

13
PROJETO 2 Tecla e Led

Este projeto acende um led quando uma tecla é pressionada e o apaga quando
solta. Faça as ligações conforme a figura a seguir.

Um terminal da tecla está ligado ao +5 V e o outro ao pino digital 9


O led está ligado entre o GND e o pino digital 13.

14
PROJETO 2 Tecla e Led

Monte o programa para este projeto conforme mostrado na figura abaixo.

Você precisa declarar a tecla como uma variável, e o pino no qual ela está
ligada. Para isso, clique em variáveis/constantes na janela categorias.
Arraste o bloco

Mude o nome Bool para botao. Então nossa tecla fica sendo a variável botao.
O valor do botao depende do estado apertado ( HIGH ) ou solto ( LOW ). Este
estado é lido no pino digital 9.

Encaixe o bloco no loop sempre faça.


Todo programa de computador tem alguma forma de comparar resultados, isso
permite que decisões sejam tomadas.
Para comparar o estado da tecla, vamos usar o seguinte bloco

15
PROJETO 2 Tecla e Led

Este bloco é um comando de controle condicional, permite selecionar qual


instrução executar dependendo de uma condição.
O formato é:
Se teste então
Comando 1
senão
Comando 2

Primeiramente é feito o teste, que resulta nas condições verdadeiro ou falso.


Se a condição é verdadeira ( então ), executa o comando 1.
Se a condição é falsa ( senão ), executa o comando 2

No nosso programa vamos testar o estado do botão. Se apertado = HIGH,


então o teste fica:

A pergunta é: o botão está apertado? Se estiver apertado ( HIGH ) a resposta é


verdadeira ( TRUE ), executa o comando 1 que cria a variável led e atribui a ela
o valor HIGH ou nível lógico alto ou valor +5 V, etc.

16
PROJETO 2 Tecla e Led

Nos casos que o botão está solto, o nível lógico na porta 13 é LOW ou zero
volts. Nessa situação ( senão ) o comando 2 é executado, atribuindo à variável
led o valor zero volts.

A próxima instrução vai colocar na porta digital 13 o valor da variável led

Está pronto o programa, transfira-o para o arduino usando a tecla “enviar para
o arduino” e verifique o funcionamento.

Se a tecla está solta, led=0 e pino 13 = 0 V, portanto o led está apagado.


Se a tecla está apertada, led=1 e pino 13 = 5 V, portanto o led está aceso.
Note que o led só acende quando a tecla é apertada.

17
PROJETO 3 Tecla e Led Triplos

Monte o circuito abaixo

Os leds estão ligados nas portas de saída 11, 12 e 13. As chaves estão ligadas
nas portas de entrada 06, 07 e 08. Para simplificar, os contatos são feitos um
de cada vez, apenas mudando o fio que está ligado na saída de 5 V. Toda vez
que este fio toca uma porta de entrada o led correspondente acende.
Observe que este projeto é o mesmo anterior, com a adição de mais duas
entradas e duas saídas.
Monte o programa conforme a figura mostrada a seguir, observando os
comentários ao lado de cada instrução.
O comentário é um texto no programa cuja função é explicar o código, sem
executar qualquer tipo de ação. Seu uso é livre, quanto mais comentado,
melhor o programa, pois ajuda outros programadores no entendimento da
lógica envolvida.
Faça comentários no Ardublock clicando com o botão direito no bloco a ser
comentado. Na janela, selecione “Adicionar comentário”

18
PROJETO 3 Tecla e Led Triplos

Uma janela de texto vai se abrir, podendo ser arrastada e redimensionada.


Escreva nela o seu comentário. Note também que os comentários ficam ocultos
para não atrapalhar a visão do programa, mas são mostrados sempre que o
ponteiro do mouse passar pelo ponto de interrogação.

Passe o programa para o arduino e verifique o seu funcionamento.

19
PROJETO 4 Monitor serial

Monte o circuito abaixo:

O objetivo desse projeto é estabelecer uma comunicação do arduino com o


computador, através da porta USB.
Esta comunicação se dá acessando o monitor Serial na IDE do Arduino,
podendo ser feita em duas vias, enviando e recebendo os dados.

20
PROJETO 4 Monitor serial

Transfira o programa para o arduino. Para acessar o monitor serial, clique na


tecla “Monitor Serial”, na barra de ferramentas. A janela com o monitor e os
dados aparece, mostrando o estado do botão: 1 = pressionada. 0 = solta.

21
PROJETO 5 Estabilização ( Debounce )
Monte o circuito

O objetivo desse projeto é mostrar que uma chave mecânica cujo


funcionamento aparenta ser simples, quando acionada apresenta oscilação
devido á vibração dos contatos. Chamamos isso de rebote ( BOUNCE ). O
sinal no pino 9 do nosso circuito, quando visto num osciloscópio digital após o
acionamento da tecla se parece com a figura abaixo:

22
PROJETO 5 Estabilização ( Debounce )

A tensão no pino 9 quando a chave está em repouso é 0 volts. Ao ser acionada


a chave, a tensão passa a 5 volts, cai pra zero volts etc, até ficar estável em 5
volts. Esse tempo de estabilização depende da qualidade da chave, mas todas
apresentam esse efeito. Se for feita a leitura do estado da chave antes da
estabilização, o microcontrolador vai pegar um dado que pode estar errado.
Para corrigir isso, são utilizadas técnicas por hardware ( circuito ) ou software.
Essa correção vamos chamar de DEBOUNCE.
O debounce por software consiste numa pausa de alguns microsegundos
entre a mudança de estado da chave e o tempo que ela leva pra estabilizar.
Portanto é necessário esperar pelo menos este tempo para termos certeza que
o bounce acabou.
Há outra maneira que não usa a pausa para em seguida ler o dado. Consiste
na leitura da porta e setar uma flag avisando que houve a mudança de estado.
A flag é um sinaleiro. Um exemplo de flag é a bandeira da caixa de correio, que
indica ao proprietário quando há correspondências.

23
PROJETO 5 Estabilização ( Debounce )

Descrição do projeto

Para o circuito indicado, elabore um programa com o Ardublock que elimine o


rebote e mude o estado da porta 13 sempre que a tecla for pressionada.
Portanto ora o led está aceso e apaga ao pressionar a tecla, ora acende ao
pressionar, etc. Use o recurso da FLAG.

O programa é simples, mas ficaria mais claro se tivesse um roteiro


demonstrando graficamente como o problema pode ser resolvido.
Este roteiro chama-se FLUXOGRAMA.
O fluxograma utiliza blocos que arranjados numa sequência lógica, definem o
comportamento do programa.

24
PROJETO 5 Estabilização ( Debounce )

Nosso fluxograma:

25
PROJETO 5 Estabilização ( Debounce )

Observando o fluxograma, podemos concluir que a flag é sempre Low, exceto


quando for lido o estado High da tecla por duas vezes.

No gráfico acima, a linha verde é a flag. Enquanto a tecla está solta, o seu
estado é Low.
Quando a tecla é pressionada uma segunda verificação é feita para saber se a
flag é Low ou High. Podemos afirmar com certeza que ela é Low, forçando
nova leitura.

26
PROJETO 6 Trigger

Trigger é gatilho, uma analogia ao gatilho de uma arma. Ele é responsável


pelo disparo de uma ação mecânica, elétrica, programação. Um exemplo de
trigger é um circuito comparador que monitora um evento até que ele alcance
um valor pré determinado, provocando uma ação definida.
O valor no qual a ação deve acontecer é chamado de nível de trigger.
Um osciloscópio possui um trigger cuja função é disparar a varredura sempre
que o sinal medido atingir o nível de trigger ajustado. Isso faz o sinal parecer
parado na tela.
Num controle de processos, quando uma temperatura, pressão, velocidade,
peso, etc. atinge um valor especificado, o sensor correspondente que
geralmente é analógico, envia o sinal ao controlador que faz as comparações e
toma a ação conforme programada, acionando dispositivos atuadores. Em
geral, a ação é do tipo ligado-desligado.

Problema:
Programar o arduino para ligar um led sempre que a entrada analógica atingir
um limite de tensão especificado.

Solução:
Observe o circuito conforme a figura abaixo. O potenciômetro simula um sensor
( como se fosse um termorresistor, um LDR, um sensor de posição, um sensor
de pressão, etc ). A tensão no cursor varia continuamente de +5 V até 0 V.
O conversor A/D ( analógico para digital ) é de 10 bits ( 2 10 = 1024 ), portanto 5
volts corresponde ao valor máximo = 1024 e 0 volts corresponde ao valor
mínimo = 0.
Utilize o nível de trigger = 512 que é a posição central do cursor do
potenciômetro, portanto 2,5 V. Para visualizar a saída do conversor A/D, utilize
o monitor serial.

Monte o circuito:

27
PROJETO 6 Trigger

O potenciômetro está ligado como um divisor de tensão, portanto a tensão em


A0 pode variar continuamente de 0 V a +5 V, com a saída do conversor A/D de
0 a 1023.
Faça o programa conforme mostrado abaixo:

28
PROJETO 6 Trigger

Inicialmente foi criada a variável LIMITE com valor 512. O bloco seguinte
permite a escrita da entrada analógica A0 no monitor serial, recurso que é útil
para calibrar o sensor.
O bloco seguinte é o IF-THEN-ELSE ( se-então-senão ) usado para testar o
nível de trigger e acender o led quando A0 ≥ LIMITE ou apagar o led quando
A0 < LIMITE.

Preste atenção na aplicação deste circuito, pois a maioria dos sensores são
ligados dessa forma.

29
PROJETO 7 Voltímetro

O voltímetro é tão importante na eletricidade quanto foi o galvanômetro na


construção dos instrumentos de medida.
Com o voltímetro, além das medidas diretas de tensão, é possível determinar
indiretamente os valores de corrente e de resistência.

Monte o circuito abaixo

A ponta azul que está ligada na entrada analógica A0 é a nossa ponta de


prova, aquela que encostamos no ponto onde a tensão vai ser medida. O
programa simplesmente lê a porta analógica e mostra a leitura no monitor
serial. Como a indicação no monitor vai de 0 a 1023 ( 10 bits ), para ler
diretamente em volts faça uma regra de três.
O programa fica assim:

30
PROJETO 7 Voltímetro

A porta analógica A0 é o valor lido. A variável tensão é convertida de bits para


volts antes de ser mostrada no monitor.
Passe o programa para o arduino e ligue o monitor.
Encoste a ponta de prova no ponto A e anote a tensão indicada.
Encoste a ponta de prova no ponto B e anote a tensão indicada.
Encoste a ponta de prova no ponto C e anote a tensão indicada.
Responda:
Qual a corrente no circuito?
Supondo que o resistor R5 de 100 kiloohms esteja com os valores apagados,
como você determina o seu valor com as medidas efetuadas?
Preste atenção na ligação dos resistores. Na configuração de divisor de tensão,
qual a atenuação?

Dica: atenuação = UAB / UAC

31
PROJETO 7 Voltímetro

Meça a tensão de uma pilha e responda se o voltímetro construído pode medir


10 pilhas ligadas em série.

Para medir tensões maiores que 5 V, você deve usar um divisor de tensão.
Como você poderia alterar o circuito para medir 15 V?

32
PROJETO 8 Termômetro digital
A temperatura é uma grandeza física que caracteriza o estado térmico de um
corpo ou sistema. Quanto maior a agitação das moléculas de um corpo, maior
será a sua temperatura.
O instrumento que mede a temperatura é chamado de termômetro.
Toda substância que modifique alguma propriedade de modo regular com a
temperatura pode ser usada para construir um termômetro. Assim, podemos
construir termômetros que exploram a expansão térmica de um líquido ou
metal, como os termômetros bimetálicos e os de líquido em vidro.
Também há materiais que alteram suas propriedades elétricas com a
temperatura, como os termorresistores e os termopares.

Vamos construir um termômetro digital com o nosso arduino, usando como


sensor de temperatura um termistor do tipo NTC. O NTC é um componente
semicondutor que tem o coeficiente de temperatura negativo, ou seja, quando a
temperatura aumenta, a sua resistência diminui.

No circuito, quando a temperatura aumenta, a resistência do termistor diminui,


aumentando a tensão na porta analógica A0. O Conversor A/D lê essa tensão e
envia o valor para o monitor serial.

33
PROJETO 8 Termômetro digital
Programa no Ardublock:

A variável temp foi definida e seu valor é igual ao pino analógico A0. Como o
conversor lê de 0 a 1023, esses valores precisam ser convertidos para
indicação direta em °C. Vamos calibrar o sensor de -50 °C a +125 °C, usando o
bloco “mapeie – valor- de- para”
Terminado o programa, transfira-o para o arduino. Ligue o monitor serial.
O valor da temperatura é mostrado a cada 100 ms.
Coloque o sensor num copo com água e gelo picado. Deveria indicar 0 °C.
Para calibrar o sensor em 0 °C, ajuste o valor -50 para cima ou para baixo, até
obter a indicação zero. Não esqueça que o programa tem que ser transferido
para o arduino.
Coloque agora o sensor num copo com água em ebulição ( 100 °C ), tendo o
cuidado para não se queimar. Recomendamos usar uma temperatura mais
baixa e comparar com um termômetro. Nesse caso a temperatura não pode
oscilar. Ajuste agora o valor 125 para mais ou para menos até obter a
temperatura do termômetro de comparação.
Nota:
O termo calibrar não é apropriado. Você calibra um instrumento comparando a
sua leitura com a indicação de um instrumento padrão, cuja exatidão seja muito
maior que o instrumento sob teste. Nenhum ajuste é feito.
Desafio:
Você pode fazer o ajuste acima, fazendo a leitura do conversor A/D para 0 °C e
para 100 °C, anotando as indicações. Faça o cálculo correto das constantes -
50 °C e +125 °C.
Substitua os valores calculados no programa e verifique as leituras que
deverão estar muito próximas de 0 °C e de 100 °C.

34
PROJETO 9 Dimmer
A função de um dimmer é controlar a potência aplicada a uma carga.
Exemplo: controlar a intensidade luminosa de uma lâmpada, a velocidade de
um ventilador de teto, a temperatura de um forno elétrico, motores, estufas,
eletrodomésticos, furadeiras e outros.

Monte o circuito conforme o desenho:

Programa:
Programar o Arduino para controlar o brilho de um led, através de um
potenciômetro ligado na entrada analógica A0.

35
PROJETO 9 Dimmer

O led é ligado na porta digital 11 que tem saída PWM (Pulse Width
Modulation). PWM significa Modulação por Largura de Pulso.
Para controlar a potência de uma carga, a maneira mais simples consiste na
adição de resistores ( reostatos ) em série com a carga, alterando a corrente e
portanto também a potência. O inconveniente desse tipo de controle é o
desperdício de energia sob a forma de calor no reostato.
Também é possível usar transistores para controlar diretamente a corrente,
porém o problema de perda de energia por calor permanece, exigindo grandes
dissipadores nos transistores.
Com a evolução da eletrônica, não é admissível um circuito com baixo
rendimento, nem o uso de peças grandes como um dissipador.
A solução está na tecnologia PWM.
No circuito do nosso projeto mostrado acima, imagine que o led é um motor de
corrente contínua, com tensão máxima de 5 V. Quando esse motor está sendo
energizado com 5 V, sua velocidade é máxima. A velocidade diminui à medida
que a tensão fica menor, até parar com 0 V. Se em série com esse motor
houver uma chave capaz de ser ligada e desligada em tempos regulares, o
motor vai acelerar e desacelerar até estabilizar sua velocidade num certo valor.
Dependendo do intervalo liga-desliga, a potência do motor ( e portanto sua
velocidade ) é ajustada.

36
PROJETO 9 Dimmer
Analisando a onda da figura acima, notamos dois parâmetros que são o
período t e a largura do pulso t1. A relação t1/t é o ciclo ativo ou de trabalho
(duty cycle ) que é multiplicado por 100 para definí-lo em porcentagem.

Exemplo:
Calcule o duty cycle e a tensão média aplicada em um motor DC ( de corrente
contínua ), considerando uma tensão de 10 V e uma frequência de 20 kHz,
com 10 µs do tempo desligado.
O período t ( s ) é o inverso da frequência f ( Hz )
t = 1/f - substituindo os valores, t = 1/20.000 = 50 µs
Pelo enunciado, t=50 µs e t1 = (50 µs - 10 µs) = 40 µs, portanto
Duty cycle = 100 x ( 40/50 ) = 80%

Tensão média = tensão aplicada x duty cycle


Substituindo os valores:
Tensão média = 10 x 80% = 8 V.
Tudo se passa como se o motor fosse energizado com 8 V.

Agora podemos cuidar do programa, sabendo que quando o cursor do


potenciômetro está no GND, o duty cycle = 0% e quando está em 5 V, o duty
cycle é 100%.

No primeiro bloco definimos BRILHO como uma variável inteira com o valor
igual ao cursor do potenciômetro.

Precisamos redefinir os limites do valor da variável BRILHO

37
PROJETO 9 Dimmer

No arduino está predefinido que para termos o duty cycle de 0% basta escrever
na porta com saída PWM o valor 0. Da mesma maneira, para duty cycle =
100%, basta escrever 255.
Para que isso aconteça, devemos mapear o valor da variável:
De 0 a 1023 para 0 a 255 ou seja
Os valores da variável PWM ( brilho ) vão variar de 0 a 255, conforme o cursor
do potenciômetro varia de 0 a 1023.
A instrução “seta pino analógico” atribui pulso PWM ao pino digital 11,
conforme o valor da variável BRILHO

38
PROJETO 10 Gerador de Onda Quadrada

Geradores de frequência são instrumentos úteis para testes, ajustes e


desenvolvimento em eletrônica. Na faixa de frequências de áudio, esses
geradores são utilizados nos testes e reparo de amplificadores, rádios,
transmissores e outros.
Nosso projeto é a montagem de um gerador de onda quadrada com ajuste de
frequência através de um potenciômetro.

Numa onda quadrada, o tempo que o sinal está em nível alto é o mesmo para o
nível baixo.

39
PROJETO 10 Gerador de Onda Quadrada

Faça o programa conforme a figura abaixo, definindo a variável tempo como o


valor da entrada analógica A1 ( cursor do potenciômetro ).

Atividade:
1. Comente o programa, descrevendo como as instruções são executadas
e qual o comportamento do led em relação ao sinal gerado;
2. Usando um cronômetro, ajuste a frequência do sinal em 200 Hz;
3. Troque o led pelo alto-falante ( Bloco+ Speaker ). Varie a frequência e
deduza para cada uma, qual a tensão média aplicada. Use os conceitos
vistos no PWM;
4. Se o alto-falante for trocado por um motor de corrente contínua, a
variação da frequência varia a velocidade?

40
PROJETO 11 Automação da iluminação

Problema:
Construir um sistema de luz automatizada para compensar o nível de
iluminação de uma sala. Quando a luz ambiente é intensa as lâmpadas led
ficam apagadas ou com brilho baixo. À medida que o ambiente escurece, as
lâmpadas vão aumentando o brilho até o valor máximo ( condição que o
ambiente estaria completamente escuro ).

O Circuito:

41
PROJETO 11 Automação da iluminação

Programa sugerido:

No programa, foi estabelecido um nível de iluminação mínimo para o ambiente,


onde a lâmpada permanece apagada ( SOMBRA_LEVE > 700 ).
A leitura do LDR, na porta analógica A1 é a variável LUMINOSIDADE. Quando
está escuro, a resistência do LDR é alta e a tensão na entrada analógica A1 é
baixa. Quando está claro, a resistência do LDR é baixa e tensão na entrada A1
é alta ( valores de 0 a 1023, escuro a claro, respectivamente ).
Conclusão – acender o led quando a variável LUMINOSIDADE estiver entre 0 e
699.
Pergunta: LUMINOSIDADE é menor que SOMBRA_LEVE ?
Resposta 1: VERDADEIRO ( ambiente mal iluminado, led aceso )
Resposta 2: FALSO ( ambiente bem iluminado, led apagado )
Antes de acender o led é necessário fazer um mapeamento das leituras
usando a variável BRILHO ( de 0 a 700 para 255 a 0 ).
Passe o programa para o arduino e faça os testes. O comportamento do
circuito se parece com o da iluminação pública, mas há diferenças no
funcionamento. Relate quais são.
42
PROJETO 12 Fade

Fade é esmaecimento. Esse termo é usado para tudo que tem o efeito de se
desfazer gradualmente.
Exemplos:
Numa sessão de slides, uma foto vai sumindo gradualmente enquanto a outra
aparece;
Sinal de rádio que vai perdendo a intensidade até desaparecer;
Finalização de uma música, que diminui o volume até o silêncio;

Também pode ter efeito contrário, quando parte do mínimo até o máximo.
( Fade in / Fade Out )

Nosso projeto é igual a uma iluminação de palco, numa peça de teatro. As


luzes que iluminam a cena acendem e apagam gradualmente. A diferença é
que faremos isso continuamente, ou seja, acender e apagar em intervalos
regulares.

Monte o circuito:

43
PROJETO 12 Fade
Sugestão de programa:

A ideia do programa é somar uma constante ( nº 5 ) a uma variável e colocar o


resultado no pino digital 11. O ciclo se repete até a soma atingir 255. A partir
daí o valor 255 é decrementado de 5 em 5 a cada ciclo fazendo o led perder o
brilho gradualmente até apagar. O ciclo se repete indefinidamente. O atraso de
50 ms faz o led manter o seu estado antes de iniciar novo ciclo.
Atividade: Faça um programa usando a instrução

Esta instrução é semelhante ao loop


FOR...NEXT, que repete as instruções num loop um número especificado de
vezes.
Para o nosso bloco acima, a variável assume o valor da soma que começa de
1 ( início ) até 5 ( parar ) em passos de 1 em 1 ( steps of ). Feita a soma, o
comando é executado e o ciclo se repete até a variável atingir o valor limite,
saindo do loop. Se início > parar, o passo é interpretado como negativo.

44
PROJETO 13 Theremin
O Theremin é um instrumento musical eletrônico capaz de ser operado sem
contato físico com o músico. Na versão original, o Theremim usa duas antenas,
sendo uma para o controle de volume e a outra para controlar a frequência.
Quando o músico aproxima as mãos das antenas, altera o volume e a
frequência do som gerado.
O Theremin feito com o arduino usa como sensor o LDR. A proximidade da
mão com o LDR faz uma sombra que altera a resistência do divisor de tensão.
A tensão lida na entrada analógica indica qual frequência será gerada.
Monte o circuito:

45
PROJETO 13 Theremin
Programação:

A variável luminosidade é a tensão lida na entrada analógica A1, que para o


conversor A/D de 10 bits vai de 0 a 1023. Essa faixa é mapeada para 100 Hz e
2000 Hz respectivamente.
A instrução Som tem a saída no pino 10, e a frequência conforme o valor
mapeado da variável luminosidade com duração de 20 ms.
Não dá para tocar música, mas mostra como um Theremin funciona. Tente
reproduzir o som dos vários tipos de sirene ( ambulância, bombeiro, polícia )

46
PROJETO 14 RGB
A luz branca é formada a partir de três cores primárias. Combinando estas três
cores é possível obter cores diferentes, como será visto no projeto RGB a
seguir.
Monte o circuito e o programa conforme as figuras:

47
PROJETO 14 RGB

48
PROJETO 14 RGB

O programa é extenso, mas os blocos se repetem.


Foram usados seis blocos com a instrução “Repita entre” que é a versão da
instrução “For...Next” já explicada.

O primeiro desses blocos no programa atribui para a variável verde valores que
aumentam de 0 a 255 em incrementos de 5. Para cada incremento, o led verde
que está no pino 10 acende proporcionalmente. Ao atingir o valor limite
Parar=255 o loop é finalizado e tem início a instrução seguinte.

Sequência de execução:

49
PROJETO 14 RGB

50
PROJETO 14 RGB

O programa faz a combinação dos leds dois a dois. Não dá pra ter um espectro
de cores muito amplo, nem uma luz branca. Para isso precisamos combinar os
leds três a três.
Para ver as cores formadas, projete a luz dos leds numa parede branca, ou
num anteparo de papel branco. Variando a distância ao anteparo, as cores
ficam mais definidas.
DESAFIO:
1. Combinar os leds três a três.
2. Combinar os leds três a três, fixando a variação do brilho. Quantas
cores podem ser observadas?

51

Você também pode gostar