Mündəricat:

RGB LEDli Klaviatura Modulu Piano: 5 Addım (Şəkillərlə)
RGB LEDli Klaviatura Modulu Piano: 5 Addım (Şəkillərlə)

Video: RGB LEDli Klaviatura Modulu Piano: 5 Addım (Şəkillərlə)

Video: RGB LEDli Klaviatura Modulu Piano: 5 Addım (Şəkillərlə)
Video: Исследование JavaScript и API веб-аудио Сэма Грина и Хью Забриски 2024, Noyabr
Anonim
Image
Image
Lazım olan materiallar
Lazım olan materiallar

Giriş

Salam xanımlar və bəylər, mənim ilk təlimatçılığa xoş gəldiniz! Bu gün sizə əsas komponentləri klaviatura modulu və piezo səs siqnalı olan bir piano yaratmağı və DO-RE-MI çalmağı və s. Öyrədəcəyəm.

Klaviatura modulunun ən çox nəzərdə tutulan məqsədi, qiymətli əşyalar üçün bir təhlükəsizlik qutusu yaratmaq üçün arduino RFID ilə birləşdirilmiş klaviatura olmaqdır. Bu vəziyyətdə klaviaturanı dəyişdirdim, bir şeyi qorumaq əvəzinə sadə sevinc və musiqini danışmaq üçün istifadə etməyə qərar verdim.

Fikir anlayışı

Bu yaradılışın fikir konsepsiyası, musiqi sinifində daha gənc olduğum zaman ksilofon çalarkən sadə bir xoşbəxt yaddaşdan əmələ gəlir. Vücudumdan keçən sevinc və həyəcan ən yüksək həddə çatdı, demək istəyirəm ki, hər uşaq asanlıqla məmnun olurdu və məmnunluğum ksilofon çalmaqdır.

Araşdırma

Fikiriniz yuxarıdakı ampul yandıqdan sonra bir az araşdırma aparılmalıdır. Vebdə bir müddət gəzdikdən sonra əvvəlcə düşündüyüm fikirlə rastlaşdım! Klaviatura modulu pianoya çevrildi, kimsə eyni layihə videosunu burada yaratdı. Əvvəlcədən düşünərək, layihəni daha da inkişaf etdirəcək, lakin daha cəlbedici edəcək və özüm adlandıra biləcəyim ayrı bir komponent əlavə etməliyəm.

Addım 1: Lazım olan materiallar

Lazım olan materiallar
Lazım olan materiallar
Lazım olan materiallar
Lazım olan materiallar
Lazım olan materiallar
Lazım olan materiallar

Materialların siyahısı

  • Piezo Buzzer 1x ▶
  • 4x4 klaviatura modulu 1x ▶
  • Arduino Uno 1x ▶
  • USB 2.0 kabel tipi A/B 1x ▶
  • Səs Sensoru Modulu 1x ▶
  • RGB LED 1x ▶
  • 330 ohm müqavimət 3x 3x ▶
  • Kişi və dişi tullanan tel 8x ▶
  • Kişidən kişiyə tullanan tel 4x ▶
  • 3 pin Kişi və qadın tullanan tel 1x ▶

Material siyahısı yuxarıdakı şəkillərlə düzülmüşdür.

Addım 2: Tikinti zamanı

Tikinti zamanı!
Tikinti zamanı!
Tikinti zamanı!
Tikinti zamanı!
Tikinti zamanı!
Tikinti zamanı!
Tikinti zamanı!
Tikinti zamanı!

4x4 Klaviatura Modulu və Piezo Buzzer

Nəzəriyyə

4x4 klaviatura modulu və piezo səs siqnalı bir çox fərdi pin girişi olduğundan istifadə olunan komponentləri iki cütə bölmək qərarına gələcəyəm. Adətən giriş olaraq istifadə olunan klaviaturaya diqqət yetirir. SunFounder 4*4 Matrix Klaviatura Modulu, paralel olaraq 16 düymədən ibarət olan matris kodlaşdırılmamış bir klaviaturadır, hər sətrin və sütunun düymələri xaricdəki sancaqlar vasitəsilə bağlanır- X1- satırlar nəzarətinin yanında etiketləndiyi kimi pin Y1-Y4. X4, sütunlar.

Məqsəd

Bu komponentlərin bütün layihədə məqsədi istifadəçiyə piezo buzzer tərəfindən hertz tezliyi ilə yaradılmış xüsusi bir səsi təyin edən bir düyməni basmasına icazə verməkdir.

Matrix Modul Pin - Arduino Pin

  • 4 - 2
  • 3 - 3
  • 2 - 4
  • 1 - 5
  • 5 - 6
  • 6 - 7
  • 7 - 8
  • 8 - 13

