
Neste tutorial, iremos aprender a fazer um Theremin com buzzer e LDR.
No tutorial “Sensing light”, aprendemos a controlar o brilho de um LED comum utilizando um LDR. Agora, iremos aprender a controlar as frequências do buzzer, simulando o Theremin.
Para você que nunca ouviu falar nesse aparelho, o Theremin é um instrumento musical controlado por sensores de aproximação e sem contato físico do músico. Se parece com isso:

Instrumento musical Theremin
Segue a estrutura completa do programa:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
int pinoLdr = A2; // o LDR junto do resistor de 10K estão conectados no pino analógico A2 int leituraLdr; // a leitura analógica do sensor de divisão (Ldr) int pinoBuzzer = 5; // Buzzer está conectado ao pino 5 (PWM pin) void setup() { pinMode(pinoBuzzer, OUTPUT); } void loop() { leituraLdr = analogRead(pinoLdr); tone(pinoBuzzer,map(leituraLdr,1023, 512, 0, 5000)); } |
No primeiro bloco, declaramos as variáveis: int pinoLdr é onde está nosso LDR e a resistência de 10k; int leituraLdr será a informação analógica que o programa lerá (se está escuro ou claro, próximo ou distante), e a última variável int pinoBuzzer, diz que nosso buzzer está no pino PWM 5. Caso você não se lembre o que é saída PWM, clique aqui.
No void setup, declaramos quem é nosso pino digital (pinoBuzzer) e o que ele faz (saída ou entrada), no nosso caso ele é uma saída (OUTPUT).
Por último, instruímos como o programa deve se comportar no void loop(). Dizemos que a variável leituraLdr se baseará na leitura analógica do LDR (analogRead(pinoLdr)). Em seguida, ordenamos que o buzzer toque (tone) e mapeie os valores inversos a leitura do LDR (pinoBuzzer,map(leituraLdr,1023, 512, 0, 5000)), ou seja, quando o LDR não identificar luz, o buzzer toca mais alto.
Quando escrevemos 1023, estamos nos referindo à tensão analógica real que é lida. O valor 1023 está para a fonte de 5V e, significa que o buzzer está tocando e 512 significa que o buzzer está desligado. Utilizando o map dizemos ao programa para “arredondar” os valores e inverter, ou seja, de 1023 o valor é “mapeado” para 0 e 512 para 5000.
- Um Arduino UNO.
- Um cabo USB.
- Uma protoboard.
- Seis cabos jumper macho-macho.
- Um resistor de 10k.
- Um LDR.
- Um buzzer.

Arduino UNO

Cabo USB

Protoboard

Cabo jumper macho

Resistor 10k

LDR

Buzzer
Vamos começar pela conexão do terra da protoboard com o Arduino: com um cabo jumper conecte a parte negativa da protoboard com o pino GND do Arduino (cabo verde):
Para ligar o LDR, precisaremos de 3 cabos jumper. Posicione o resistor em uma das trilhas das “pernas” do LDR; na “perna” que sobrou do LDR conecte o cabo que leva até a entrada VCC, na trilha onde estão o resistor e LDR conecte o cabo que leva até o pino A2 e na “perna” solitária do resistor posicione o cabo na parte negativa da protoboard. Acompanhe os cabos vermelho, laranja e preto do desenho:
O buzzer é mais simples, pois só necessitamos ligar os polos negativo (cabo posicionado na parte negativa da protoboard) e positivo (conectando com o pino digital PWM 5).
O resultado tem que ser parecido com isto:
Lembre-se de conectar o Arduino à entrada USB do seu computador. Verifique se a placa e portas estão já estão configuradas na IDE. Em caso de dúvida, clique aqui e reveja como fazer.
Para efetuar o Upload, clique na seta indicada em vermelho.

Upload do programa
- Acrescente mais um LDR e um buzzer.
- Copie os comandos do programa e lembre-se de nomear 1 e 2 para identificar os componentes corretamente como, por exemplo, pinoBuzzer1, leituraBuzzer2 e etc.
- Troque a porta USB
- Verifique possíveis erros no programa (sintaxe, etc).
- Altere o local dos componentes na placa ou nos pinos.
Uno SMD – Arduino compatível
Ideal para iniciantes, o Uno é um Arduino compatível bem capaz, barato e com diversos shields e sensores compatíveis disponíveis. Se você está começando a aprender sobre microcontroladores e Arduinos, esta é a placa perfeita! Ela é a nossa placa principal nos nossos tutoriais de Arduino.
Buzzer ativo
R$2,50Protoboard transparente 830 pontos
R$24,90Protoboard transparente com 830 pontos para prototipagem é ideal para trabalhos elétricos e eletrônicos com Arduino e microcontroladores em geral. É fácil tem muito espaço para conectar leds, cabos, resistores entre outros.
Os pólos negativos e positivos estão bem identificados para facilitar seu trabalho com vários componentes.
Kit Jumpers macho-macho 65pcs
R$19,90LDR
R$1,90O LDR é um resistor cuja resistência varia em função da luminosidade que incide sobre ele, devido ao material fotossensível que cobre o componente.
É possível utilizá-lo para fazer um Dimmer, Theremin, guia condutor de robôs, entre outros – quanto mais luz ele detectar ele aumenta ou diminui o brilho de um Led, a frequência de um Buzzer, etc.