]> git.piffa.net Git - sketchbook_andrea/commitdiff
piezo
authorAndrea Manni <andrea@piffa.net>
Mon, 4 Apr 2016 16:52:07 +0000 (18:52 +0200)
committerAndrea Manni <andrea@piffa.net>
Mon, 4 Apr 2016 16:52:07 +0000 (18:52 +0200)
piezo/README
piezo/piezo_1_tonePitchFollower/piezo_1_tonePitchFollower.ino
piezo/piezo_1_tonePitchFollower_final/piezo_1_tonePitchFollower_final.ino [new file with mode: 0644]

index 4c3877f54224000f429d92025e98884906cf9a4c..ed76355a5c9f5376eba112579fb7c4822ac92c95 100644 (file)
@@ -1,3 +1,3 @@
-There are 4/5 nice sketches bundled with arduino:
+There are 4/5 nice sketches bundled with Arduino IDE as examples:
 -> Digital : tone*
 -> Sensors: knock
index 671f539913318b6d5e81da3a7d56cea9996ebaa1..c609b2918ae618d9dea20e9fe5b0b738aca8bb32 100644 (file)
@@ -53,85 +53,4 @@ tra i valori 20hz e 20.000hz.
 3. Modificare lo script in modo che vengano emessi suoni solo quando
 una mano offusca leggermente la luce (il piezo non deve suonare
 se non c'e' un operatore a interagire con la fotoresistenza).
-
-Soluzioni in fondo.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Soluzioni:
-// 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
-
-// variables:
-int sensorValue = 0;         // the sensor value
-int sensorMin = 1023;        // minimum sensor value
-int sensorMax = 0;           // maximum sensor value
-
-void setup() {
-  // initialize serial communications (for debugging only):
-  Serial.begin(9600);
-    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:
-  int sensorReading = analogRead(sensorPin);
-  // print the sensor reading so you know its range
-  Serial.println(sensorReading);
-  // map the analog input range (in this case, 400 - 1000 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:
-  int thisPitch = map(sensorReading, sensorMin, sensorMax, 220, 3500);
-
-  // play the pitch:
-  if (sensorReading < sensorMax -50) {
-  tone(ledPin, thisPitch, 10);
-  }
-  delay(1);        // delay in between reads for stability
-}
 */
-
-
-
diff --git a/piezo/piezo_1_tonePitchFollower_final/piezo_1_tonePitchFollower_final.ino b/piezo/piezo_1_tonePitchFollower_final/piezo_1_tonePitchFollower_final.ino
new file mode 100644 (file)
index 0000000..bcc9290
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+  Pitch follower
+ Emette un suono in base all'inuput di una fotoresistenza.
+ Con autocalibrazione e limite minimo di attivazione
+
+
+ circuit:
+ * 8-ohm speaker on digital pin 8
+ * photoresistor on analog 0 to 5V
+ * 4.7K resistor on analog 0 to ground
+ created 21 Jan 2010
+ modified 31 May 2012
+ by Tom Igoe, with suggestion from Michael Flynn
+ 2015 by eaman
+
+This example code is in the public domain.
+
+- http://www.dummies.com/how-to/content/how-to-make-an-instrument-with-the-arduino.html
+- https://www.arduino.cc/en/Tutorial/tonePitchFollower
+ */
+
+
+// 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
+
+// variables:
+// Calibration
+int sensorValue = 0;         // the sensor value
+int sensorMin = 1023;        // minimum sensor value
+int sensorMax = 0;           // maximum sensor value
+
+// Runtime vars
+int sensorReading ;          // Analog value
+int thisPitch ;              // Note to play
+
+void setup() {
+  // initialize serial communications (for debugging only):
+  Serial.begin(9600);
+    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:
+  sensorReading = analogRead(sensorPin);
+  // print the sensor reading so you know its range
+  Serial.println(sensorReading);
+  // map the analog input range (in this case, 400 - 1000 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:
+  thisPitch = map(sensorReading, sensorMin, sensorMax, 220, 3500);
+
+  // play the pitch:
+  if (sensorReading < sensorMax -50) {
+  tone(ledPin, thisPitch, 10);
+  }
+  delay(1);        // delay in between reads for stability
+}