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