Aiuto FreqCounter

Salve a tutti!

come da titolo avrei bisogno di un chiarimento sulla libreria FreqCounter che permette di leggere una frequenza in entrata sul pin 5.

vorrei sapere se fosse possibile far leggere all'arduino (UNO in questo caso) più di una frequenza contemporaneamente su due diversi pin

esempio: frequenza uno letta dal pin 1 e frequenza due letta dal pin 13 (ho preso due pin qualsiasi)

nel caso non fosse possibile utilizzare questa libreria sapreste consigliarmi qualche altro metodo per poter leggere due frequenze differenti con l'arduino?

La risposta è no.
La libreria usa la modalità Input Capture del timer 1, ossia il timer può essere impostato per incrementare il suo contatore all'arrivo di un segnale sul pin T1 del microcontrollore. Questo piedino è collegato direttamente al modulo del timer che ti ho detto, non puoi cambiarlo.
Quindi per come è fatta la libr, la risposta è no.

Grazie per la risposta velocissima!

Esistono altri metodi per far misurare una frequenza all’arduino?

Precisi come il metodo basato sull'Input Capture di Arduino? No.
Quello HW è il più veloce che puoi implementare.

Se però parliamo di frequenze basse potresti anche provare semplicemente attaccando i segnali ai due pin di interrupt INT0 e INT1 del chip e crearti due routine che contano gli impulsi. Di che intervallo di frequenze parliamo?

Le frequenze non superano 1MHz

Noccioline... :stuck_out_tongue_closed_eyes:
No, ti serve usare l'Input Capture del timer 1.
E non so neanche a quanto puoi arrivare senza usare HW esterno. L'utente Michele Menniti tempo fa ha realizzato un bellissimo frequenzimetro basato su un Atmega328 e una di queste lib che usano l'IC del timer 1. Non ricordo con precisione a quanto arrivava per le misurazioni ma 1 MHz lo faceva senz'altro. Però c'è sempre il limite di un canale.

Se hai bisogno di 2 linee, devi usare 2 Atmega328, uno per ogni segnale.

Ok grazie mille sei stato gentilissimo!

É proprio grazie a quel progetto che sono venuto a conoscenza di questa libreria! :wink:

leo72:
Se hai bisogno di 2 linee, devi usare 2 Atmega328, uno per ogni segnale.

In alternativa può multiplexare il pin di input su più canali, il limite è che può fare le misure solo ogni tot secondi a seconda dei canali e della risoluzione richiesta.
Esempio pratico, due canali con risoluzione al singolo hertz, massima frequenza in ingresso 7 MHz (il limite è il micro stesso), lettura di tutti e due, in sequenza, ogni due secondi, stessa cosa con risoluzione a 10 Hz (time base 0.1 s) lettura di tutti e due in 0.2 secondi.

Vero.

Grazie mille! ora faccio due prove! :wink: