Съдържание:

Arduino - Пиезо пиано с три бутона: 4 стъпки
Arduino - Пиезо пиано с три бутона: 4 стъпки

Видео: Arduino - Пиезо пиано с три бутона: 4 стъпки

Видео: Arduino - Пиезо пиано с три бутона: 4 стъпки
Видео: Создание автомата с помощью Micro:bit 2024, Ноември
Anonim
Image
Image

Пианото с три бутона е проект за начинаещи с известен опит в използването на Arduino.

Бях побъркан в опитите да създам това, докато играех с пиезо зумер за първи път. Беше толкова силно! Опитвайки се да разбера различни методи, за да направя зумера по -тих и да изпробвам различни честоти, използвайки функцията tone () и noTone (), осъзнах, че може да е забавно да се опитам да смеся пиезо зумера заедно с другите ми любими компоненти на моя Arduino комплект: бутони и потенциометър.

Необходимите материали включват:

  • 1 Arduino
  • 1 Платформа
  • 1 USB кабел
  • Джъмперни проводници (различни цветове)
  • 1 330 Kilo-ohm резистор
  • 1 пиезо зумер
  • 3 бутони
  • 1 Потенциометър

Стъпка 1: Пиезо зумер

Пиезо зумер
Пиезо зумер

За да започнете, настройте пиезото на дъската на Arduino. Едната му страна (по -късата страна на крака) трябва да тича към земята. Другата страна (по -дългата страна) трябва да се свърже с цифров входен щифт. Избрах да го свържа към 8.

Стъпка 2: Натиснете бутони

Бутони за натискане
Бутони за натискане
Бутони за натискане
Бутони за натискане

След това е време да настроите бутоните. Подобно на пиезото, бутоните трябва да се свързват към земята и към цифров входен щифт.

Стъпка 3: Потенциометър

Потенциометър
Потенциометър
Потенциометър
Потенциометър

Последната стъпка от физическото изграждане е потенциометърът. Потенциометрите се предлагат в няколко различни форми. Ще използваме потенциометъра като делител на напрежение, така че и трите му крака трябва да бъдат свързани.

Десен крак: Отрицателна лента (на земята)

Среден крак: аналогов извод 0

Ляв крак: Положителна лента

Стъпка 4: Кодирайте

Докато изписвах код за този проект, се позовах на информация за няколко специфични типа функции:

тон ()

noTone () (Не използвах този. Вместо това зададох честотата на "0".)

map ()

Друга прекрасна справка за първоначалните потребители на Piezo Buzzers можете да намерите тук. Въпреки че идеята за промяна на звука на пиезо зумера изглежда проста, в началото може да бъде малко поразителна!

Функцията tone () може да бъде разделена на три части:

  1. ПИН (щифтът, към който е свързан пиезо зумерът)
  2. Честота (честотата на звука в херци)
  3. Продължителност (продължителността на звука, даден в милисекунди)

По принцип изглежда така: тон (щифт, честота, продължителност). Третият компонент (продължителност) не е задължителен, докато другите два са необходими за функционирането на зумера. Компонентът "честота" на тоналната функция е това, което може да се мисли като "звук", който се произвежда от зумера.

Ще забележите също, че кодът съдържа още два бита код. Има някои инструкции if/else, настроени да казват на Arduino какво да прави, ако се натиснат различни бутони, както и да го настроят с "честота = 0" в ситуации, когато нито един от бутоните не се натиска. В рамките на операторите if/else функциите map () се използват за картографиране на скалата на потенциометъра върху набор от честоти. Те могат да бъдат променени! Играйте с различни честотни стойности, за да видите какви различни звуци можете да получите от пиезото.

Вижте кода, който използвах за създаването на пиано с три бутона тук или проверете по-долу.

int piezoPin = 8; // Настройване на щифт, свързан с Piezo.

int sensorPin = 0; // Настройте щифт, свързан към сензора (потенциометъра). int sensorValue = 0;

int button1 = 5; // Настройте входните щифтове, свързани с бутоните.

бутон int2 = 4; бутон int3 = 3;

int честота = 0;

const int delayTime = 500; // Настройте константа за променливата на времето на забавяне във функцията tone ().

void setup () {

pinMode (button1, INPUT_PULLUP); pinMode (button2, INPUT_PULLUP); pinMode (button3, INPUT_PULLUP); }

void loop () {

sensorValue = analogRead (sensorPin); // Прочетете сензора. // Съпоставете различните стойности на потенциометъра с набор от честоти за всеки от трите бутона. if (digitalRead (button1) == LOW) {честота = карта (sensorValue, 0, 1023, 400, 499); } иначе ако (digitalRead (button2) == LOW) {честота = карта (sensorValue, 0, 1023, 500, 599); } else if (digitalRead (button3) == LOW) {честота = карта (sensorValue, 0, 1023, 600, 699); } else {честота = 0; } тон (пиезоПин, честота, delayTime); // Настройване на функциите tone () с променливи. }

Препоръчано: