Perchè il buzzer non suona come dovrebbe?

Ciao a tutti

Windows 10, IDE 1.8.6.0, Windows Store, Arduino UNO, buona conoscenza hardware, Software: sto imparando

#include <CapacitiveSensor.h>


int note[] = {262, 294, 330, 349, 392, 440, 494, 520};

CapacitiveSensor d = CapacitiveSensor(17, 16);
CapacitiveSensor re = CapacitiveSensor(15, 14);
CapacitiveSensor mi = CapacitiveSensor(3, 4);
CapacitiveSensor fa = CapacitiveSensor(5, 6);
CapacitiveSensor sol = CapacitiveSensor(7, 8);
CapacitiveSensor la = CapacitiveSensor(9, 10);
CapacitiveSensor si = CapacitiveSensor(11, 12);
CapacitiveSensor doa = CapacitiveSensor(19, 18);

int d2 = 30;
int re2 = 30;
int mi2 = 30;
int fa2 = 30;
int sol2 = 30;
int la2 = 30;
int si2 = 30;
int doa2 = 30;

int cassa = 13;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(cassa, OUTPUT);
}

void loop() {
  
  // put your main code here, to run repeatedly:
 long val1 = d.capacitiveSensor(30);
 long val2 = re.capacitiveSensor(30);
 long val3 = mi.capacitiveSensor(30);
 long val4 = fa.capacitiveSensor(30);
 long val5 = sol.capacitiveSensor(30);
 long val6 = la.capacitiveSensor(30);
 long val7 = si.capacitiveSensor(30);
 long val8 = doa.capacitiveSensor(30);

Serial.print(val1); Serial.print(" ");
 Serial.print(val2); Serial.print(" ");
 Serial.print(val3); Serial.print(" ");
 Serial.print(val4); Serial.print(" ");
 Serial.print(val5); Serial.print(" ");
 Serial.print(val6); Serial.print(" ");
 Serial.print(val7); Serial.print(" ");
 Serial.println(val8);

 if (val1 > d2) {
  tone(cassa, note[0]);
 }
 else{
  noTone(cassa);
 }
 
 if (val2 > re2) {
  tone(cassa, note[1]);
 }
 else{
  noTone(cassa);
 }
 
  if (val3 > 9000) {
  tone(cassa, note[2]);
 }
 else{
  noTone(cassa);
 }
 
  if (val4 > fa2) {
  tone(cassa, note[3]);
 }
 else{
  noTone(cassa);
 }
 
  if (val5 > sol2) {
  tone(cassa, note[4]);
 }
 else{
  noTone(cassa);
 }
 
  if (val6 > la2) {
  tone(cassa, note[5]);
 }
 else{
  noTone(cassa);
 }
 
  if (val7 > si2) {
  tone(cassa, note[6]);
 }
 else{
  noTone(cassa);
 }
 
  if (val8 > doa2) {
  tone(cassa, note[7]);
 }

 else{
  noTone(cassa);
 }

 delay(10);
}

Questo è il codice: una tastiera capace di suonare 8 note toccando dei sensori capacitivi. Come mai il buzzer emette solo un brusio? Tranne che sulla nota 8 anche se il suono non esce pulito.

Si ok ma questo non risolve il problema.

@Lory
Che tipo di Buzzer usi? Uno che suona da solo se applichi tensione o un tipo altopalante piezoelettrico?
Ciao Uwe

No se applico semplicemente tensione emette un suono sordo...il buzzer è quello dello starter kit.

Lory:
No se applico semplicemente tensione emette un suono sordo...il buzzer è quello dello starter kit.

Starter kit Arduino originale o un altro?
Ciao Uwe

Originale

Ho risolto in parte: praticamente il noTone racchiuso nell'else strozzava il suono e non lo faceva uscire continuo. ho tolto gli else ora però suona perfettamente ma non si ferma. Credo ora di copiare l'else if del progetto della tastiera nello starter kit.

Risolto...nel caso servisse ecco lo sketch:

#include <CapacitiveSensor.h>


int note[] = {262, 294, 330, 360, 392, 440, 494, 520};
CapacitiveSensor d = CapacitiveSensor(19, 18);
CapacitiveSensor re = CapacitiveSensor(17, 16);
CapacitiveSensor mi = CapacitiveSensor(15, 14);
CapacitiveSensor fa = CapacitiveSensor(3, 4);
CapacitiveSensor sol = CapacitiveSensor(5, 6);
CapacitiveSensor la = CapacitiveSensor(7, 8);
CapacitiveSensor si = CapacitiveSensor(9, 10);
CapacitiveSensor doa = CapacitiveSensor(11, 12);

int d2 = 30;
int re2 = 30;
int mi2 = 30;
int fa2 = 30;
int sol2 = 30;
int la2 = 30;
int si2 = 30;
int doa2 = 30;

int cassa = 2;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(cassa, OUTPUT);

}

void loop() {
  
  // put your main code here, to run repeatedly:
 long val1 = d.capacitiveSensor(30);
 long val2 = re.capacitiveSensor(30);
 long val3 = mi.capacitiveSensor(30);
 long val4 = fa.capacitiveSensor(30);
 long val5 = sol.capacitiveSensor(30);
 long val6 = la.capacitiveSensor(30);
 long val7 = si.capacitiveSensor(30);
 long val8 = doa.capacitiveSensor(30);

Serial.print(val1); Serial.print(" ");
 Serial.print(val2); Serial.print(" ");
 Serial.print(val3); Serial.print(" ");
 Serial.print(val4); Serial.print(" ");
 Serial.print(val5); Serial.print(" ");
 Serial.print(val6); Serial.print(" ");
 Serial.print(val7); Serial.print(" ");
 Serial.println(val8);

 if (val1 > d2) {
    
    tone(cassa, note[0]);
  } 
  else if (val2 > re2) {
    
    tone(cassa, note[1]);
  } 
  else if (val3 > mi2) {
   
    tone(cassa, note[2]);
  } 
  else if (val4 > fa2) {
    
    tone(cassa, note[3]);
  } 
   else if (val5 > sol2) {
    
    tone(cassa, note[4]);
  } 
   else if (val6 > la2) {
    
    tone(cassa, note[5]);
  }
   else if (val7 > si2) {
    
    tone(cassa, note[6]);
  }  
   else if (val8 > doa2) {
    
    tone(cassa, note[7]);
  } 
  
  else {
   
    noTone(cassa);
  }

 
}