A tacômetro é um dispositivo usado para medir a velocidade de rotação de qualquer dispositivo. Usando a propriedade de leitura de tensão analógica de um Arduino, isso pode ser facilmente implementado usando as peças apropriadas. Os tacômetros têm uma variedade de aplicações, incluindo medindo a velocidade de motores CC para garantir que estejam funcionando de acordo com as especificações.
Fig. 1: Protótipo de tacômetro digital baseado em Arduino
Fig. 2: Imagem da placa microcontroladora Arduino
Fig. 3: Imagem do circuito do tacômetro na placa de ensaio
Componentes necessários:
- Placa Arduino com microcontrolador ATmega32
- Qualquer motor DC (de preferência operado por bateria)
- Roda motorizada
- Resistor
- Potenciômetro
- Display de sete segmentos
- Fios de ligação em ponte
- IC7447
- LIDERADO
Princípio de trabalho.
· A fim de faça um tacômetro, teremos que converter a velocidade de rotação em um formato legível. A única forma que o Arduino pode ler é em termos de tensão elétrica.
· É bem sabido que se for fornecida tensão a um motor, a roda do motor girará, cuja velocidade é determinada pela quantidade de tensão fornecida. No entanto, o inverso também é verdadeiro, o que significa que se rodarmos o motor sozinhos, poderemos obter uma tensão nas duas extremidades dos terminais do motor.
· Esta tensão pode ser alimentada ao arduino e o arduino pode calcular a velocidade de rotação dependendo de quanta tensão foi alimentada pelo motor giratório.
Procedimento e Diretrizes
Procedimento e Diretrizes
- O diagrama de circuito é mostrado nas guias do diagrama de circuito. Diagrama de Circuito 1 – esquema de circuito sem usar driver IC e Diagrama de Circuito 2 – esquema de circuito usando driver de display de 7 segmentos IC7447.
- O motor está conectado a um resistor e um diodo LED. O resistor é usado para evitar excesso de corrente que normalmente danificaria o arduino. O LED é utilizado para indicar quando o motor está funcionando e também para evitar operação reversa.
- Como temos tantos pinos restantes do arduino, podemos conectá-los diretamente ao display de 7 segmentos. Alternativamente, poderíamos usar um driver de display de sete segmentos, o que reduziria o número de pinos utilizados e também tornaria a implementação mais fácil em termos do processo de codificação.
- Assim que o motor for ligado, uma tensão positiva será fornecida ao pino analógico do arduino.
- O arduino processará a leitura analógica. Como usamos um display de sete segmentos, podemos ter 10 valores, ou seja, de 0 a 9. Podemos programar o arduino para dividir a leitura analógica obtida em 9 divisões, o que dará a saída necessária de 0 a 9 nos sete segmentos mostrar .
- Caso seja utilizado o IC7447, mais uma etapa é adicionada em que os valores de 1 a 9 são convertidos para seus equivalentes binários antes de serem repassados para os pinos apropriados do IC.
- Caso uma placa perf esteja sendo usada, você deve ter cuidado para não soldar o próprio IC, em vez disso, um suporte de IC
- Por precaução, sempre teste primeiro a tensão do motor. Isso pode ser feito conectando um multímetro aos dois terminais do motor e girando o motor manualmente com as mãos. Se a leitura da tensão for superior a 12 V, o motor não deve ser usado, pois há chance de danificar a placa Arduino.
- Caso queira ajustar a sensibilidade do instrumento, pode-se utilizar um potenciômetro no lugar do resistor. Quanto menor a resistência, maior a sensibilidade.
Código-fonte do projeto
###
intval=0; intbinVal; void setup { Serial.begin(9600); // setup serial pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(A2,INPUT); } void loop { val = analogRead(A2); // read the input pin Serial.println(val); // debug value binVal=val/1024*9; switch(binVal){ case 0: digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,LOW); break; case 1: digitalWrite(3,HIGH); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,LOW); break; case 2: digitalWrite(3,LOW); digitalWrite(4,HIGH); digitalWrite(5,LOW); digitalWrite(6,LOW); break; case 3: digitalWrite(3,HIGH); digitalWrite(4,HIGH); digitalWrite(5,LOW); digitalWrite(6,LOW); break; case 4: digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,HIGH); digitalWrite(6,LOW); break; case 5: digitalWrite(3,HIGH); digitalWrite(4,LOW); digitalWrite(5,HIGH); digitalWrite(6,LOW); break; case 6: digitalWrite(3,LOW); digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(6,LOW); break; case 7: digitalWrite(3,HIGH); digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(6,LOW); break; case 8: digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,HIGH); break; case 9: digitalWrite(3,HIGH); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,HIGH); break; default: break; } }
###
Diagramas de circuito
Diagrama de Circuito-Tacômetro Digital Baseado em Arduino | |
Diagrama de Circuito-Tacômetro Digital Baseado em Arduino_0 |