Leggere un segnale audio, ci va la resistenza?

Salve a tutti, ho un apparecchio che alla fine di un operazione deve avvisarmi acusticamente, solo che il suono che esce è molto basso, senza contare che mentre eseguo questa operazione devo necessariamente usare il dremel quindi il suono udibile è pari a zero, quindi utilizzerò il segnale acustico in entrata per attivare una striscia di led che mi avviserà visivamente.

Qui potete trovare l’analisi del segnale acustico http://dl.dropbox.com/u/8197242/test.emf

Questo è il listato che ho creato, scusate le eventuali castronerie ma è il primo :roll_eyes:

/*
Sketch per l'interazione con Maximus 360 Lizard
 per il kamikaze hack, Arduino capta il segnale acustico destinato
 al buzzer e attiva led o altri segnalatori
 */

//Pin di ingresso che capta il segnale dal tp1 Lizard
int tp1 = 2;
//Variabile che contiene il valore ricevuto dal tp1
int tp1val = 0;
//Variabile di controllo del superamento del livello di attivazione
boolean active = false;
//Pin di uscita dei led
int pinled = 8;
//Pin connesso al pulsante di reset
int pinreset = 7;
//variabile di controllo del pulsante di reset
boolean reset = false;

void setup() {
  // imposta i pin
  pinMode(tp1, INPUT);
  pinMode(pinled, OUTPUT);
  pinMode(pinreset, INPUT);
}

void loop() {
  //legge il segnale proveniente dal tp1
  tp1val = analogRead(tp1);
  //se il valore letto è superiore a 1 volt accende i led e cambia la variabile active
  if (tp1val > 203)
  {
    active = true;
    digitalWrite(pinled, HIGH);    
  }
  //se la variabile active è false spegne il led
  if (active = false)
  {
    digitalWrite(pinled, LOW);
  }
  //se viene premuto il pulsante reset mette active come false
  reset = analogRead(pinreset);
  if (reset = true)
  {
    active = false;
  } 
}

Il dubbio che ho è: devo mettere una resistenza, anche di valore molto basso, tra l’uscita del segnale acustico e l’ingresso analogico di Arduino?

Grazie 1000 tutti per le eventuali risposte. :slight_smile:

Il file che hai messo non riesco ad aprirlo. Che cos'è?

Non hai detto che valori di tensione e corrente sono in gioco: puoi misurare il segnale che devi manipolare?

Il file è un formato grafico che mi da il programma dell'oscilloscopio giocattolo che ho, io con windows lo apro con il paint, o il visualizzatore di immagini, il segnale è a 3,3volts ma il picco del suono non supera i 2, ti allego lo stesso file ma in bpm http://dl.dropbox.com/u/8197242/test.bmp grazie per l'aiuto

Mi sono dimenticato di aggiungere che la corrente interessata è molto bassa, il segnale fa suonare a malapena un buzzer da3,3volts

Se i valori sono questi, non ti serve la resistenza. L'Arduino è in grado di gestire segnali in ingresso con tensioni fino a 5V.

leo72: Se i valori sono questi, non ti serve la resistenza. L'Arduino è in grado di gestire segnali in ingresso con tensioni fino a 5V.

inoltre direi che viso che andrà collegato a una entrata analogica di mettere aref a magari 3V o 2V così che i 1024 step siano calcolati su quello dico cavolate?

però poi non credo tu abbia 5V sui pin digitali o meglio non sono sicuro

Non serve complicare tanto il codice, a lui non interessa sapere la tensione in ingresso ma solo se c'è tale tensione.

Esatto, a me interessa solo che segnali quando c'è un picco superiore a 1 volt, quindi il listato che ho fatto può andare? Scusate per le 1000 domande ma all'inizi non si è molto sicuri di cioò che si fa... :P

Ok lo sketch va, ho rimosso il pulsante di reset perchè Arduino ce l'ha già :grin: Ho problemi con il segnale ricevuto dal dispositivo perchè a seconda di come gli gira una volta su quel pin ci sono 3,3 volts altre 0, quindi quando il buzzer è muto ma ho 3,3 volts sul pin mi parte l'avviso, questo però è un problema del dispositivo non di Arduino. Grazie 1000 ancora per l'aiuto competente e tempestivo.... ci rivedremo presto....

Il dispositivo alle volte emette 3,3V a "caso"?

Più che a caso è che a volte si inizializza a stato logico basso e a volte alto, il segnale che ho riportato pochi post sopra è stato registrato quando si inizializzava a 0v mentre altre volte se controllo sulla linea ci sono fissi (finchè non spengo il dispositivo) 3,3 volts. Comunque ho contattato il produttore e mi ha detto che mi avrebbe preparato un firmware per utilizzare un pin della porta di espansione presente che semplicemente switcha da 0 a 1, così si taglia la testa al toro...