Go Down

Topic: Problemi sul software per un progetto! (Read 5 times) previous topic - next topic

acca90

Mi dà lo stesso problema di prima...anche cambiando le impostazioni!!!
Dà sempre quella specie di "sputo"  =(

leo72


Mi dà lo stesso problema di prima...anche cambiando le impostazioni!!!
Dà sempre quella specie di "sputo"  =(

Ma hai provato ad usare la funzione Tone? Con la Tone NON puoi avere lo sputacchìo perché la funzione genera una nota con una determinata frequenza usando un timer del microcontrollore, quindi senza i problemi che ti avevo descritto del tuo programma.

acca90

#27
Dec 07, 2012, 07:08 pm Last Edit: Dec 07, 2012, 07:13 pm by acca90 Reason: 1
Ciao a tutti!!!
Per il buzzer vorrei usare questo processo!!!
Code: [Select]
void setup() {
  pinMode(7, OUTPUT);
}

void loop() {
  buzz(7, 1000, 500); // emissione suono a 1 KHz
  delay(500);
  buzz(7, 2000, 500); // emissione suono a 2 KHz
  delay(500);
  }


void buzz(int targetPin, long frequency, long length) {
  long delayValue = 1000000/frequency/7;
  long numCycles = frequency * length/ 1000;
 
  for (long p=0; p < numCycles; p++){
    digitalWrite(targetPin ,HIGH);
    delayMicroseconds(delayValue);
    digitalWrite(targetPin ,LOW);
    delayMicroseconds(delayValue);
  }
}

//cercare comando per alzare volume!!!


Come faccio ad unirlo nel modo corretto?
Ricordo che ancora mi manca il servo!!! :(
Sinceramente non ho la più pallida idea di come impostarli per far si che una volta che si abbassa la temperatura si disattivino(servo e buzzer)!!!


p.s.
Questo processo funziona esattamente come voglio!!!

qsecofr

ma la funzione tone cosa ti ha fatto di male? fa esattamente quello che vuoi... anche il doppio suono se lo applichi esattamente come ti ho detto di fare sopra... non blocca il processo con questi %Péç°ç di delay che ti stanno tanto simpatici e che ti bloccano aggiornamento temperatura e blink dei led e ti manderanno sicuramente scemo con il servo... che cosa vuoi di più?

nel mio ciclo originale mi sembra che quando tornava giù la temperatura il ciclo percorreva l'else e metteva il red ed il jellow a false... spegnendo tutto...

leo72

Difatti non capisco neanch'io.
Affinché quella funzione... funzioni, devi chiamarla continuamente. Cosa che non puoi fare visto appunto tutti i blocchi causati dalle varie delay.

Go Up