- Components necessaris:
- Explicació del circuit:
- Generador de senyal que utilitza un temporitzador IC 555:
- Porta desencadenant Schmitt:
- Explicació del codi del comptador de freqüències Arduino:
Gairebé tots els aficionats a l’electrònica s’han d’enfrontar a un escenari en què han de mesurar la freqüència del senyal generat per un rellotge, un comptador o un temporitzador. Podem utilitzar l’oscil·loscopi per fer la feina, però no tots ens podem permetre un oscil·loscopi. Podem comprar equips per mesurar la freqüència, però tots aquests dispositius són costosos i no són per a tothom. Amb això en ment, dissenyarem un comptador de freqüències senzill però eficient mitjançant Arduino Uno i Schmitt trigger gate.
Aquest comptador de freqüència Arduino és rendible i es pot fabricar fàcilment; utilitzarem ARDUINO UNO per mesurar la freqüència del senyal, UNO és el cor del projecte aquí.
Per provar el mesurador de freqüència, farem un generador de senyal fals. Aquest generador de senyal fictici es farà mitjançant un xip temporitzador 555. El circuit del temporitzador genera una ona quadrada que es subministrarà a l’ONU per a la seva prova.
Amb tot al seu lloc tindrem un mesurador de freqüència Arduino i un generador d’ones quadrades. Arduino també es pot utilitzar per generar altres tipus de formes d'ona com l'ona sinusoïdal, l'ona dental de serra, etc.
Components necessaris:
- 555 temporitzador IC i 74LS14 porta d’activació Schmitt o porta NO.
- Resistència 1K Ω (2 peces), resistència 100Ω
- Condensador 100nF (2 peces), condensador 1000µF
- 16 * 2 LCD,
- Olla de 47KΩ,
- Taula de pa i alguns connectors.
Explicació del circuit:
El diagrama de circuits de la mesura de freqüència mitjançant Arduino es mostra a la figura següent. El circuit és senzill, una pantalla LCD s’interfaca amb Arduino per mostrar la freqüència mesurada del senyal. 'Wave Input' anirà al circuit del generador de senyals, des del qual estem alimentant el senyal a Arduino. S’utilitza una porta d’activació Schmitt (IC 74LS14) per garantir que només Arduino s’alimenta d’ona rectangular. Per filtrar el soroll, hem afegit un parell de condensadors a través de la potència. Aquest mesurador de freqüència pot mesurar freqüències de fins a 1 MHz.

A continuació s’explica el circuit del generador de senyal i el disparador de Schmitt.
Generador de senyal que utilitza un temporitzador IC 555:

Primer de tot, parlarem del generador d'ones quadrades basat en IC 555, o hauria de dir 555 Astable Multivibrator. Aquest circuit és necessari perquè, amb el mesurador de freqüència al seu lloc, hem de tenir un senyal la freqüència del qual ens sigui conegut. Sense aquest senyal mai no podrem dir el funcionament del mesurador de freqüència. Si tenim un quadrat de freqüència coneguda, podem utilitzar aquest senyal per provar el mesurador de freqüència Arduino Uno i podem ajustar-lo per ajustar la precisió, en cas de desviacions. A continuació es mostra la imatge del generador de senyals amb el temporitzador 555 IC.

A continuació es dóna un circuit típic de 555 en mode Astable, del qual hem derivat el circuit de generador de senyal donat anteriorment.

La freqüència del senyal de sortida depèn de les resistències RA, RB i del condensador C. L'equació es dóna com, Freqüència (F) = 1 / (període de temps) = 1,44 / ((RA + RB * 2) * C).
Aquí RA i RB són valors de resistència i C és un valor de capacitat. Posant els valors de resistència i capacitat a l’equació superior obtenim la freqüència de l’ona quadrada de sortida.
Es pot veure que RB del diagrama anterior és substituït per un pot al circuit del generador de senyals; això es fa de manera que podem obtenir una ona quadrada de freqüència variable a la sortida per a una millor prova. Per simplicitat, es pot substituir l'olla per una resistència simple.
Porta desencadenant Schmitt:
Sabem que tots els senyals de prova no són ones quadrades ni rectangulars. Tenim ones triangulars, ones dentals, ones sinusoïdals, etc. Amb l’ONU capaç de detectar només les ones quadrades o rectangulars, necessitem un dispositiu que pugui alterar qualsevol senyal a ones rectangulars, per la qual cosa fem servir Schmitt Trigger Gate. Schmitt trigger gate és una porta lògica digital, dissenyada per a operacions aritmètiques i lògiques.
Aquesta porta proporciona una sortida basada en el nivell de voltatge d'entrada. Un Schmitt Trigger té un nivell de tensió THERSHOLD, quan el senyal INPUT aplicat a la porta té un nivell de tensió superior al THRESHOLD de la porta lògica, la SORTIDA passa a HIGH. Si el nivell de senyal de tensió d’ENTRADA és inferior al LLINDAR, la SORTIDA de la porta serà BAIXA. No solem obtenir el disparador Schmitt per separat, sempre tenim una porta NO que segueix el disparador Schmitt. El funcionament de Schmitt Trigger s’explica aquí: Schmitt Trigger Gate
Utilitzarem el xip 74LS14, aquest xip té 6 portes Schmitt Trigger. Aquestes SIS portes estan connectades internament com es mostra a la figura següent.

La taula de veritat de la porta d'inversió de Schmitt Inverted es mostra a la següent figura, amb això hem de programar l'ONU per invertir els períodes de temps positius i negatius als seus terminals.

Ara alimentarem qualsevol tipus de senyal a la porta ST, tindrem una ona rectangular de períodes de temps invertits a la sortida, alimentarem aquest senyal a UNO.
Explicació del codi del comptador de freqüències Arduino:
El codi per a aquesta mesura de freqüència mitjançant arduino és bastant senzill i fàcil d’entendre. Aquí expliquem la funció pulseIn , que és la principal responsable de mesurar la freqüència. L’Uno té una funció especial pulseIn , que ens permet determinar la durada de l’estat positiu o negatiu d’una ona rectangular concreta:
Htime = pulseIn (8, HIGH); Ltime = pulseIn (8, BAIX);
La funció donada mesura el temps durant el qual el nivell alt o baix està present al PIN8 de l’Uno. Així doncs, en un sol cicle d’ona, tindrem la durada dels nivells positius i negatius en micro segons. La funció pulseIn mesura el temps en micro segons. En un senyal determinat, tenim temps elevat = 10 mS i temps baix = 30 ms (amb freqüència 25 HZ). Per tant, 30000 s’emmagatzemaran a Ltime integer i 10000 a Htime. Quan els sumem tindrem la Durada del Cicle i, invertint-la, tindrem la Freqüència.
A continuació es mostra el codi complet i el vídeo d’aquest mesurador de freqüència amb Arduino.
