Buscar

Prévia do material em texto

1 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Guia do 
Estudante 
 
Bloco+ Arduino 
 
 
 
 
 
 
 
 
 
 
MÓDULO 
III 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Preparado pela Divisão 
Educacional Asthor 
2 
 
 
 
 
 
 
INSTALAÇÃO DO BLOCO + ARDUINO 
 
 
 PISCAR UM LED 
 
 
TECLA E LED 
 
 
TECLA E LED TRIPLOS 
 
 
MONITOR SERIAL 
 
 
ESTABILIZAÇÃO ( DEBOUNCE ) 
 
 
TRIGGER 
 
 
VOLTÍMETRO 
 
 
SUMÁRIO - Bloco+ Arduino 
IDE 
PÁGINA 5 
 
 
PROJETO 1 
PÁGINA 10 
PROJETO 2 
PÁGINA 14 
 
PROJETO 3 
PÁGINA 18 
 
PROJETO 4 
PÁGINA 20 
 
PROJETO 5 
PÁGINA 22 
 
PROJETO 6 
PÁGINA 27 
 
PROJETO 7 
PÁGINA 30 
 
 
 
 
 
 
3 
 
 
 
 
 
 
TERMÔMETRO DIGITAL 
 
 
 
 
DIMMER 
 
 
 
GERADOR DE ONDA QUADRADA 
 
 
 
AUTOMAÇÃO DA ILUMINAÇÃO 
 
 
 
FADE 
 
 
 
THEREMIN 
 
 
PROJETO 9 
PÁGINA 35 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PROJETO 10 
PÁGINA 39 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PROJETO 11 
PÁGINA 41 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PROJETO 12 
PÁGINA 43 
 
 
 
 
 
 
 
 
 
PROJETO 13 
PÁGINA 45 
 
 
 
 
 
PROJETO 8 
PÁGINA 33 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SUMÁRIO - Bloco+ Arduino 
4 
 
 
 
 
 
 
RGB 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SUMÁRIO - Bloco+ Arduino 
PROJETO 14 
PÁGINA 47 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5 
 
 
 
 
 
 
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. 
 
 
 
 
 
 
 
Instalação Bloco+ Arduino 
6 
 
 
 
 
 
 
Clique em Avançar 
 
 
 
 
 
 
 
 
 
 
 
 
Instalação Bloco+ Arduino 
7 
 
 
 
 
 
 
Clique em Concluir 
O ícone do Arduino aparece na área de trabalho. Clique nele duas vezes para 
abrir a IDE do Arduino. 
 
 
 
 
 
 
 
 
 
 
Instalação Bloco+ Arduino 
8 
 
 
 
 
 
 
 
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 ). 
 
 
 
 
 
Instalação Bloco+ Arduino 
9 
 
 
 
 
 
Clique em Ferramentas > Ardublock para acessar a interface gráfica Ardublock. 
 
 
 
Instalação Bloco+ Arduino 
10 
 
 
 
 
 
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: 
 
 
 
 
 
 
 
 
 
 
 
PROJETO 1 Piscar um led 
11 
 
 
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. 
 
 
 
PROJETO 1 Piscar um led 
12 
 
 
 
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) 
 
PROJETO 1 Piscar um led 
13 
 
 
 
 
 
 
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. 
 
 
 
 
 
 
 
 
 
PROJETO 1 Piscar um led 
14 
 
 
 
 
 
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. 
 
 
 
 
PROJETO 2 Tecla e Led 
15 
 
 
 
 
 
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 
PROJETO 2 Tecla e Led 
16 
 
 
 
 
 
 
 
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. 
 
 
 
 
PROJETO 2 Tecla eLed 
17 
 
 
 
 
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. 
 
 
 
 
 
 
 
 
PROJETO 2 Tecla e Led 
18 
 
 
 
 
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” 
 
 
PROJETO 3 Tecla e Led Triplos 
19 
 
 
 
 
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. 
 
 
PROJETO 3 Tecla e Led Triplos 
20 
 
 
 
 
 
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. 
 
 
 
 
 
 
PROJETO 4 Monitor serial 
21 
 
 
 
 
 
 
 
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. 
 
 
 
 
 
 
PROJETO 4 Monitor serial 
22 
 
 
 
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: 
 
 
 
 
PROJETO 5 Estabilização ( Debounce ) 
23 
 
 
 
 
 
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. 
 
 
 
 
PROJETO 5 Estabilização ( Debounce ) 
24 
 
 
 
 
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. 
 
 
PROJETO 5 Estabilização ( Debounce ) 
25 
 
 
 
 
Nosso fluxograma: 
 
 
PROJETO 5 Estabilização ( Debounce ) 
26 
 
 
 
 
 
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. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PROJETO 5 Estabilização ( Debounce ) 
27 
 
 
 
 
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: 
 
 
 
 
 
PROJETO 6 Trigger 
28 
 
 
 
 
 
 
 
 
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: 
 
 
PROJETO 6 Trigger 
29 
 
 
 
 
 
 
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. 
 
 
 
 
 
 
 
 
 
 
PROJETO 6 Trigger 
30 
 
 
 
 
O voltímetro é tão importante na eletricidadequanto 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: 
 
 
 
 
PROJETO 7 Voltímetro 
31 
 
 
 
 
 
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 
 
PROJETO 7 Voltímetro 
32 
 
 
 
 
 
 
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? 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PROJETO 7 Voltímetro 
33 
 
 
 
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. 
 
PROJETO 8 Termômetro digital 
34 
 
 
 
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. 
PROJETO 8 Termômetro digital 
35 
 
 
 
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. 
 
PROJETO 9 Dimmer 
36 
 
 
 
 
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. 
 
PROJETO 9 Dimmer 
37 
 
 
 
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 
PROJETO 9 Dimmer 
38 
 
 
 
 
 
 
 
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, 
conformeo valor da variável BRILHO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PROJETO 9 Dimmer 
39 
 
 
 
 
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. 
 
PROJETO 10 Gerador de Onda Quadrada 
40 
 
 
 
 
 
 
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? 
 
 
 
PROJETO 10 Gerador de Onda Quadrada 
41 
 
 
 
 
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: 
 
 
 
 
PROJETO 11 Automação da iluminação 
42 
 
 
 
 
 
 
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. 
PROJETO 11 Automação da iluminação 
43 
 
 
 
 
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: 
 
 
PROJETO 12 Fade 
44 
 
 
 
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. 
PROJETO 12 Fade 
45 
 
 
 
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: 
 
 
 
 
 
PROJETO 13 Theremin 
46 
 
 
 
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 ) 
 
 
 
 
 
 
 
 
 
 
 
 
 
PROJETO 13 Theremin 
47 
 
 
 
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: 
 
 
 
 
 
 
PROJETO 14 RGB 
48 
 
 
 
PROJETO 14 RGB 
49 
 
 
 
 
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: 
 
 
 
 
 
PROJETO 14 RGB 
50 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PROJETO 14 RGB 
51 
 
 
 
 
 
 
 
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? 
 
 
 
 
 
 
PROJETO 14 RGB