]> git.piffa.net Git - sketchbook_andrea/commitdiff
piezo
authorAndrea Manni <andrea@piffa.net>
Thu, 23 Apr 2015 15:37:57 +0000 (17:37 +0200)
committerAndrea Manni <andrea@piffa.net>
Thu, 23 Apr 2015 15:37:57 +0000 (17:37 +0200)
basic/analog_input/photo_7_tonePitchFollower/photo_7_tonePitchFollower.ino
piezo/piezo_1_tonePitchFollower/piezo_1_tonePitchFollower.ino
piezo/piezo_2_keyboard/pitches.h [new file with mode: 0644]
piezo/piezo_4_1_james_bond/piezo_4_1_james_bond.ino [new file with mode: 0644]
piezo/piezo_4_1_james_bond/pitches.h [new file with mode: 0644]
programming/functions/argomenti_2/argomenti_2.ino [new file with mode: 0644]
programming/functions/scope_1/scope_1.ino [new file with mode: 0644]

index e74c7b343449a5c366c457ebb127c5887d99dcc4..dcfc5b73a5326c3ce0111c73ae9c6d34cfd2d462 100644 (file)
@@ -18,25 +18,55 @@ This example code is in the public domain.
  
  */
 
+// 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(A0);
+  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, 400, 1000, 120, 1500);
+  int thisPitch = map(sensorReading, sensorMin, sensorMax, 220, 3500);
 
   // play the pitch:
-  tone(9, thisPitch, 10);
+  if (sensorReading < sensorMax -50) {
+  tone(ledPin, thisPitch, 10);
+  }
   delay(1);        // delay in between reads for stability
 }
 
index 5ae3099928d38078368e9335485f64da745cfc6a..9ceda24d32cdabfc4475e6f7f51be22477f55990 100644 (file)
@@ -19,6 +19,11 @@ This example code is in the public domain.
  */
 
 
