Arduino frekvensmåler ved hjælp af 16 × 2-skærm

Arduino frekvensmåler ved hjælp af 16 × 2-skærm

I denne artikel skal vi konstruere en digital frekvensmåler ved hjælp af Arduino, hvis aflæsninger vises på en 16x2 LCD-skærm og vil have et måleområde fra 35 Hz til 1MHz.



Introduktion

At være elektronikentusiast, ville vi alle være stødt på et punkt, hvor vi har brug for at måle frekvensen i vores projekter.

På det tidspunkt ville vi have indset, at et oscilloskop er et så nyttigt værktøj til måling af frekvens. Men vi ved alle, at et oscilloskop er et dyrt værktøj, ikke alle hobbyister har råd til et, og oscilloskop kan være et overkillingsværktøj for begyndere.





For at overvinde spørgsmålet om målefrekvens behøver hobbyist ikke et dyrt oscilloskop, vi har bare brug for en frekvensmåler, der kan måle frekvensen med rimelig nøjagtighed.

I denne artikel skal vi lave en frekvensmåler, som er enkel at konstruere og nybegyndervenlig, selv noob i Arduino kan udrette med lethed.



Før vi går i detaljer med konstruktionen, skal vi undersøge, hvad der er frekvens, og hvordan det kan måles.

Hvad er frekvens? (For noobs)

Vi kender udtrykket frekvens, men hvad betyder det egentlig?

Nå, frekvens defineres som antal svingninger eller cyklusser pr. Sekund. Hvad betyder denne definition?

Det betyder, hvor mange gange amplituden af ​​“noget” går op og ned i ET sekund. For eksempel frekvens af vekselstrøm i vores bopæl: Amplituden af ​​'spænding' ('noget' erstattes af 'spænding') går op (+) og ned (-) på et sekund, hvilket er 50 gange i de fleste lande.

En cyklus eller en svingning består af op og ned. Så en cyklus / svingning er, at amplituden går fra nul til positiv spids og kommer tilbage til nul og går negativ spids og vender tilbage til nul.

'Tidsperiode' er også et udtryk, der bruges, når det drejer sig om frekvens. Tidsperioden er den tid, det tager at gennemføre “en cyklus”. Det er også den omvendte værdi af frekvens. For eksempel har 50 Hz 20 ms tidsperiode.

1/50 = 0,02 sekund eller 20 millisekund

Nu vil du have en idé om frekvens og dens relaterede vilkår.

Hvordan måles frekvensen?

Vi ved, at en cyklus er en kombination af højt og lavt signal. For at måle varigheden af ​​høje og lave signaler bruger vi “pulseIn” i arduino. pulseIn (pin, HIGH) måler varigheden af ​​høje signaler og pulseIn (pin, LOW) måler varigheden af ​​lave signaler. Pulsvarigheden af ​​begge tilføjes, hvilket giver tidsperioden for en cyklus.

Den bestemte tidsperiode beregnes derefter i et sekund. Dette gøres ved at følge formlen:

Freq = 1000000 / tidsperiode i mikrosekunder

Tidsperioden fra arduino opnås i mikrosekunder. Arduino prøver ikke indgangsfrekvensen i hele sekund, men den forudsiger frekvensen nøjagtigt ved at analysere kun en cyklus tidsperiode.

Nu ved du, hvordan arduino måler og beregner frekvensen.

Kredsløbet:

Kredsløbet består af arduino, som er projektets hjerne, 16x2 LCD-skærm, IC 7404-inverter og et potentiometer til justering af kontrast på LCD-skærm .

Den foreslåede opsætning kan måle sig fra 35Hz til 1 MHz.

Arduino skærmforbindelse:

Ovenstående diagram forklarer sig selv, ledningsforbindelsen mellem arduino og display er standard, og vi kan finde lignende forbindelser på andre arduino- og LCD-baserede projekter.

Arduino frekvensmåler ved hjælp af 16x2 skærm

Ovenstående diagram består af inverter IC 7404. IC 7404s rolle er at eliminere støj fra indgangen, så støj ikke spredes til arduino, hvilket kan give falske aflæsninger, og IC 7404 kan tåle kort spids spænding, som ikke vil passere til arduino stifter. IC 7404 udsender kun rektangulære bølger, hvor arduino let kan måle sammenlignet med analoge bølger.

BEMÆRK: Den maksimale input til peak til peak bør ikke overstige 5V.

Program:

//-----Program Developed by R.Girish-----//
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int X
int Y
float Time
float frequency
const int input = A0
const int test = 9
void setup()
{
pinMode(input,INPUT)
pinMode(test, OUTPUT)
lcd.begin(16, 2)
analogWrite(test,127)
}
void loop()
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Frequency Meter')
X=pulseIn(input,HIGH)
Y=pulseIn(input,LOW)
Time = X+Y
frequency=1000000/Time
if(frequency<=0)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Frequency Meter')
lcd.setCursor(0,1)
lcd.print('0.00 Hz')
}
else
{
lcd.setCursor(0,1)
lcd.print(frequency)
lcd.print(' Hz')
}
delay(1000)
}
//-----Program Developed by R.Girish-----//

Test af frekvensmåleren:

Når du først har konstrueret projektet, er det nødvendigt at kontrollere, om alt fungerer fint. Vi er nødt til at bruge en kendt frekvens for at bekræfte aflæsningerne. For at opnå dette bruger vi arduinos indbyggede PWM-funktionalitet, som har en frekvens på 490Hz.

I programmet er pin nr. 9 aktiveret til at give 490Hz ved 50% driftscyklus, brugeren kan gribe indgangsledningen til frekvensmåleren og indsætte i pin nr. 9 i arduino som vist i figuren. Vi kan se 490 Hz på LCD-skærmen (med en vis tolerance), hvis den nævnte procedure var vellykket, er din frekvensmåler klar til at tjene dig eksperimenter.

Forfatterens prototype:

Arduino Frequency Meter Prototype Image

Brugeren kan også teste denne Arduino frekvensmåler kredsløb prototype ved hjælp af ekstern frekvensgenerator, som er vist i ovenstående billede.




Forrige: Arduino Pure Sine Wave Inverter Circuit med fuld programkode Næste: Lav et enkeltkanalsoscilloskop ved hjælp af Arduino