Materiais
- Arduino;
- Display de LCD 16x2;
- 2 Potenciometria .
Circuito eletrônico
Código fonte
/*Frequencímetro com Arduino e LCD
blog: http://projetosarduino321.blogspot.com.br/
contado: kleytonxavier31@gmail.com
*/
#include <LiquidCrystal.h> //inclui biblioteca lcd
#define inFreq 2 //entrada para medir a frequência no pino digital 2
// --- Hardware do LCD ---
LiquidCrystal disp(9,8,6,5,4,3);
// --- Variáveis Globais ---
long freq, counter;
int pulseCount;
boolean pulse;
void setup()
{
pinMode(inFreq,INPUT); //Configura como entrada
disp.begin(16, 2); //Display lcd 16 x 2
disp.setCursor(2,0); //Posiciona cursor na coluna 3, linha 1
disp.print("Frequency"); //Escreve no display
pulse = 0x01; //Seta variável de controle
}
// --- Loop Infinito ---
void loop()
{
counter = millis(); //counter recebe o valor do tempo em ms
if(digitalRead(inFreq)){ //Entrada de frequência em nível alto?
if(pulse) pulseCount++; //incrementa pulseCount se variável de controle for verdadeira
pulse = 0x00; //limpa variável de controle
}
else
{
pulse = 0x01; //Seta variável de controle
}
if(counter%200 == 0x00) { //Passaram-se 200 ms?
freq = pulseCount*4; //Atualiza frequência (200 x 5 = 1000ms)
disp.setCursor(5,1); //Posiciona cursor na coluna 6, linha 2
disp.print(freq); //Imprime valor atual da frequência
disp.print("Hz"); //Imprime "Hz"
pulseCount = 0x00; //Reinicia contador
}
}
0 comentários:
Postar um comentário