Módulo III Arduino
Módulo III Arduino
Módulo III Arduino
Estudante
Bloco+ Arduino
MÓDULO
III
1
SUMÁRIO - Bloco+ Arduino
PROJETO 6 TRIGGER
PÁGINA 27
PROJETO 7 VOLTÍMETRO
PÁGINA 30
2
SUMÁRIO - Bloco+ Arduino
PROJETO 9 DIMMER
PÁGINA 35
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
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
Observação: a porta COM pode ter várias identificações ( COM 1; COM2, etc ).
8
Instalação Bloco+ Arduino
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
11
PROJETO 1 Piscar um led
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.
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.
14
PROJETO 2 Tecla e Led
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.
15
PROJETO 2 Tecla e Led
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.
Está pronto o programa, transfira-o para o arduino usando a tecla “enviar para
o arduino” e verifique o funcionamento.
17
PROJETO 3 Tecla e Led Triplos
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
19
PROJETO 4 Monitor serial
20
PROJETO 4 Monitor serial
21
PROJETO 5 Estabilização ( Debounce )
Monte o circuito
22
PROJETO 5 Estabilização ( Debounce )
23
PROJETO 5 Estabilização ( Debounce )
Descrição do projeto
24
PROJETO 5 Estabilização ( Debounce )
Nosso fluxograma:
25
PROJETO 5 Estabilização ( Debounce )
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
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
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
30
PROJETO 7 Voltímetro
31
PROJETO 7 Voltímetro
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.
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.
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%
No primeiro bloco definimos BRILHO como uma variável inteira com o valor
igual ao cursor do potenciômetro.
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
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
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:
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 )
Monte o circuito:
43
PROJETO 12 Fade
Sugestão de programa:
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:
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 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