Controlador

Para construir o levitador acústico são necessárias ondas sonoras que neste caso serão produzidas a partir de sinais elétricos. Para isso, os timers/clocks internos do microcontrolador Arduino serão utilizados. Assim, é necessário entender como programar o funcionamento desses timers para atingir o nosso propósito. Com essas informações iniciais, podemos prosseguir.

Caso queira se aprofundar mais no assunto clique aqui.

Funcionamento e Configuração do Timer 1 do Arduino UNO

Dentre alguns timers que o Arduino UNO possui, apenas um deles será utilizado. Basicamente, o Timer 1 funciona como um contador de 65536 passos inteiros, de 0 a 65535 no maximo (por ser um timer de 16-bits), sendo que cada passo tem a frequência interna de 16MHz do próprio hardware do Arduino. Quando o timer chega em seu último passo, ele inverte o nível lógico da sua saída que fica em um dos pinos do Arduino. Entretanto, o valor máximo pode ser ajustado pelo código de programação. O código se encontra na nossa página do GitHub.

Gerando uma Onda Sonora de 40 kHz no Emissor Ultrassônico

Tendo em vista essas informações sobre o funcionamento e configuração do Timer 1, isso pode ser aplicado para gerar uma onda sonora de 40 kHz. Como a frequência do som gerado é a mesma do sinal elétrico, basta configurar o timer para sair de uma frequência de 16 MHz para 40 kHz. Esse valor em específico é utilizado pois é a frequência ressonante do emissores e, portanto, a frequência em que são mais eficientes. 

Para atingir a frequência desejada temos a Equação 1 ao lado, em que fOCnA é a frequência nos pinos de saída, fclk_I/O é a frequência interna (16 MHz) e N é o prescaler (algo que pode ser visto com mais detalhes na aba que descreve os timers do Arduino), tal que para esta ocasião será utilizado como N = 1. Por fim, OCR1A é o valor máximo do último passo a ser dado pelo contador. Assim, para gerar os 40kHz nos pinos de saída, é necessário que OCR1A = 199. Esse "n" representa o número do 

Equação 1

Esquema Elétrico do Levitador Mínimo

Para a montagem de um levitador em sua versão mais simples (Levitador Mínimo), será necessário:

Assim, o levitador pode ser montado como mostram os esquemas elétricos da Figura 2 à Figura 5. Além disso, alguns materiais como ferro de solda e estanho ou conectores que interligam três ou mais fios em um nó, ou até mesmo uma protoboard podem ser utilizados para fazer as conexões entre os fios da forma como as figuras mostram.

Primeiramente os terras da ponte H e do Arduino devem são ligados em comum para estabelecer a referência de tensão para ambos. Além disso, os pinos 9 e 10 são os pinos que fornecem um sinal de tensão quadrado gerado pelo Timer 1. Já o pino 8 é definido na programação como uma saída digital que auxiliará no desligamento e acionamento dos emissores.

Figura 2: Com jumper conectado e emissores em paralelo

Figura 3: Com jumper conectado e comunicação duplicada

Figura 4: Sem jumper conectado e emissores em paralelo

Figura 5: Sem jumper conectado e comunicação duplicada

Há alguns pequenos detalhes diferentes em cada uma das imagens, mas todas tem o mesmo funcionamento. Essa pequena variação entre os esquemas elétricos são apenas opções que oferecemos para a montagem do levitador, sendo algumas mais convenientes que outras dependendo da situação em que o circuito será montado. Na Figura 3 e a na Figura 5, os pinos 8, 9 e 10 são ligados respectivamente ao EnA (Enable A) em paralelo com EnB, à entrada In1 em paralelo com In3 e à entrada In2 em paralelo com In4, fazendo com que assim um emissor seja ligado nas saídas OUT1 e OUT2, e o outro seja ligado nas saídas OUT3 e OUT4. Por isso, a descrição dessas figuras contém "comunicação duplicada". No caso contrário, como mostram a Figura 2 e a Figura 4, são utilizados apenas EnA, In1 e In2, e os emissores são ligados em paralelo. Esses pinos da ponte H estão explicitados na Figura 6

