Sirene com Arduino

sirene figurativa
sirene figurativa

Sirene com Arduino

Para encerrar os posts de buzzer, vamos fazer uma sirene com Arduino, que utilizaremos nos exemplos com sensores, onde tocaremos esse som no buzzer para quando houver um alarme.

O som da sirene como se pode reparar, não é linear, ou seja, ouve-se uma escala larga de tons de grave a agudo e vice-versa. Com isso, podemos concluir que o som faz ondas, logo, para gerarmos tal onda utilizaremos a função matemática sin() (seno) e o pi, para transformar os graus em raio e gerar a frequência.

Relembrando:

Seno e coseno
Seno e coseno

Temos um circulo perfeito e a partir do centro pegamos um angulo – no exemplo, 30º. O seno do ângulo é a linha pontilha vertical que vai até o limite do ângulo – no exemplo, até o extremo do círculo. O coseno do ângulo é a pontilhada horizontal, chamada obscissa (nome horroroso, nem sei se é assim que se escreve).




A fórmula básica para seno ou coseno é:
2senX + 2cosX = 1

O seno e coseno dos principais ângulos:

(graus) 0,30,45,60,90
(seno)0,\dfrac{1}{2}, \sqrt{\dfrac{2}{2}},\sqrt{\dfrac{3}{2}}, 1
(coseno)1,\sqrt{\dfrac{3}{2}},\sqrt{\dfrac{2}{2}},\dfrac{1}{2},1

 

Como se pode notar, os valores de coseno são a inversão dos valores de seno, então é muito fácil decorar, mas se quiser fazer os cálculos para outros ângulos, deixe-me discorrer a respeito.

Calcular seno e cosseno

triângulo retangulo
triângulo retangulo

O seno e cosseno são calculados a partir de um triângulo retângulo.

Um triângulo retângulo tem um ângulo de 90 graus e um ângulo agudo. A face oposta ao ângulo de 90 graus é chamado ‘hipotenusa’ e as outras duas faces são chamadas de ‘catetos’. Só pra ficar bem completa a informação, a soma dos quadrados dos catetos é igual ao quadrado da hipotenusa:

b^{2}+c^{2} = a^{2}

Para calcular o seno e cosseno, primeiramente é necessário saber mais uma coisinha; a partir do ângulo agudo, a reta aposta é o seno. A reta que faz parte do ângulo agudo (adjacente à hipoternusa) é o cosseno.

O cálculo do seno então é:

\sin = \dfrac{b}{a}

E o cosseno:

\cos = \dfrac{c}{a}

A tangente é a divisão de um cateto pelo outro, em relação ao ângulo escolhido. Fim.

Dá pra ir muito além dessa teoria e no exemplo usamos apenas o primeiro quadrante. Agora vem a parte legal; não precisaremos fazer essas contas utilizando a função sin para fazer a sirene com Arduino!

Para fazer o som da sirene, apenas faremos um loop de 0 a 180 (representando graus) de forma que teremos uma onda que vai de -1 a 1. Para converter os graus em raio, utiliza-se o pi com uma precisão de 4 decimais. A fórmula do valor do sinal fica assim:
sin(x*(3.1412/180))

Para o valor do tom dá-se uma ‘ajeitada’:
toneVal = 2000 + (sin(x*(3.1412/180))*100)

Com o setup configurado para saida no pino 8 do Arduino, o código fica assim:

Está pronta a sirene!
Eis o video:

Inscreva-se no nosso newsletter, alí em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Nossos grupos:

Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/

Próximo post a caminho!

Agregador de Links - Loucuras da Net

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

Um comentário em “Sirene com Arduino

Deixe uma resposta