Stap 3: Afwerken van de Code
Kijkend naar de foto, de
als (lightSensorValue < 700 & & soundSensorValue > 800)
vertelt je arduino die als de hoeveelheid licht voelde onder 700 en het geluid wordt gedetecteerd meer dan 800 is dan het lampje zal oplichten
digitalWrite (ledPin, HIGH)
Op hetzelfde moment vertelt het volgende deel van de code je arduino te spelen van de melodie.
voor (int thisNote = 0; thisNote < lengte; thisNote ++) {}
/ / voor het berekenen van de duur van de opmerking, neem een tweede / / gedeeld door het type opmerking. / / bijvoorbeeld kwartaal Opmerking = 1000 / 4, achtste noot = 1000/8, etc. int noteDuration = 1000/noteDurations [thisNote]; Toon (9, melody[thisNote],noteDuration); als (millis() > lastTimechecked + sleepduration) { onderbreking; } / / om te onderscheiden van de notities, stel een minimuminterval tussen hen. / / de nota's duur + 30% schijnt goed te werken: int pauseBetweenNotes = noteDuration * 1.30; Delay(pauseBetweenNotes); / / stop het afspelen van de Toon: noTone(9);* Uw voltooide code is dit: *
int lightSensorPin = 0;
int lightSensorValue = 0;
int ledPin = 13;
int soundSensorPin = 1;
int soundSensorValue = 0;
int speakerPin = 9;
int lengte = 42;
/ / 523 = C, 784 = G, 880 = A, 698 = F, 659 = E, 587 = D
int melodie [] {} =
523 523, 784, 784, 880, 880, 784,
698 698, 659, 659, 587, 587, 523,
784 784, 698, 698, 659, 659, 587,
784 784, 698, 698, 659, 659, 587,
523 523, 784, 784, 880, 880, 784,
698 698, 659, 659, 587, 587, 523
};
/ / Opmerking duur: 4 = kwartnoot, 8 = achtste noot, etc. : unsigned long lastTimechecked = 0; void setup () {} void loop () {} Als (lightSensorValue < 700 & & soundSensorValue > 800) {} int noteDuration = 1000/noteDurations [thisNote]; noTone(9); } }
int noteDurations [] {} =
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2
};
int sleepduration = 18000; //how lange muziek speelt voor
Serial.begin (9600); //serial monitor
pinMode (ledPin, OUTPUT);
}
lightSensorValue = analogRead (lightSensorPin); //read lichtsensor waarde
soundSensorValue = analogRead (soundSensorPin); //read microfoon sensor waarde
Serial.println (soundSensorValue);
lastTimechecked = millis ();
digitalWrite (ledPin, hoge); LED inschakelen
voor (int thisNote = 0; thisNote < lengte; thisNote ++) {}
Toon (9, melody[thisNote],noteDuration);
Als (millis() > lastTimechecked + sleepduration) {}
breken;
}
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
}
vertraging (1000);
}
else {}
digitalWrite (ledPin, laag);