Figura 6: Pinout da Ponte H L298N

Pela Figura 6, é possível perceber então que as entradas In1 e In2 se comunicam com as saídas OUT1 e OUT2, enquanto que In3 e In4 se relacionam com OUT3 e OUT4

Há também as entradas denominadas na placa como "12V" e "GND", também respectivamente chamadas de Vcc e terra. O terra é compartilhado com o terra do Arduino como já foi explicado. O Vcc é uma entrada da ponte H que transmite a tensão recebida para os terminais de saída da placa. e que aceita valores de tensão de no máximo 35V, sendo 20V uma margem segura de máxima tensão a ser fornecida à ponte H, e sendo recomendado 12V de operação como ideal. Já a porta "5V", também chamada de VLogic é a entrada responsável pela alimentação lógica do chip L298N, que atua em uma faixa de tensão bem estrita de 4,5V a 7V. 

É importante dizer que este módulo, possui um regulador de tensão para 5V do modelo 78m05 (datasheet) que aceita valores de tensão entre 4,5V e 35V, sendo 20V uma margem segura de máxima tensão, e sendo 12V uma tensão de operação recomendada. Assim, quando acionado, o regulador converte a tensão do Vcc para 5V na entrada VLogic. Vale ressaltar que este regulador não deve ser acionado quando há mais de 20V no Vcc. O acionamento desse regulador é feito colocando um mini jumper no par de terminais chamado de "5VEn", como mostra a Figura 6.

Assim, quando as tensões aplicadas ao Vcc estiverem entre 7V e 20V (pode ser um valor de 25V, já que outras referências também recomendam esse valor), o regulador pode ser acionado pelo jumper, como mostram a Figura 2 e a Figura 3. No caso contrário (tensões acima de 20V ou 25V), esse jumper é desconectado e a alimentação do Arduino é utilizada, como mostram a Figura 4 e a Figura 5.

Além disso, temos os Enables (Habilitadores traduzido do inglês literalmente) A e B, que são terminais do chip L298N e que funcionam como habilitadores. Ao aplicar um nível lógico baixo aos Enables, a tensão do Vcc não é transmitida para as saídas, enquanto que um nível lógico alto transmite, habilitando assim o funcionamento dos componentes a serem ligados as saídas da ponte H. Na configuração padrão do módulo, os Enables estão sempre em um nível lógico baixo. Assim, utilizamos o pino digital 8 como uma saída que fornece uma tensão de 5V aos Enables para controlar se os emissores serão desligados ou ligados. Vale ressaltar que o EnA habilita as saídas OUT1 e OUT2, e EnB habilita OUT3 e OUT4

É também importante destacar que, juntamente com os Enables EnA e EnB, há acima deles um outro pino que fornece 5V de tensão. Assim, é possível deixá-los sempre habilitados utilizando um mini jumper, porém sem controle algum o que foge um pouco do nosso caso. No nosso caso, esse controle dos Enables é essencial para todos os experimentos que fazemos.

Finalmente, o mais importante da ponte H é alternância da ddp entre os terminais de cada par de saídas do módulo que o chip faz de acordo com os níveis lógicos colocados nas entradas. Já que os pinos 9 e 10 fornecem um sinal lógico alternante, sendo o sinal do pino 9 defasado de 180° do pino 10 (um é o oposto do outro) isso fornece sempre um sinal que os pinos 9 e 10 nunca estão em estados iguais. Isso faz que as saídas sejam . A Figura 7 exibe como exemplo um diagrama do tempo do sinal de tensão nas entradas e saídas In1, In2 e a ddp (diferença de potencial) entre as tensões das saídas OUT1 e OUT2 respectivamente. Note que Vout = (tensão em OUT1) - (tensão em OUT2).

Figura 7: Diagrama Temporal de Tensões

Utilizamos este website (caso também queira se aprofundar mais no assunto) como referência para a explicação da Ponte H, mais especificamente do modelo L298N.