Paso 8: Arduino, altavoz y código
El código es el siguiente:
int noteIndex = 999;
int sensorPin = 2; Seleccione la entrada de pin para el potenciómetro
int speakerPin = 9;
int sensorValueOld = PI;
int sensorValue = 0; variable para almacenar el valor que viene desde el sensor
int longitud = 15; el número de notas
Notas de Char [] = "cDfcDFfDc"; un espacio representa un resto
beats de int [] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
tempo de int = 300;
{} void playTone (int tono, duración de int)
para (largo i = 0; i < duración * 1000L; i += tono * 2) {}
digitalWrite (speakerPin, HIGH);
delayMicroseconds(tone);
digitalWrite (speakerPin, bajo);
delayMicroseconds(tone);
}
}
{} void playNote (char nota, int duración)
char nombre [] = {}
'c', 'C', había ', tenía ', 'e', 'f', 'F', 'g', 'G', 'a', 'A', 'b', de '};
tonos de int [] = {}
1915, 1804, 1700, 1607,
1519, 1432, 1351, 1275,
1204, 1136, 1073, 1014, 956};
reproducir el tono correspondiente a nombre de la nota
para (int i = 0; i < 8; i ++) {}
Si (nombres [i] == Nota) {}
playTone (tonos [i], duración);
}
}
}
void setup() {}
declara el ledPin como salida:
pinMode (speakerPin, salida);
pinMode (sensorPin, entrada);
digitalWrite(sensorPin,HIGH);
Serial.Begin(9600);
}
void loop() {}
leer el valor del sensor:
sensorValue = digitalRead(sensorPin);
if(sensorValueOld == sensorValue) {}
no hacen nada!
} else {/ / valor ha cambiado! Lazy Susan se ha mudado!
Serial.println(sensorValue);
punto a la nota siguiente en secuencia
noteIndex ++;
Si (noteIndex > =strlen(notes)) {noteIndex = 0;}
playNote ([noteIndex], de notas pega [noteIndex] * tempo);
Delay(tempo / 2);
}
sensorValueOld = sensorValue;
/*
Si (sensorValue! = 0) {}
para (int i = 0; i < longitud; i ++) {}
Si (notas [i] == ' ') {}
retardo (golpes [i] * random(PI,tempo)); resto
}
Else {}
playNote (notas [i], golpes [i] * tempo);
}
pausa entre las notas
Delay(tempo / 2);
}
}
*/
}