fronte di salita di un segnale

Ciao a tutti ,

devo contare gli impulsi di un onda quadra a 300Hz per poter puntare una parabola.
non riesco a capire come usare gli attachInterrupt() per fare questo...qualcuno può chiarirmi l'esempio sul sito
http://arduino.cc/en/Reference/AttachInterrupt

int pin = 13;
volatile int state = LOW;

void setup()
{
pinMode(pin, OUTPUT);
attachInterrupt(0, blink, RISING);
}

void loop()
{
digitalWrite(pin, state);
}

void blink()
{
state = !state;
}

Io sul pin 2 metto il segna le a ma non succede nulla.

HELP!!! :frowning: :frowning: :frowning: :frowning: :frowning: :frowning:

E sul pin 13 cos'hai messo, un LED?
In tal caso inizia a mettere un delay(1000) sotto state = !state;
Così, se l'interrupt sta rilevando un segnale almeno vedi il LED che lampeggia, a quel punto lo togli e metti un contatore, altrimenti come li conti gli impulsi?

Quoto Menniti.
300 Hz sono 300 flash al secondo, l'occhio non può vederli, max arrivi a 25 Hz, poi la persistenza della visione fonde tra di loro i lampeggi più veloci di tale soglia.

se metti al uscita 13 un tester digitale nel range alternata puoi misurare ca 2,5V. Se é cosí il programma va bene. Se leggi 0 vuol dire che non funziona.
Ciao Uwe

Grazie a tutti ora o il mio contatore sto facendo delle prove con la seriale ma scopro che non conta tutti gli impulsi ho un segnale con un periodo di 3ms circa 333HZ a 5V di picco.
non capisco come mai me ne conti solo 43 di impulsi a sec.

avete una qualche idea

Magari i 333Hz non sono proprio quelli, mentre se con l'oscilloscopio vedi proprio quel periodo e lo strumento è affidabile non rimane che il problema legato alla funzione. Che puoi tentare di risovere salvando gli impulsi contati in un array e dopo 10 valori li invii tramite seriale. Così hai una lista di valori su cui fare considerazioni.

Ciao.

posta il codice completo, altrimenti quì si va "a naso"

Grazie a tutti ho risolto ora leggo bene mi ero legato ad una variabile sbaglaita per il conteggio :grin:

grazie per l'aiuto