Мазмуну:

Ардуино пианино баскыч баскычтары менен: 3 кадам
Ардуино пианино баскыч баскычтары менен: 3 кадам

Video: Ардуино пианино баскыч баскычтары менен: 3 кадам

Video: Ардуино пианино баскыч баскычтары менен: 3 кадам
Video: Как управлять приводом с помощью Arduino - Robojax 2024, Ноябрь
Anonim
Ардуино фортепианосу баскыч баскычтары менен
Ардуино фортепианосу баскыч баскычтары менен
Ардуино пианино баскыч баскычтары менен
Ардуино пианино баскыч баскычтары менен

Түзгөн: Haotian Ye

Обзор

Бул бир октаваны (Do Re Mi Fa So La Si Do) ойнотууга мүмкүндүк берген сегиз баскыч баскычы бар пианино тактасы жана бул бир октава менен сиз каалаган ырларды ойнотууга аракет кыла аласыз. Бул долбоор үчүн сиз баштаардан мурун билишиңиз керек болгон маанилүү билимдер бар.

Биринчиден, биз пианинонун негизги ноталарынын жыштыктарын билишибиз керек.

Жыштыктар төмөндө келтирилген:

Чыгуу - 261 Гц

Кайра - 294 Гц

Ми - 329 Гц

Fa - 349 Гц

Ошентип - 392 Гц

Ла - 440 Гц

Si - 493 Гц

Чыгуу - 523 Гц

Экинчиден, мен сизге Линин Электрондук дүкөнүнөн сатып алууга боло турган тетиктерди колдонуу менен схеманы кантип курууну көрсөтөм. Акыры , Мен Arduino тактасына жүктөлүшү керек болгон кодду түшүндүрөм жана түшүндүрөм.

Сизге керектүү бөлүктөр:

Arduino Uno R3 (Продукт ID: 10997)

USB A B кабели M/M (Продукт ID: 29861)

10K каршылыгы * 8 (Продукт ID: 91516)

Tack Switchтин түрдүү түстөрү * 8 (Продукт ID: 3124, 31242, 31243, 31245, 31246)

Мини спикер (Продукт ID: 41680)

Breadboard (Продукт ID: 106861)

Jumper Wires (Продукт ID: 21801)

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

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

Биринчиден, бардык баскыч баскычтарын жана мини -спикерди нан тактасына бирден киргизиңиз жана аларды бир катарга дал келтириңиз. Андан кийин, ар бир баскыч баскычынын казыктарын жерге туташтырыңыз. Экинчи позитивдүү күч менен ар бир баскычты өчүргүчтөрдүн ортосундагы башка 10к резисторлорду туташтырыңыз. Жана бул тилкени Arduino тактасындагы 2-9-казыктарга туташтырыңыз. Ошондой эле, жерге туташтыргычты жана оң күчтү Arduinoдогу 3.3v пинге туташтырыңыз. Акырында, мини -спикерди Arduinoдогу 10 -пинге туташтырыңыз.

2 -кадам: 2 -кадам: Код жана түшүндүрмө

Төмөндөгү код - мен жазган нерсе

const int black = 2;

const int white = 3;

const int red = 4;

const int green = 5;

const int blue = 6;

const int black2 = 7;

const int green2 = 8;

const int red2 = 9;

const int баяндамачысы = 10; // Ардуинонун сигнал казыктары менен бардык баскыч баскычтарын жана динамикти байланыштырыңыз

int жыштыгы = {262, 294, 330, 349, 392, 440, 493, 523}; // массив бир октаванын бардык жыштыктарын камтыйт

жараксыз орнотуу () {

// орнотуу кодуңузду бул жерге коюңуз, бир жолу иштетүү үчүн:

pinMode (кара, INPUT);

pinMode (ак, INPUT);

pinMode (кызыл, INPUT);

pinMode (жашыл, INPUT);

pinMode (көк, INPUT);

pinMode (black2, INPUT);

pinMode (green2, INPUT);

pinMode (red2, INPUT);

pinMode (динамик, ЧЫГУУ);

тон (спикер, 2000);

Serial.begin (9600);

}

void loop () {

// кайра иштетүү үчүн негизги кодуңузду бул жерге коюңуз:

if (digitalRead (black) == LOW) // "DO" баскычын которгучту басканда

{тон (динамик, жыштык [0], 50);

кечиктирүү (50);

noTone (спикер);}

else if (digitalRead (ак) == LOW) // "RE" баскычын которгучту басканда

{тон (динамик, жыштык [1], 50);

кечиктирүү (50);

noTone (спикер);}

else if (digitalRead (red) == LOW) // "MI" баскычын которгучту басканда

{тон (динамик, жыштык [2], 50);

кечиктирүү (50);

noTone (спикер);}

else if (digitalRead (жашыл) == LOW) // "FA" баскычын которгучту басканда

{тон (динамик, жыштык [3], 50);

кечиктирүү (50);

noTone (спикер);}

else if (digitalRead (blue) == LOW) // "SO" баскычын которгучту басканда

{тон (динамик, жыштык [4], 50);

кечиктирүү (50);

noTone (спикер);}

else if (digitalRead (black2) == LOW) // "LA" баскычын которгучту басканда

{тон (динамик, жыштык [5], 50);

кечиктирүү (50);

noTone (спикер);}

else if (digitalRead (green2) == LOW) // "SI" баскычын которгучту басканда

{тон (динамик, жыштык [6], 50);

кечиктирүү (50);

noTone (спикер);}

else if (digitalRead (red2) == LOW) // "DO" баскычын которгучту басканда

{тон (динамик, жыштык [7], 50);

кечиктирүү (50);

noTone (спикер);}

башка // эч нерсени баспаганда

noTone (спикер);

}

Биринчиден, биз бардык баскыч баскычтарын жана динамикти Arduinoдогу 2ден 10го чейин пин деп жарыялашыбыз керек. Ар бир которгуч бир нотаны билдирет. Андан кийин, бардык жыштыктарды ичине коюу үчүн бир массивди колдонуңуз. Кийинки, If and else билдирүүсү мен Arduinoго кайсы баскыч баскычын басканымды билдирүү үчүн колдонгон нерсем.

Акырында, Arduino тактаңызды компьютериңизге же ноутбугуңузга USB Aдан B кабелине туташтырыңыз. Кодду жүктөөдөн мурун, дагы эле Arduino программасын жүктөп алып, демейки жөндөөнү жасашыңыз керек. Тандоо Куралдар -> Такта -> Arduino/Genuino Uno; Андан кийин биз Arduino тактасына туташкан байланыш портун тандашыбыз керек. Куралдар -> Портту тандаңыз, анан кайсы порттун аты "(Arduino/Genuino Uno) деп белгиленген. Андан кийин, сиз кодду Arduino тактасына жүктөй аласыз.

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