Агуулгын хүснэгт:

Arduino - Piezo Гурван товчлууртай төгөлдөр хуур: 4 алхам
Arduino - Piezo Гурван товчлууртай төгөлдөр хуур: 4 алхам

Видео: Arduino - Piezo Гурван товчлууртай төгөлдөр хуур: 4 алхам

Видео: Arduino - Piezo Гурван товчлууртай төгөлдөр хуур: 4 алхам
Видео: Preview ESP32 synthesizer E-Piano in Arduino with full polyphony (wurlitzer / rhodes oriented sound) 2024, Арваннэгдүгээр
Anonim
Image
Image

Гурван товчлууртай төгөлдөр хуур нь Arduino ашиглах туршлагатай эхлэгчдэд зориулсан төсөл юм.

Би анх удаа пьезо баззераар тоглож байхдаа үүнийг бүтээх гэж санамсаргүйгээр шүүрдэж авлаа. Энэ нь маш чанга байсан! Дуу чимээг чимээгүй болгох янз бүрийн аргуудыг олохыг хичээж, тон () ба noTone () функцийг ашиглан өөр өөр давтамжийг туршиж үзээд пьезо дуугаруулагчийг өөрийн дуртай Arduino -ийн бусад бүрэлдэхүүн хэсгүүдтэй холих нь хөгжилтэй байж магадгүйг ойлгосон. хэрэгсэл: товчлуур ба потенциометр.

Шаардлагатай материалд дараахь зүйлс орно.

  • 1 Ардуино
  • 1 Талхны самбар
  • 1 USB кабель
  • Холбогч утас (янз бүрийн өнгө)
  • 1330 кило-ом эсэргүүцэл
  • 1 Piezo Buzzer
  • 3 товчлуур
  • 1 потенциометр

Алхам 1: Piezo Buzzer

Piezo Buzzer
Piezo Buzzer

Эхлэхийн тулд Arduino -ийн талбар дээр пьезо тохируулна уу. Үүний нэг тал (хөлний богино хэсэг) газарт гүйх хэрэгтэй. Нөгөө тал (урт хөлний тал) нь дижитал оролтын зүүтэй холбогдох шаардлагатай. Би үүнийг 8 руу холбохоор шийдсэн.

Алхам 2: Товчлуурыг дарна уу

Товчлуур дарах
Товчлуур дарах
Товчлуур дарах
Товчлуур дарах

Дараа нь товчлууруудыг тохируулах цаг болжээ. Пьезо шиг товчлуурууд нь газардуулга болон дижитал оролтын зүүтэй холбогдох ёстой.

Алхам 3: Потенциометр

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

Физик бүтцийн эцсийн алхам бол потенциометр юм. Потенциометр хэд хэдэн хэлбэрээр ирдэг. Бид потенциометрийг хүчдэл хуваагч болгон ашиглах тул гурван хөлийг нь холбох шаардлагатай.

Баруун хөл: сөрөг баар (газар)

Дунд хөл: Аналог Pin 0

Зүүн хөл: эерэг баар

Алхам 4: Код

Энэ төслийн кодыг бичихдээ би хэд хэдэн төрлийн функцүүдийн талаархи мэдээллийг иш татсан.

ая ()

noTone () (би үүнийг ашиглаж дуусаагүй. Би давтамжийг нь "0" болгож тохируулсан.)

газрын зураг ()

Piezo Buzzers-ийг анх удаа ашиглаж буй хүмүүст зориулсан бас нэг гайхалтай лавлахыг эндээс авах боломжтой. Пьезо дуугаралтын дууг өөрчлөх санаа энгийн мэт санагдаж байгаа ч энэ нь эхэндээ жаахан хэцүү санагдаж магадгүй юм!

Tone () функцийг гурван хэсэгт хувааж болно.

  1. Пин (пьезо дуугаруулагчийг холбосон зүү)
  2. Давтамж (герц дэх дууны давтамж)
  3. Үргэлжлэх хугацаа (миллисекундээр өгөгдсөн дууны үргэлжлэх хугацаа)

Үндсэндээ иймэрхүү харагдаж байна: ая (зүү, давтамж, үргэлжлэх хугацаа). Гурав дахь бүрэлдэхүүн хэсэг (үргэлжлэх хугацаа) нь заавал байх ёстой, нөгөө хоёр нь дуугаруулагчийг ажиллуулахад шаардлагатай байдаг. Аяны функцийн "давтамж" бүрэлдэхүүн хэсэг нь дуугаруулагчийн гаргаж буй "дуу чимээ" гэж ойлгож болно.

Мөн код нь өөр хоёр бит кодтой болохыг та анзаарах болно. Хэрэв өөр өөр товчлуурууд дарагдсан бол юу хийхээ, мөн "давтамж = 0" -ээр тохируулахын тулд ямар ч товчлуур дарагдаагүй тохиолдолд Arduino -д юу хийх ёстойг зааж өгөх зорилгоор if/else мэдэгдэл байдаг. If/else мэдэгдлийн дотор map () функцуудыг потенциометрийн масштабыг олон давтамж дээр буулгахад ашигладаг. Эдгээрийг өөрчилж болно! Пьезогоос ямар өөр дуу авиа авах боломжтойг харахын тулд өөр өөр давтамжийн утгатай тоглоорой.

Гурван товчлууртай төгөлдөр хуур бүтээхдээ ашиглаж байсан кодыг эндээс эсвэл доороос шалгана уу.

int piezoPin = 8; // Piezo -той холбогдсон зүү тохируулна уу.

int sensorPin = 0; // Мэдрэгчид холбогдсон зүү тохируулах (потенциометр). int sensorValue = 0;

int товчлуур1 = 5; // Товчлууруудтай холбогдсон оролтын зүүг тохируулна уу.

int товчлуур2 = 4; int товч3 = 3;

int давтамж = 0;

const int delayTime = 500; // Tone () функц дахь саатал хугацааны хувьсагчийн тогтмолыг тохируулна уу.

хүчингүй тохиргоо () {

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); } if if (digitalRead (button2) == LOW) {давтамж = газрын зураг (sensorValue, 0, 1023, 500, 599); } else if (digitalRead (button3) == LOW) {давтамж = газрын зураг (sensorValue, 0, 1023, 600, 699); } өөр {давтамж = 0; } ая (piezoPin, давтамж, delayTime); // Tone () функцийг хувьсагчаар тохируулах. }

Зөвлөмж болгож буй: