Mündəricat:

Arduino - Piezo Üç Düyməli Piano: 4 addım
Arduino - Piezo Üç Düyməli Piano: 4 addım

Video: Arduino - Piezo Üç Düyməli Piano: 4 addım

Video: Arduino - Piezo Üç Düyməli Piano: 4 addım
Video: Урок 3. Подключение и настройка пьезоизлучателя и Arduino 2024, Iyun
Anonim
Image
Image

Üç düyməli piano, Arduino istifadə etmək təcrübəsi olan yeni başlayanlar üçün bir layihədir.

İlk dəfə piezo buzzer ilə oynayarkən bunu təsadüfən çölə atdım. Çox yüksək səsləndi! Zil səsini daha sakit etmək üçün müxtəlif üsullar tapmağa çalışarkən və ton () və noTone () funksiyasından istifadə edərək fərqli tezlikləri sınayarkən, piezo buzzerini Arduino -nun ən sevdiyim komponentləri ilə birlikdə sınamağın əyləncəli ola biləcəyini anladım. dəsti: düymələr və potensiometr.

Lazım olan materiallar daxildir:

  • 1 Arduino
  • 1 Çörək lövhəsi
  • 1 USB Kabeli
  • Jumper telləri (müxtəlif rəngli)
  • 1330 Kilo-ohm Rezistor
  • 1 Piezo Buzzer
  • 3 Düymələr
  • 1 Potansiyometr

Addım 1: Piezo Buzzer

Piezo Buzzer
Piezo Buzzer

Başlamaq üçün Arduinonun çörək taxtasına piezo qoyun. Bunun bir tərəfi (qısa ayaq tərəfi) yerə qaçmalıdır. Digər tərəfin (daha uzun ayaq tərəfi) rəqəmsal giriş pininə qoşulması lazımdır. 8 -ə bağlamağı seçdim.

Addım 2: Düymələri basın

Düymələr
Düymələr
Düymələr
Düymələr

Sonra, düymələri quraşdırmağın vaxtı gəldi. Piezo kimi, düymələrin yerə və rəqəmsal giriş pininə qoşulması lazımdır.

Addım 3: Potansiyometr

Potensialiometr
Potensialiometr
Potensialiometr
Potensialiometr

Fiziki quruluşdakı son addım potensiometrdir. Potansiyometrlər müxtəlif formalarda olur. Potansiyometrdən bir gərginlik bölücü olaraq istifadə edəcəyik, buna görə də hər üç ayağının bağlanması lazımdır.

Sağ Ayaq: Mənfi Bar (Yer)

Orta Ayaq: Analog Pin 0

Sol Ayaq: Müsbət Bar

Addım 4: Kod

Bu layihə üçün kod yazarkən bir neçə xüsusi funksiya növü haqqında məlumatlara istinad etdim:

ton ()

noTone () (bunu istifadə etmədim. Tezliyi "0" olaraq təyin etdim.)

xəritə ()

Piezo Buzzers-dən ilk dəfə istifadə edənlər üçün başqa bir gözəl istinad burada tapa bilərsiniz. Piezo buzzerin səsini dəyişdirmək fikri sadə görünsə də, əvvəlcə bir az ağır ola bilər!

Ton () funksiyasını üç hissəyə bölmək olar:

  1. Pin (piezo buzzerin bağlı olduğu pin)
  2. Tezlik (hertzdə səsin tezliyi)
  3. Müddət (səsin milisaniyələrlə verilən müddəti)

Əsasən, belə görünür: ton (pin, tezlik, müddət). Üçüncü komponent (müddət) isteğe bağlıdır, digər ikisi isə səs -küyün işləməsi üçün lazımdır. Ton funksiyasının "tezlik" komponenti, səs siqnalı tərəfindən istehsal olunan "səs" olaraq düşünülə bilən şeydir.

Kodun digər iki bit koda sahib olduğunu da görəcəksiniz. Fərqli düymələrə basıldığı təqdirdə nə edəcəyini və düymələrin heç birinin basılmadığı vəziyyətlərdə "tezlik = 0" ilə qurulacağını söyləmək üçün bəzi if/else ifadələri var. If/else ifadələrində, potensiometrin miqyasını bir sıra tezliklərə uyğunlaşdırmaq üçün map () funksiyalarından istifadə olunur. Bunlar dəyişdirilə bilər! Piezodan hansı fərqli səsləri ala biləcəyinizi görmək üçün fərqli tezlik dəyərləri ilə oynayın.

Üç düyməli piano yaratmaq üçün istifadə etdiyim kodu burada yoxlayın və ya aşağıda yoxlayın.

int piezoPin = 8; // Piezoya bağlı pin qurun.

int sensorPin = 0; // Sensora bağlı olan pin qurun (potensiometr). int sensorValue = 0;

int düyməsi1 = 5; // Düymələrə bağlı giriş pinlərini qurun.

int düyməsi2 = 4; int düyməsi3 = 3;

int tezliyi = 0;

const int delayTime = 500; // Ton () funksiyasında gecikmə vaxtının dəyişəninə sabit qoyun.

boş quraşdırma () {

pinMode (düymə1, GİRİŞ_PULLUP); pinMode (düymə2, INPUT_PULLUP); pinMode (düymə3, INPUT_PULLUP); }

boşluq döngəsi () {

sensorValue = analogRead (sensorPin); // Sensoru oxuyun. // Potensiometrin fərqli dəyərlərini üç düymənin hər biri üçün bir sıra tezliklərə uyğunlaşdırın. if (digitalRead (button1) == LOW) {tezlik = xəritə (sensorValue, 0, 1023, 400, 499); } else if (digitalRead (button2) == LOW) {tezlik = xəritə (sensorValue, 0, 1023, 500, 599); } else if (digitalRead (button3) == LOW) {tezlik = xəritə (sensorValue, 0, 1023, 600, 699); } başqa {tezlik = 0; } ton (piezoPin, tezlik, delayTime); // Ton () funksiyalarını dəyişənlərlə qurun. }

Tövsiyə: