Mundarija:

Arduino shovqin mashinasi: 4 qadam
Arduino shovqin mashinasi: 4 qadam

Video: Arduino shovqin mashinasi: 4 qadam

Video: Arduino shovqin mashinasi: 4 qadam
Video: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, Noyabr
Anonim
Arduino shovqin mashinasi
Arduino shovqin mashinasi
Arduino shovqin mashinasi
Arduino shovqin mashinasi
Arduino shovqin mashinasi
Arduino shovqin mashinasi

Men eski P.ni buzib tashlaganimda, kichkina karnay topdim. Qayta ishlash uchun va men Arduino Tone () funktsiyasidan foydalanib, bu qanday ko'rinishini ko'rishni o'yladim. Men maydonni boshqarish uchun 10Ω potentsiometrdan boshladim va shovqin qila boshladim. Tone () funktsiyasi oddiy zarba naqshini ishlatadi. U turli xil chastotalarda tovushni kvadrat to'lqin shaklida yoqadi va o'chiradi. Menda yana ikkita potentsiometr yotardi, shuning uchun men ularni qo'shib, ohang davomiyligini nazorat qilish uchun ishlatardim. Biri ohang uzunligini nazorat qilish uchun, ikkinchisi ohanglar orasidagi bo'sh joyni boshqarish uchun. Bu asosan boshqa kvadrat to'lqin naqshidan foydalanadi, lekin ancha past chastotada. Ushbu sxemadan foydalanib, siz turli xil shovqinlarga erishishingiz mumkin. U piezo -signal bilan ham yaxshi ishlaydi, lekin karnayning bosh javobi yo'q.

1 -qadam: Sizga kerak bo'ladigan qismlar

Arduino Uno

Non paneli va o'tish simlari

1 Kichik karnay yoki Piezo ovozli signal

1 tugmachali tugma

3 10Ω Potentsiometrlar

12 22Ω qarshilik

1 10 kΩ qarshilik

2 -qadam: O'chirish sxemasini yarating

O'chirish davri
O'chirish davri

Non panelini Arduino 5V pin va GND ga ulang. Pushbutton tugmachasini non panelining eng o'ng yoki chap tomoniga joylashtiring va 5 V ga ulang va 10 kΩ qarshilik yordamida erga ulang. Arduino -dagi 2 -pinli kalit zanjiridan simni ulang.

Non taxtaning boshqa tomonida karnay/piezo zanjirini 5v ga o'rnating va 220Ω rezistor yordamida erga ulang. Bu rezistor tokni boshqaradi va shu bilan ovozni boshqaradi; baland yoki pastroq ovoz uchun bu erda turli rezistorlarni sinab ko'rishingiz mumkin.

O'zingizning potentsiometrlaringizni non taxtasining o'rtasiga joylashtiring, bu esa tugmalar bilan skripka qilish uchun etarli joy beradi. Har bir qozon 5V ga ulangan bo'lishi kerak va har birining markaziy pinlari A0, A1 va A2 analog pinlariga ulangan bo'lishi kerak.

3 -qadam: Kod

Potentsiometr yoki qozon - bu Arduino -ga ulanganida 0 dan 1023 gacha bo'lgan qiymatni qaytaradigan o'zgaruvchan qarshilik. Biz bu qiymatlarni o'z ehtiyojlarimizga mos ravishda o'zgartirish uchun map () funktsiyasidan foydalanamiz. Map () funktsiyasi beshta dalilni o'z ichiga oladi va bizda oqilona ovoz chiqarilishi uchun diapazonni 220 dan 2200 gacha o'zgartirish kerak.

Funktsiya shunday ko'rinadi:

xarita (qozon, 0, 1023, 220, 2200);

Siz yuqori va past chastotali ohanglar uchun oxirgi ikkita qiymat bilan o'ynashingiz mumkin, faqat itingizni xafa qilmaslik uchun ehtiyot bo'ling.

Noise_Machine.ino

/* Analog kirishga ulangan uchta potentsiometr yordamida shovqin mashinasi
va piezo yoki kichik karnay. Tugma shovqinni, potansiyometrlarni yoqadi
Arduino tone () funktsiyasi va ikkita kechikish yordamida maydonni boshqaring
har bir ohang va orasidagi uzunlikni boshqaradigan qiymatlar
har bir ohang. Potentsiometrlar analog qiymatlarni beradi, ular o'zgartiriladi
map () funktsiyasidan foydalanib, sizga mos keladigan kattaroq yoki kichikroq diapazonlarga bo'ling
musiqiy did.
Bu kod jamoat mulki hisoblanadi.
Mett Tomas, 2019-04-05
*/
constint tugmasiPin = 2; // 2 tugmachasi
constint dinamik = 9; // 9 -pinli dinamik yoki piezo
int tugmasiState = 0; // Tugma uchun o'zgaruvchilar
int potZero; // va potentsiometrlar
int potOne;
int potTwo;
voidsetup () {
pinMode (9, OUTPUT); // Karnay/piezo chiqish pimi
}
voidloop () {
buttonState = digitalRead (buttonPin); // Tugma holatini o'qing
potZero = analogRead (A0); // Analog qiymatlarni o'qish uchun o'zgaruvchilar
potOne = analogRead (A1);
potTwo = analogRead (A2);
int htz = xarita (potZero, 0, 1023, 0, 8800); // Analog o'qishni xaritaga joylashtiring
int high = map (potOne, 0, 1023, 0, 100); // yangi raqamlar diapazoni va yaratish
int low = map (potTwo, 0, 1023, 0, 100); // yangi o'zgaruvchilar
if (buttonState == HIGH) {// Agar tugma bosilsa …
ohang (karnay, htz); // Ovoz yoqildi
kechikish (yuqori); // Ohangning uzunligi
noTone (karnay); // Ovoz o'chir
kechikish (past); // Keyingi ohanggacha vaqt
} boshqa {
noTone (karnay); // Agar tugma qo'yib yuborilsa, ohang yo'q
}
}

rawNoise_Machine.ino ni GitHub ❤ tomonidan joylashtirilganini ko'ring

4 -qadam: Oxir

Demak, hamma narsa shu. Koddagi qiymatlar bilan o'ynang, ko'proq qozon /tugma qo'shing va yana nimani boshqarishingiz mumkinligini ko'ring. Agar xato qilgan bo'lsam, menga xabar bering va sizga musiqa yoqadi deb umid qilaman.

Tavsiya: