Avvisatore acustico con suono cupo... :(

Buongiorno a tutti.

Riprendo un problema che avevo discusso ieri. Dopo aver risolto la gestione dell'LCD con gli shift register, avrei necessità di utilizzare un avvisatore acustico di questo tipo per eseguire dei beep quando vengono premuti i pulsanti, quando viene effettuato un reset etc. http://it.farnell.com/jsp/search/productdetail.jsp?SKU=1192513

Inizialmente al progetto, quindi quando non usavo ancora lo shift register avevo l'aggeggio collegato in questo modo:

Mi è stato fatto notare che in questo modo pilotando l'LCD potrei avere dei problemi con arduino in quanto l'lcd consuma più di quanto è in grado di fornire arduino. Così tra arduino e il pin 16 dell'lcd ho messo un transistor.

Ora, l'avvisatore acustico l'ho collegato ad un pin libero e mandato a massa. Il suono che viene fuori però è molto cupo rispetto a come è con il collegamento dell'immagine. Qualcuno mi sa aiutare a collegare l'avvisatore di modo che riesca ad ottenere di nuovo quel beep acuto?

La funzione che utilizzo per gestirlo è la seguente:

void sounder_beep(int time){
  
  if (system_useBeep){
     analogWrite(PINS_BUZZER,64); 
     delay(time);
     analogWrite(PINS_BUZZER,0); 
  } else {
    delay(time);
  }
}

Ma anche cambiando i valori non c'è alcun cambiamento percettibile nel beep udito. E' il collegamento che va cambiato? Come?

Grazie.

E facendo un digitalWrite(PINS_BUZZER, HIGH) cosa ottieni?

Rigirando la domanda: perché piloti il cicalino con analogWrite? In questa maniera mandi un'onda quadra, quindi una modulazione d'ampiezza.

leo72: E facendo un digitalWrite(PINS_BUZZER, HIGH) cosa ottieni?

Rigirando la domanda: perché piloti il cicalino con analogWrite? In questa maniera mandi un'onda quadra, quindi una modulazione d'ampiezza.

Ciao Leo. Non ho provato con un digitalWrite, devo essere sincero.

Lo piloto così perchè se un giorno mi dovesse servire di variare l'intensità del tono potrei farlo, avendolo messo su un pin PWM... no?!?

No.

Per variare il tono, c'è la funzione Tone, che serve proprio allo scopo. Come lo fai tu stai solo emettendo un segnale a 490 Hz al 25% di duty cicle: ecco perché lo senti così grave.

leo72: No.

Per variare il tono, c'è la funzione Tone, che serve proprio allo scopo. Come lo fai tu stai solo emettendo un segnale a 490 Hz al 25% di duty cicle: ecco perché lo senti così grave.

Però, Leo. Perchè, con il collegamento che ho postato nel primo messaggio, con la stessa funzione, il suono è molto più acuto e sicuramente diverso rispetto ad ora che ho lo speaker connesso ad un pin PWM ed a massa? Me lo sarei aspettato quantomeno uguale...

Perché lo piloti con un segnale continuo a 5V, cosa che faresti con un digitalWrite(HIGH) che non hai provato.
Adesso lo stai pilotando con un’onda quadra, quindi ne stai modulando l’ampiezza per cui il cicalino emette un suono diverso.

Fai un bel

void loop() {
 for (i=0; i++; <=255) {
    analogWrite(PINS_BUZZER, i);
    delay(50);
  }
}

e poi dimmi cosa senti…

Grazie. Appena posso provo.

Però scusami se son duro di comprendonio, non capisco perchè dovrebbe cambiare, uso la stessa funzione di prima e lo stesso pin su arduino.

Non è che prima usavo un digitalWrite ed ora ho cambiato in un analogWrite PWM... è tutto uguale tranne il modo in cui ho collegato il cicalino...

Allora forse sono io che non capisco. Io dall'immagine vedo che il cicalino l'hai collegato al pin 11 dell'Arduino e poi a massa. E prima come l'avevi collegato?

leo72: Allora forse sono io che non capisco. Io dall'immagine vedo che il cicalino l'hai collegato al pin 11 dell'Arduino e poi a massa. E prima come l'avevi collegato?

Allora, prima era collegato così:

Adesso l'ho collegato così (con o senza R da 92Ohm il suono comunque non cambia):

L'unica cosa che cambia è che prima stava sul pin 6 PWM, ora l'ho messo sull'11 per comodità.

La funzione è sempre identica ed è quella che ho riportato nel codice del primo post. Nel primo caso il suono è acuto e come lo vorrei, nel secondo caso invece è cupo, non è come mi piacerebbe.

Grazie per la pazienza.

Ho provato con il digitalWrite ma non si sente nemmeno... Emette un leggerissimo beep, ma mi sembra più un errore, non saprei come altro definirlo.