Повторитель тона сигнала
Kerakli kompanentlar:
Arduino Uno
2 ta resistor
Pezoelement
Fotorezistor
2-listing
int sensorReading = 0;
void setup()
{
pinMode(A0, INPUT);
Serial.begin(9600);
pinMode(9, OUTPUT);
}
void loop()
{
// analog port qiymatni o’qib olish
sensorReading = analogRead(A0);
// sensorReadingni chop etish
Serial.println(sensorReading);
// map funksiyasi sensorReading ni qiymatini 0, 1023 qiymatdagi raqamli qiymatidan 36 -84 oralig’ini qabul qiladi.
tone(9, 440 * pow(2.0, (constrain(int(map(sensorReading, 0, 1023, 36, 84)), 35, 127) - 57) / 12.0), 1000);
delay(10); //delay keying amalgacha kutish
}
Воспроизведение мелодии
Kerakli kompanentlar:
Arduino Uno
Buzzer (kichik pezoelement)
3-listing
#define NOTE_C4 262 // raqamli chastota
#define NOTE_G3 196
#define NOTE_A3 220
#define NOTE_B3 247
#define NOTE_C4 262
// chastotalar massivi
int melody[] = {
NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4
};
// chastota davomiyligi
int noteDurations[] = {
4, 8, 8, 4, 4, 4, 4, 4
};
void setup() {
// notalarni tartiblash
for (int thisNote = 0; thisNote < 8; thisNote++) {
//1000 ni 8 yoki 4 ga bo’lib notalar orasiga pauza qo’yish
int noteDuration = 1000 / noteDurations[thisNote];
tone(8, melody[thisNote], noteDuration);
// har bir notadan keyin oraga pauza o’rnatish
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// 8-pinni o’chirish
noTone(8);
}
}
void loop() {
// no need to repeat the melody.
}
Мультивоспроизведение
Kerakli kompanentlar:
Arduino Uno
3 ta pezoelement
3 ta rezistor
4-listing
void setup()
{
pinMode(8, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
void loop()
{
// 8- pinni o’chirish
noTone(8);
// 6- pinni 200 sekund 880 Hz chastota bn yoqish
tone(6, 880, 200); // play tone 69 (A5 = 880 Hz)
delay(200); //200 s kutish
// 6-pinni o’chirish
noTone(6);
// 7-pinni 500 sekund 988 Hz chastota bn yoqish
tone(7, 988, 500); // play tone 71 (B5 = 988 Hz)
delay(500); // 500 sekund kutish
// 7-pinni o’chirish
noTone(7);
// 8-pinni 300 sekundga 1047 Hz chastota bn yoqish
tone(8, 1047, 300); // play tone 72 (C6 = 1047 Hz)
delay(300); // 300 sekund kutish
noTone(8);
}
Xulosa
Men bu labaratoriya ishini bajarish davomida Tinkercadda 4 xil pezoelementni - “Тоновая клавиатура”, “Повторитель тона сигнала”, “Воспроизведение мелодии”, “Мультивоспроизведение ” larning ishlash jrayoni bilan tanishib chiqdim.
Nazorat savollari.
tone() haqida ma`lumot bering?
tone() raqamli 3-11 gacha (Megadan tashqari platalarda) pin bilan ishlovchi funksiya bo’lib, noTone() buyrug’i uchramaguncha davom etishi mumkin. Uni ohanglarini ijro etish uchun buzzer (kichik pezoelement) yoki pezoelementga pingni birlashtirish kerak. 31 Hz chastotadan past chastota qabul qilmaydi. Uni 2 xil yozish mumkin
tone(ping raqami, nota chastotasi) bunda funksiya noTone(ping) chaqirilguncha davom etadi.
tone(ping raqami, nota chastotasi, ijro vaqti) bunda funksiya “ijro vaqti” tugaguncha davom etadi.
Ping raqami – analog ping bo’lib, Buzzer yoki pezoelementga birlashtirilgan.
Nota chastotasi- 31 Hz dan yuqori chastotalarni qabul qiladi.
Ijro vaqti – millisekundda kutish
Pezonurlatgich nima?
Pezoelement bu 0 va 5 V kuchlanishni analog qiymatini 0-1023 gacha analog portdan o’qib uni tebranish orqali ohang hozil qiladi. Pezosdan ham ohanglarni ijro etish, ham ohanglarni aniqlash uchun foydalanish mumkin.
Pezonurlatgich qanday turlari bor?
Pezoelement va buzzer(kichik pezoelement)
Do'stlaringiz bilan baham: |