Piezo Buzzer - Arduino Pin

Qara - GND

Qırmızı - Güc

Bu quruluşdakı ən çətin vəzifəm, hər bir telin haraya qoşulduğunu anlamaqdır. Yuxarıda sizə yuxarıdan aşağıya doğru izləndiyiniz müddətdə, tel yerlərinin necə və necə tez bir şəkildə çatdırılacağını sizə xəbər verəcəyəm.

*İpucu, hər telin bir ucundan digərinə yerləşdiyi yerə riayət etməkdir.

Xüsusi komponent tellərinin bütün Tinkercad eskizləri rənglə düzgün kodlanmışdır, buna görə də diqqətlə izləyin

Addım 3: Səs Sensor Modulu və RGB LED

Səs Sensor Modulu və RGB LED
Səs Sensor Modulu və RGB LED
Səs Sensor Modulu və RGB LED
Səs Sensor Modulu və RGB LED
Səs Sensor Modulu və RGB LED
Səs Sensor Modulu və RGB LED

Səs Sensor Modulu və RGB LED

Nəzəriyyə

Səs sensoru modulu, səsin seçdiyiniz bir nöqtəni keçdiyini təyin etməyə imkan verir. Səs mikrofon vasitəsi ilə aşkarlanır və LM393 op amperinə verilir. Səs səviyyəsi təyin olunan nöqtəni aşdıqda, modulda bir LED yanır və çıxış.

Məqsəd

Bu komponentlərin bütün layihədəki məqsədi, səs sensoru modulunun bir səs/həcm oxunuşunu əldə etməkdir və bunun sayəsində bir RGB LED -i oxumaqla səsə aid doğru rəngi aktivləşdirər.

Səs Sensoru Modulu - Arduino Pimi (3 Pinli Jumper Teli istifadə edin)

  • Çıxış - A0 Analog Pin
  • GND - Hər hansı bir açıq GND pin yuvası
  • VCC - 3V

RGB Ümumi Anot (+) LED - Arduino Pin

  • Qırmızı - 9
  • Güc - 5 V.
  • Yaşıl - 10
  • Mavi - 11

Hər bir fərdi teli 330 ohm rezistor vasitəsilə bağlamağı unutmayın. İstinad olaraq yuxarıdakı şəkildən istifadə edin.

Bu quruluşdakı ən çətin vəzifəm, hər bir telin haraya qoşulduğunu anlamaqdır. Yuxarıda sizə yuxarıdan aşağıya doğru izləndiyiniz müddətdə tel yerlərə necə tez və asan bir şəkildə getməyinizi təmin edəcəyəm, məsləhət vaxtınızı ayırmaq və hər bir pinin gələcək ayıklamanın qarşısını almaq üçün düzgün yuvaya düzgün şəkildə daxil edilməsini təmin etməkdir.

*İpucu, hər bir telin hər iki tərəfə də daxil edildiyini izləməkdir

Xüsusi komponent tellərinin bütün Tinkercad eskizləri rənglə düzgün kodlanmışdır, buna görə də izləyin

Addım 4: Kod

Kod

Bu kod, bütün komponentlərin bir çox dəyişən dəyişənləri olan tək komponenti olan RGB -lər və rgb rəngindən istifadə edərək rəngi dəyişdirmək üçün piezo səs siqnalı və düyməni basmaqdan asılı olaraq səs çıxaracaq.

Bu kod daxilində olması lazım olan bir şey klaviatura kitabxanası idi

Bura keçid:

Yüklədikdən sonra yeni kitabxananı arduinoya əlavə edin, sonra aktivləşdirmək üçün lazım olan tək kod xəttini daxil edin.

Kod zamanı yaşadığım çətinliklər, yeni təyin edilmiş funksiyaları sınaq və səhv yolu ilə harada yerləşdirəcəyim idi, bunun döngədə deyil, quraşdırmada olması lazım olduğunu anladım.

Kod

#daxil edin // Klaviatura Kitabxanası

int greenPin = 11; // RGB Yaşıl Pin rəqəmsal pin 9 -a qoşulub

int redPin = 10; // RGB Red Pin rəqəmsal pin 9 -a qoşulub

int bluePin = 9; // RGB Mavi Pin rəqəmsal pin 9 int SpeakerPin = 12 -ə qoşuldu; // rəqəmsal pinlə əlaqəli dinamik 12 const bayt ROWS = 4; // dörd satır const bayt COLS = 4; // dörd coloums const int soundPin = A0; // səs sensoru A0 -a əlavə olunur

char düymələri [ROWS] [COLS] = {

{'a', 'b', 'c', 'd'}, {'e', 'f', 'g', 'h'}, {'i', 'j', 'k', ' l '}, {' m ',' n ',' o ',' p '}}; // Klaviatura modulunun görüntülənməsi

