*/
+// 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
}
*/
+// 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);
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
+}
*/
--- /dev/null
+/*************************************************
+ * 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
+
+
--- /dev/null
+// 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
--- /dev/null
+/*************************************************
+ * 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
+
+
--- /dev/null
+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;
+}
+
--- /dev/null
+
+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;
+}
+