+// 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
+
+
 void setup() {
   // initialize serial communications (for debugging only):
   Serial.begin(9600);
@@ -26,28 +31,105 @@ void setup() {
 
 void loop() {
   // read the sensor:
-  int sensorReading = analogRead(A0);
+  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, 400, 1000, 120, 1500);
+  int thisPitch = map(sensorReading, sensorMin, sensorMax, 220, 3500);
 
   // play the pitch:
-  tone(9, thisPitch, 10);
+  tone(ledPin, thisPitch, 10);
   delay(1);        // delay in between reads for stability
 }
 
 /* Domande:
 1. Modificare l'estensione del range di frequenza del piezo
 tra i valori 20hz e 20.000hz.
-
-2. Modificare lo script in modo che vengano emessi suoni solo quando
+2. Inserire l'auto calibrazione
+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_2_keyboard/pitches.h b/piezo/piezo_2_keyboard/pitches.h
new file mode 100644 (file)
index 0000000..55c7d54
--- /dev/null
@@ -0,0 +1,95 @@
+/*************************************************
+ * Public Constants
+ *************************************************/
+
+#define NOTE_B0  31
+#define NOTE_C1  33
+#define NOTE_CS1 35
+#define NOTE_D1  37
+#define NOTE_DS1 39
+#define NOTE_E1  41
+#define NOTE_F1  44
+#define NOTE_FS1 46
+#define NOTE_G1  49
+#define NOTE_GS1 52
+#define NOTE_A1  55
+#define NOTE_AS1 58
+#define NOTE_B1  62
+#define NOTE_C2  65
+#define NOTE_CS2 69
+#define NOTE_D2  73
+#define NOTE_DS2 78
+#define NOTE_E2  82
+#define NOTE_F2  87
+#define NOTE_FS2 93
+#define NOTE_G2  98
+#define NOTE_GS2 104
+#define NOTE_A2  110
+#define NOTE_AS2 117
+#define NOTE_B2  123
+#define NOTE_C3  131
+#define NOTE_CS3 139
+#define NOTE_D3  147
+#define NOTE_DS3 156
+#define NOTE_E3  165
+#define NOTE_F3  175
+#define NOTE_FS3 185
+#define NOTE_G3  196
+#define NOTE_GS3 208
+#define NOTE_A3  220
+#define NOTE_AS3 233
+#define NOTE_B3  247
+#define NOTE_C4  262
+#define NOTE_CS4 277
+#define NOTE_D4  294
+#define NOTE_DS4 311
+#define NOTE_E4  330
+#define NOTE_F4  349
+#define NOTE_FS4 370
+#define NOTE_G4  392
+#define NOTE_GS4 415
+#define NOTE_A4  440
+#define NOTE_AS4 466
+#define NOTE_B4  494
+#define NOTE_C5  523
+#define NOTE_CS5 554
+#define NOTE_D5  587
+#define NOTE_DS5 622
+#define NOTE_E5  659
+#define NOTE_F5  698
+#define NOTE_FS5 740
+#define NOTE_G5  784
+#define NOTE_GS5 831
+#define NOTE_A5  880
+#define NOTE_AS5 932
+#define NOTE_B5  988
+#define NOTE_C6  1047
+#define NOTE_CS6 1109
+#define NOTE_D6  1175
+#define NOTE_DS6 1245
+#define NOTE_E6  1319
+#define NOTE_F6  1397
+#define NOTE_FS6 1480
+#define NOTE_G6  1568
+#define NOTE_GS6 1661
+#define NOTE_A6  1760
+#define NOTE_AS6 1865
+#define NOTE_B6  1976
+#define NOTE_C7  2093
+#define NOTE_CS7 2217
+#define NOTE_D7  2349
+#define NOTE_DS7 2489
+#define NOTE_E7  2637
+#define NOTE_F7  2794
+#define NOTE_FS7 2960
+#define NOTE_G7  3136
+#define NOTE_GS7 3322
+#define NOTE_A7  3520
+#define NOTE_AS7 3729
+#define NOTE_B7  3951
+#define NOTE_C8  4186
+#define NOTE_CS8 4435
+#define NOTE_D8  4699
+#define NOTE_DS8 4978
+
+
diff --git a/piezo/piezo_4_1_james_bond/piezo_4_1_james_bond.ino b/piezo/piezo_4_1_james_bond/piezo_4_1_james_bond.ino
new file mode 100644 (file)
index 0000000..51ff74c
--- /dev/null
@@ -0,0 +1,53 @@
+// From: http://garagelab.com/profiles/blogs/how-to-use-tone-function-arduino-playing-the-james-bond-theme
+
+#include "pitches.h"
+#define NO_SOUND 0 // make the rests in music
+
+//array of notes
+int melody[] = {
+  /*NOTE_G4,NOTE_G4,NO_SOUND,NOTE_G4,NOTE_G4,NO_SOUND,NOTE_G4,NOTE_G4,NOTE_G4,NOTE_G4,NOTE_G4,
+   NOTE_B3,NOTE_G3,NOTE_C4,NOTE_G3,NOTE_CS4,NOTE_G3,NOTE_C4,NOTE_G3,NOTE_B3,NOTE_G3,NOTE_C4,NOTE_G3,NOTE_CS4,NOTE_G3,NOTE_C4,NOTE_G3,
+   NOTE_E4,NOTE_F4,NOTE_F4,NOTE_F4,NOTE_F4,NOTE_E4,NOTE_E4,NOTE_E4,
+   NOTE_E4,NOTE_G4,NOTE_G4,NOTE_G4,NOTE_G4,NOTE_E4,NOTE_E4,NOTE_E4,*/
+   //Introduction
+  NOTE_E4,NOTE_F4,NOTE_F4,NOTE_F4,NOTE_F4,NOTE_E4,NOTE_E4,NOTE_E4,
+  NOTE_E4,NOTE_G4,NOTE_G4,NOTE_G4,NOTE_G4,NOTE_E4,NOTE_E4,NOTE_E4,
+  NOTE_E4,NOTE_F4,NOTE_F4,NOTE_F4,NOTE_F4,NOTE_E4,NOTE_E4,NOTE_E4,
+  NOTE_E4,NOTE_G4,NOTE_G4,NOTE_G4,NOTE_G4,NOTE_E4,NOTE_E4,NOTE_E4,
+  NOTE_DS5,NOTE_D5,NOTE_B4,NOTE_A4,NOTE_B4,
+  NOTE_E4,NOTE_G4,NOTE_DS5,NOTE_D5,NOTE_G4,NOTE_B4,
+  NOTE_B4,NOTE_FS5,NOTE_F5,NOTE_B4,NOTE_D5,NOTE_AS5,
+  NOTE_A5,NOTE_F5,NOTE_A5,NOTE_DS6,NOTE_D6,NO_SOUND
+};
+
+// note duration: 1 = whole note, 2 = half note, 4 = quarter note, 8 = eighth note, etc.
+int noteDurations[] = {
+  /*8,8,2,8,8,2,16,8,16,8,8,
+   2,4,2,4,2,4,2,4,2,4,2,4,2,4,2,4,
+   8,16,16,8,4,8,8,8,
+   8,16,16,8,4,8,8,8,*/
+  8,16,16,8,4,8,8,8,
+  8,16,16,8,4,8,8,8,
+  8,16,16,8,4,8,8,8,
+  8,16,16,8,4,8,8,8,
+  8,2,8,8,1,
+  8,4,8,4,8,8,
+  8,8,4,8,4,8,
+  4,8,4,8,3
+};
+
+int pace = 1450; // change pace of music("speedy")
+void setup() {
+  for (int Note = 0; Note <54; Note++) {//counter of Notes (54 limit the array)
+    int duration = pace/noteDurations[Note];//Adjust duration with the pace of music
+    tone(9, melody[Note],duration); //Play note
+
+// to distinguish the notes, set a minimum time between them.
+    delay(duration*1.2);
+  }
+}
+
+void loop() {
+  //to repeat song, push reset button.
+}
+//End of Sketch
diff --git a/piezo/piezo_4_1_james_bond/pitches.h b/piezo/piezo_4_1_james_bond/pitches.h
new file mode 100644 (file)
index 0000000..55c7d54
--- /dev/null
@@ -0,0 +1,95 @@
+/*************************************************
+ * Public Constants
+ *************************************************/
+
+#define NOTE_B0  31
+#define NOTE_C1  33
+#define NOTE_CS1 35
+#define NOTE_D1  37
+#define NOTE_DS1 39
+#define NOTE_E1  41
+#define NOTE_F1  44
+#define NOTE_FS1 46
+#define NOTE_G1  49
+#define NOTE_GS1 52
+#define NOTE_A1  55
+#define NOTE_AS1 58
+#define NOTE_B1  62
+#define NOTE_C2  65
+#define NOTE_CS2 69
+#define NOTE_D2  73
+#define NOTE_DS2 78
+#define NOTE_E2  82
+#define NOTE_F2  87
+#define NOTE_FS2 93
+#define NOTE_G2  98
+#define NOTE_GS2 104
+#define NOTE_A2  110
+#define NOTE_AS2 117
+#define NOTE_B2  123
+#define NOTE_C3  131
+#define NOTE_CS3 139
+#define NOTE_D3  147
+#define NOTE_DS3 156
+#define NOTE_E3  165
+#define NOTE_F3  175
+#define NOTE_FS3 185
+#define NOTE_G3  196
+#define NOTE_GS3 208
+#define NOTE_A3  220
+#define NOTE_AS3 233
+#define NOTE_B3  247
+#define NOTE_C4  262
+#define NOTE_CS4 277
+#define NOTE_D4  294
+#define NOTE_DS4 311
+#define NOTE_E4  330
+#define NOTE_F4  349
+#define NOTE_FS4 370
+#define NOTE_G4  392
+#define NOTE_GS4 415
+#define NOTE_A4  440
+#define NOTE_AS4 466
+#define NOTE_B4  494
+#define NOTE_C5  523
+#define NOTE_CS5 554
+#define NOTE_D5  587
+#define NOTE_DS5 622
+#define NOTE_E5  659
+#define NOTE_F5  698
+#define NOTE_FS5 740
+#define NOTE_G5  784
+#define NOTE_GS5 831
+#define NOTE_A5  880
+#define NOTE_AS5 932
+#define NOTE_B5  988
+#define NOTE_C6  1047
+#define NOTE_CS6 1109
+#define NOTE_D6  1175
+#define NOTE_DS6 1245
+#define NOTE_E6  1319
+#define NOTE_F6  1397
+#define NOTE_FS6 1480
+#define NOTE_G6  1568
+#define NOTE_GS6 1661
+#define NOTE_A6  1760
+#define NOTE_AS6 1865
+#define NOTE_B6  1976
+#define NOTE_C7  2093
+#define NOTE_CS7 2217
+#define NOTE_D7  2349
+#define NOTE_DS7 2489
+#define NOTE_E7  2637
+#define NOTE_F7  2794
+#define NOTE_FS7 2960
+#define NOTE_G7  3136
+#define NOTE_GS7 3322
+#define NOTE_A7  3520
+#define NOTE_AS7 3729
+#define NOTE_B7  3951
+#define NOTE_C8  4186
+#define NOTE_CS8 4435
+#define NOTE_D8  4699
+#define NOTE_DS8 4978
+
+
diff --git a/programming/functions/argomenti_2/argomenti_2.ino b/programming/functions/argomenti_2/argomenti_2.ino
new file mode 100644 (file)
index 0000000..9be5904
--- /dev/null
@@ -0,0 +1,23 @@
+void setup(){
+  Serial.begin(9600);
+}
+
+void loop() {
+int latoA = 4;
+int latoB = 3 ;
+
+Serial.print("Area rettangolo = ");
+Serial.println(calcolaArea(latoA, latoB));
+
+
+Serial.flush();
+exit(0);
+}
+
+// Funzioni
+
+int calcolaArea(int a, int b){
+  int area = a * b ;
+  return area;
+}
+
diff --git a/programming/functions/scope_1/scope_1.ino b/programming/functions/scope_1/scope_1.ino
new file mode 100644 (file)
index 0000000..ae93e8f
--- /dev/null
@@ -0,0 +1,26 @@
+
+boolean sposato = 1 ;
+void setup(){
+  Serial.begin(9600);
+}
+
+void loop() {
+Serial.print("In standard mode sposato = ");
+Serial.println(sposato);
+
+Serial.print("In vacanza mode sposato = ");
+Serial.println(inVacanza(sposato));
+
+Serial.print("Tornato a casa sposato = ");
+Serial.println(sposato);
+Serial.flush();
+exit(0);
+}
+
+// Funzioni
+
+boolean inVacanza(boolean sposato){
+  sposato = 0 ;
+  return sposato;
+}
+