Мазмуну:

Arduino ызы -чуу машинасы: 4 кадам
Arduino ызы -чуу машинасы: 4 кадам

Video: Arduino ызы -чуу машинасы: 4 кадам

Video: Arduino ызы -чуу машинасы: 4 кадам
Video: Зачем автоэлектрику Ардуино? Джойстик магнитолы на Ардуино, считыватель ик пультов на карту памяти. 2024, Ноябрь
Anonim
Arduino ызы -чуу машинасы
Arduino ызы -чуу машинасы
Arduino ызы -чуу машинасы
Arduino ызы -чуу машинасы
Arduino ызы -чуу машинасы
Arduino ызы -чуу машинасы

Мен кичинекей спикерди эски ПКны бузуп жатып таптым. кайра иштетүү үчүн жана Arduino Tone () функциясын колдонуу кандай угулганын көрөм деп ойлогом. Мен чайырды көзөмөлдөө үчүн 10Ω потенциометр менен баштадым жана бир аз ызы -чуу кыла баштадым. Tone () функциясы жөнөкөй импульстун үлгүсүн колдонот. Бул төрт бурчтуу толкундуу түрдө ар кандай жыштыкта үндү күйгүзүп жана өчүрөт. Менде дагы эки потенциометр бар болчу, ошондуктан мен аларды кошуп, обонун узактыгын көзөмөлдөө үчүн колдондум. Бири обондун узундугун, экинчиси обондордун ортосундагы үнсүз боштукту көзөмөлдөө үчүн. Бул негизинен башка квадрат толкун үлгүсүн колдонуп жатат, бирок бир кыйла төмөн жыштыкта. Бул схема менен ызы -чуунун жакшы түрүнө жетише аласыз. Бул пьезо сигнал менен жакшы иштейт, бирок спикердин бас реакциясы жок.

1 -кадам: Сизге керектүү бөлүктөр

Arduino Uno

Нан жана секирүүчү зымдар

1 Чакан динамик же Piezo сигнал

1 баскыч баскычы

3 10Ω Потенциометрлер

12 22Ω каршылык

1 10kΩ каршылык

2 -кадам: Районду куруу

Circuit куруу
Circuit куруу

Нан тактасын Arduino 5V пинге жана GNDге туташтырыңыз. Pushbutton которуштургучун нан табактын эң оң же сол жагына коюп, 5V жана жерге 10kΩ каршылыгын колдонуп туташтырыңыз. Ардуинодогу 2 -пинге туташтыруу чынжырынан зымды туташтырыңыз.

Нан тактайынын экинчи тарабында динамикти/пьезо схемасын 5v жана жерге 220Ω каршылыгын колдонуп орнотуңуз. Бул резистор агымды көзөмөлдөйт, ошону менен көлөмүн көзөмөлдөйт; жогорку же төмөнкү көлөм үчүн бул жерде ар кандай резисторлорду сынап көрсөңүз болот.

Потенциометрлерди панелдин ортосуна коюп, топчолор менен скрипкага жетиштүү орун бериңиз. Ар бир идиш 5V жана жерге жана борбордук казыктарга аналогдук A0, A1 жана A2 туташтыргычтарга туташтырылышы керек.

3 -кадам: Кодекс

Потенциометр же казан - бул өзгөрүлмө каршылык, ал Arduino менен туташканда 0 менен 1023 ортосундагы маанини кайтарат. Биз map () функциясын колдонуп, бул баалуулуктарды өзүбүздүн муктаждыктарыбызга ылайыкташтырабыз. Map () функциясы беш аргументти талап кылат жана биздин учурда акылга сыярлык үн чыгаруу үчүн диапазонду 220дан 2200гө чейин кайра картага түшүрүүбүз керек.

Функция мындай көрүнөт:

карта (казан, 0, 1023, 220, 2200);

Сиз жогорку жана төмөнкү жыштык обондорунун акыркы эки мааниси менен ойной аласыз, жөн эле этти капа кылбаңыз.

Noise_Machine.ino

/* Аналогдук кирүүлөргө туташкан үч потенциометрди колдонгон ызы -чуу машинасы
жана пьезо же кичине спикер. Бир баскыч ызы -чууну, потенциометрди күйгүзөт
Arduino tone () функциясын колдонуп, эки кечигүү менен чайырды башкарыңыз
ар бир обондун узундугун жана ортосундагы узундугун көзөмөлдөгөн баалуулуктар
ар бир тон. Потенциометрлер аналогдук маанилерди беришет, алар өзгөртүлөт
map () функциясын колдонуу менен өзүңүзгө ылайыктуу чоң же кичине диапазондорду колдонуңуз
музыкалык табит.
Бул код коомдук доменде.
Мэтт Томас 2019-04-05
*/
constint buttonPin = 2; // 2 -баскыч
constint баяндамачы = 9; // 9 -пиндеги спикер же пьезо
int buttonState = 0; // Баскыч үчүн өзгөрмөлөр
int potZero; // жана потенциометрлер
int potOne;
int potTwo;
voidsetup () {
pinMode (9, OUTPUT); // Динамик/пьезо чыгаруу пин
}
voidloop () {
buttonState = digitalRead (buttonPin); // Баскычтын абалын окуңуз
potZero = analogRead (A0); // Аналогдук баалуулуктарды окуу үчүн өзгөрмөлөр
potOne = analogRead (A1);
potTwo = analogRead (A2);
int htz = карта (potZero, 0, 1023, 0, 8800); // Аналогдук окууларды картага түшүрүү
int high = map (potOne, 0, 1023, 0, 100); // жаңы сан диапазондору жана түзүү
int low = карта (potTwo, 0, 1023, 0, 100); // жаңы өзгөрмөлөр
if (buttonState == HIGH) {// Эгерде баскыч басылса…
тон (спикер, htz); // Үн менен
кечигүү (жогорку); // Тон узундугу
noTone (спикер); // Үнүң өч
кечигүү (төмөн); // Кийинки обонго чейин убакыт
} башка {
noTone (спикер); // Кнопка бошотулганда тон жок
}
}

rawNoise_Machine.ino GitHub тарабынан ❤ менен хостингди көрүү

4 -кадам: Акыры

Демек, мунун баары бар. Коддогу баалуулуктар менен ойноңуз, дагы казандарды /баскычтарды кошуңуз жана дагы эмнени башкара аларыңызды көрүңүз. Эгер мен кандайдыр бир ката кетирген болсом, мага кабарлаңыз жана сизге музыка жагат деп ишенем.

Сунушталууда: