( Risolto )Avere una frequenza fissa

Buon giorno , volevo provare a fare uno sketch prendento l'esempio tone ad ottenere un tono fisso sempre quello finche non stacco il cavo USB.
ho cambiato i valori e mi fa un tono ma non dura molto ho fatto:
int melody[] = {
NOTE_A4};

// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
1 };
ho messo int noteDurations = 1 poi sotto c'è altra roba, ma se la cancello non va nulla
il fatto è che non so le scritte sotto a che servono :slight_smile:
ciao

L'istruzione tone() può essere usata in due modi: o con durata prefissata o senza (vai a leggere il Reference a riguardo).
1 - tone(Nota, Durata)
2 - tone(Nota)
Nel tuo caso è probabile che lo sketch usi il primo modo, quindi dovresti modificare l'istruzione semplicemente eliminando la durata.

Il Reference per quella istruzione è qui --> http://arduino.cc/en/Reference/Tone
Esiste anche l'istruzione opposta NoTone --> http://arduino.cc/en/Reference/NoTone

Syntax

tone(pin, frequency)
tone(pin, frequency, duration)

dici così?

bastano solo queste 2 istruzioni ? , si togliendo la durata 1 solo istruzione

es: tone (8, 440hz)

mi sembra troppo facile asd :slight_smile:

non va se metto
tone(pin, frequency)
mi da errore

Non devi indicare hz ma solo il numero.
Quindi

tone(8, 440);

e poi per terminare

noTone(8);
tone(8, 440);
noTone(8);

ma mi da sta roba negli errori :

sketch_jan20b:1: error: expected constructor, destructor, or type conversion before '(' token
sketch_jan20b:2: error: expected constructor, destructor, or type conversion before '(' token

a te funziona?

Puoi postare lo sketch che stai utilizzando?
Usa il tag CODE per postarlo. (vedi punto 7 --> [REGOLAMENTO] Come usare questa sezione del forum - Italiano - Arduino Forum)

Ciao Paolo :slight_smile: ho scritto quello che ho messo nello sketch,

però mi sono guardato l'esercizio (tone 4)

void setup() {

}

void loop() {
  // turn off tone function for pin 8:
  noTone(8);            
  // play a note on pin 6 for 200 ms:
  tone(6, 440, 200);
  delay(200);

  // turn off tone function for pin 6:
  noTone(6);
  // play a note on pin 7 for 500 ms:
  tone(7, 494, 500);
  delay(500);
  
  // turn off tone function for pin 7:
  noTone(7);  
  // play a note on pin 8 for 500 ms:
  tone(8, 523, 300);
  delay(300);
}

questo riportato e allora credo di aver capito che devo mettere le istruzioni dentro il (void loop).
modifico questo :slight_smile:
P.S.
non ho capito cosa mi dicevi sul tag CODE ?

void setup() {

}

void loop() {
  // turn off tone function for pin 8:
  noTone(smiley-cool;            
  // play a note on pin 6 for 200 ms:
  tone(6, 440, 200);
  delay(200);

  // turn off tone function for pin 6:
  noTone(6);
  // play a note on pin 7 for 500 ms:
  tone(7, 494, 500);
  delay(500);
  
  // turn off tone function for pin 7:
  noTone(7);  
  // play a note on pin 8 for 500 ms:
  tone(8, 523, 300);
  delay(300);
}

a non avevo letto il punto 7 ok :slight_smile:

Questo compila

void setup() {

}

void loop() {
  // turn off tone function for pin 8:
  noTone(8);            
  // play a note on pin 6 for 200 ms:
  tone(6, 440, 200);
  delay(200);

  // turn off tone function for pin 6:
  noTone(6);
  // play a note on pin 7 for 500 ms:
  tone(7, 494, 500);
  delay(500);
  
  // turn off tone function for pin 7:
  noTone(7);  
  // play a note on pin 8 for 500 ms:
  tone(8, 523, 300);
  delay(300);
}

Avevi lasciato una faccina nel codice. :grin:

Si vero perché quando uno scrive aperta parentesi e poi 8 che sarebbe stato il pin 8 e poi chiusa parantesi lo interpreta come la faccia con gli occhiali che è appunto 8 + chiusa parentesi 8) invece con il code non succede.

ok appena posso rifaccio i collegamenti e vediamo se suona come voglio io

grazie :slight_smile:

ManyGold:
Si vero perché quando uno scrive aperta parentesi e poi 8 che sarebbe stato il pin 8 e poi chiusa parantesi lo interpreta come la faccia con gli occhiali che è appunto 8 + chiusa parentesi 8) invece con il code non succede.

Uno dei motivi per cui si deve usare il tag code per includere il codice.
L'altro è per rendere più leggibile il codice stesso nonché il post che lo contiene.