Katse 6

Katse (Buzzer)

/ Meloodiate mängimine.

// Käsk Arduino tone() — noote tihedus.

// Noodid:

// note frequency

// c 262 Hz

// d 294 Hz

// e 330 Hz

// f 349 Hz

// g 392 Hz

// a 440 Hz

// b 494 Hz

// C 523 Hz

const int buzzerPin = 9;

// pikkus on nootide ja pausite koguste summa

const int songLength = 18;

char notes[] = «cdfda ag cdfdg gf «; // tähed on noodid ja tühik on paus

// Rütmi seadistamine.

int beats[] = {1,1,1,1,1,1,4,4,2,1,1,1,1,1,1,4,4,2};

// «tempo» meloodia kiirus. Kui väiksem tempo_ siis suurem kiirus.

int tempo = 150;

void setup()

{

pinMode(buzzerPin, OUTPUT);

}

void loop()

{

int i, duration;

for (i = 0; i < songLength; i++)

{

duration = beats[i] * tempo;

if (notes[i] == ' ') // kui noot puudub

{

delay(duration);

}

else

{

tone(buzzerPin, frequency(notes[i]), duration);

delay(duration);

}

delay(tempo/10); // väike paus nootide vahel

}

while(true){}

}

int frequency(char note)

{

int i;

const int numNotes = 8; // nootide kogus

char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };

int frequencies[] = {262, 294, 330, 349, 392, 440, 494, 523};

// kui noot on olemas, siis tagastame selle tiheduse

for (i = 0; i < numNotes; i++)

{

if (names[i] == note)

{

return(frequencies[i]);

}

}

return(0);

}

Ülesanne 6 Buzzeri kasutamine

Komponendid:

  1. 1 buzzer
  2. 7 juhet
  3. 1 potentsiomeeter

Circuit design Amazing Waasa-Densor — Tinkercad

int tonePin = 13;
const int sensorPin = 0;
int val;
int PinVal = 0;

void setup() {
pinMode(tonePin, OUTPUT);
}

void playMelody(int notes[], int times[], int length) {
for (int i = 0; i < length; i++) {
tone(tonePin, notes[i], times[i]);
delay(times[i]);
}
}

void loop()
{
PinVal = analogRead(sensorPin);
val = map(PinVal,0,1023,0,2);
val = constrain(val,0,2);
Serial.print(val);
Serial.println("");
if (val==0)
{
mars();
}
if (val==1)
{
mario();
}
if (val==2)
{
bumer();
}
}

void mars() {
int notes[] = {
392, 392, 392, 311, 466, 392, 311, 466, 392,
587, 587, 587, 622, 466, 369, 311, 466, 392,
784, 392, 392, 784, 739, 698, 659, 622, 659,
415, 554, 523, 493, 466, 440, 466,
311, 369, 311, 466, 392
};
int times[] = {
350, 350, 350, 250, 100, 350, 250, 100, 700,
350, 350, 350, 250, 100, 350, 250, 100, 700,
350, 250, 100, 350, 250, 100, 100, 100, 450,
150, 350, 250, 100, 100, 100, 450,
150, 350, 250, 100, 750
};
int length = sizeof(notes) / sizeof(notes[0]);
playMelody(notes, times, length);
}

void mario() {
int notes[] = {
1318, 1318, 1318, 1046, 1318, 1568, 784,
1046, 784, 659, 880, 987, 932, 880, 784,
1318, 1568, 1750, 1396, 1568, 1318, 1046, 1174, 987,
1046, 784, 659, 880, 987, 932, 880,
784, 1318, 1568, 1750, 1396, 1568, 1318, 1046, 1174, 987
};
int times[] = {
150, 300, 150, 150, 300, 600, 600,
450, 150, 300, 300, 150, 150, 300, 210,
210, 150, 300, 150, 150, 300, 150, 150, 450,
450, 150, 300, 300, 150, 150, 300,
210, 210, 150, 300, 150, 150, 300, 150, 150, 450
};
int length = sizeof(notes) / sizeof(notes[0]);
playMelody(notes, times, length);
}

void bumer() {
tone(tonePin, 1244, 156);
delay(174);
tone(tonePin, 1479, 625);
delay(694);
delay(521);
tone(tonePin, 1479, 156);
delay(174);
tone(tonePin, 1244, 625);
delay(694);
delay(521);
tone(tonePin, 1661, 156);
delay(174);
tone(tonePin, 1479, 156);
delay(174);
tone(tonePin, 1661, 156);
delay(174);
tone(tonePin, 1479, 156);
delay(174);
tone(tonePin, 1244, 156);
delay(174);
tone(tonePin, 1661, 156);
delay(174);
tone(tonePin, 1244, 156);
delay(174);
tone(tonePin, 1479, 625);
delay(694);
delay(521);
tone;
}

https://drive.google.com/file/d/1np1c666d523VfZuGcSO3-YfXmsZ96o78/view?usp=sharing

Tööpõhimõte:

Bazzer kaotab ühe 3 meloodiast sõltuvalt potentsiomeetri asendist.

Uued funktsioonid:

tone()- Funktsioon.

Tekitab määratud sagedusega (ja 50% tollimaksutsükliga) ruutlaine pin-il. Kestvust saab täpsustada, vastasel juhul jätkub laine kuni helistamiseni noTone (). Pinni saab ühendada piesosummeriga või muu kõlariga, et mängida toone.

sisukord[]- List.

Hoiab endas mitmeid tähendusi hilisemaks kasutamiseks.

kasutamisvõimalused tavaelus.

Äratuskell: Kasuta basser äratuskellana. Ta võib aidata sul hommikul ärgata ja sumisemise heli on meeldivam kui tavaline kõne.
Meeldetuletused: Ühenda basser taimeriga või meeldetuletussüsteemiga. Kui aeg on käes, teeb ta häält, et teid hoiatada.
Turvasüsteem: Paigaldage basser häiresignaaliks majja või kontorisse. Kui uks või aken avaneb, toimib basser, hoiatades teid võimaliku ohu eest.
Lemmikloomade koolitus: Kasuta basserit koera või kassi koolitamiseks. Näiteks võid vajutada basserile, kui loom teeb soovitud toimingu ja see seob heli kiitusega.
Mängud ja mõistatused: Looge mänge või mõistatusi, kus basser mängib võtmerolli. Näiteks võid korraldada «aardeotsingu», kus basseri heli viitab sihtmärgi lähedusele.