bayt rowPins [ROWS] = {2, 3, 4, 5}; // klaviaturanın sətir pinoutlarına qoşulun

bayt colPins [COLS] = {6, 7, 8, 13}; // klaviaturanın sütun pinoutlarına qoşulun

Klaviatura klaviaturası = Klaviatura (makeKeymap (düymələr), rowPins, colPins, ROWS, COLS); // Açarlar yaradır

boş quraşdırma () {

pinMode (SpeakerPin, Çıxış); // SpeakerPin -i çıxış olaraq təyin edir

pinMode (redPin, ÇIXIŞ); // qırmızı pimi çıxış pinMode (greenPin, ÇIXIŞ) olaraq təyin edir; // yaşıl pimi çıxış pinMode (bluePin, ÇIXIŞ) olaraq təyin edir; // mavi sancağı çıxış olaraq təyin edir

Serial.begin (9600);

} void setColor (int qırmızı, int yaşıl, int mavi) // RGB -nin RGB kodu vasitəsilə rəng göstərməsinə imkan verən yeni təyin olunmuş funksiya {#ifdef COMMON_ANODE red = 255 - qırmızı; yaşıl = 255 - yaşıl; mavi = 255 - mavi; #endif analogWrite (redPin, qırmızı); analogWrite (greenPin, yaşıl); analogWrite (bluePin, mavi); }

boş səs siqnalı (işarəsiz char speakerPin, int tezliyiInHertz, uzun müddətMillisaniyə) {// səs istehsal funksiyaları

int x; long delayAmount = (uzun) (1000000/tezlikInHertz); long loopTime = (uzun) ((timeInMilliseconds*1000)/(delayAmount*2)); üçün (x = 0; x

boşluq döngəsi () {

char düyməsi = keypad.getKey (); int dəyəri = analogRead (soundPin); // A0 Serial.println (dəyər) dəyərini oxuyun; // dəyəri çap edin

əgər (açar! = NO_KEY) {

Serial.println (açar); } if (key == 'a') {bip (SpeakerPin, 2093, 100); setColor (218, 112, 214); } if (key == 'b') {bip (SpeakerPin, 2349, 100); setColor (218, 112, 214); } if (key == 'c') {bip (SpeakerPin, 2637, 100); setColor (218, 112, 214); } if (key == 'd') {bip (SpeakerPin, 2793, 100); setColor (218, 112, 214); } if (key == 'e') {bip (SpeakerPin, 3136, 100); setColor (218, 112, 214); } if (key == 'f') {bip (SpeakerPin, 3520, 100); setColor (218, 112, 214); } if (key == 'g') {bip (SpeakerPin, 3951, 100); setColor (218, 112, 214); } if (key == 'h') {bip (SpeakerPin, 4186, 100); setColor (218, 112, 214); } if (key == 'i') {bip (SpeakerPin, 2093, 100); setColor (230, 230, 0); } if (key == 'j') {bip (SpeakerPin, 2349, 100); setColor (180, 255, 130); } if (key == 'k') {bip (SpeakerPin, 2637, 100); setColor (130, 255, 130); } if (key == 'l') {bip (SpeakerPin, 2739, 100); setColor (130, 220, 130); } if (key == 'm') {bip (SpeakerPin, 3136, 100); setColor (0, 255, 255); } if (key == 'n') {bip (SpeakerPin, 3520, 100); setColor (0, 220, 255); } if (key == 'o') {bip (SpeakerPin, 3951, 100); setColor (0, 69, 255); } if (key == 'p') {bip (SpeakerPin, 4186, 100); setColor (255, 0, 255); }}

Addım 5: Son Fikirlər

Image
Image

Son Fikirlər

Bu layihənin son düşüncələri, oyuncaq olmaq, əylənmək və sadə bir sevinc gətirməkdir. Bu layihə tamamlandığı və üzərində işlədiyi üçün inanıram ki, bu quruluşu, qeyd elementi və ya surət/simon deyir elementi və ya müəyyən bir mahnını ifa etmək üçün görünən notları olan LCD kimi daha çox komponentlə inkişaf etdirə bilərəm.

Klaviatura Modulu haqqında fikirlərinizi bilmək istərdim, hansı komponentlərin əlavə oluna biləcəyini düşünürdünüz. Hər hansı bir layihənizdə istifadə edəcəksinizmi? Zəhmət olmasa fikirlərinizi aşağıdakı şərh bölməsində yazın.

Zəhmət olmasa bu arduino layihəsindən zövq alsanız paylaşdığınızdan əmin olun.

Tövsiyə: