+++ /dev/null
-/*
-Pitch following
-
-The input from a photo resistor dictates the pitch of a piezo.
-
-
- */
-
-// These constants won't change:
-const int sensorPin = A0; // pin that the sensor is attached to
-const int ledPin = 9; // pin that the LED is attached to
-int thisPitch ;
-
-// calibration variables:
-int sensorValue = 0; // the sensor value
-int sensorMin = 1023; // minimum sensor value
-int sensorMax = 0; // maximum sensor value
-
-
-void setup() {
- // turn on LED to signal the start of the calibration period:
- pinMode(13, OUTPUT);
- digitalWrite(13, HIGH);
-
- // calibrate during the first five seconds
- while (millis() < 5000) {
- sensorValue = analogRead(sensorPin);
-
- // record the maximum sensor value
- if (sensorValue > sensorMax) {
- sensorMax = sensorValue;
- }
-
- // record the minimum sensor value
- if (sensorValue < sensorMin) {
- sensorMin = sensorValue;
- }
- }
-
- // signal the end of the calibration period
- digitalWrite(13, LOW);
-}
-
-void loop() {
- // read the sensor:
- sensorValue = analogRead(sensorPin);
-
- // apply the calibration to the sensor reading
- thisPitch = map(sensorValue, sensorMin, sensorMax, 120, 1500);
- // map the analog input range (in this case, min - max from the photoresistor)
- // to the output pitch range (120 - 1500Hz)
- // change the minimum and maximum input numbers below
- // depending on the range your sensor's giving:
-
- // in case the sensor value is outside the range seen during calibration
- thisPitch = constrain(sensorValue, 120, 1500);
-
-
-
- // play the pitch:
- tone(ledPin, thisPitch, 10); // Tone is built in function
- delay(1); // delay in between notes
-}
-