Mundarija:

RGB LEDli klaviatura modulli pianino: 5 qadam (rasmlar bilan)
RGB LEDli klaviatura modulli pianino: 5 qadam (rasmlar bilan)

Video: RGB LEDli klaviatura modulli pianino: 5 qadam (rasmlar bilan)

Video: RGB LEDli klaviatura modulli pianino: 5 qadam (rasmlar bilan)
Video: RGB LED Mechanical Keyboard Switch Keychain Unboxing #shorts 2024, Noyabr
Anonim
Image
Image
Kerakli materiallar
Kerakli materiallar

Kirish

Salom xonimlar va janoblar, mening birinchi darsimni xush kelibsiz! Bugun men sizga qanday qilib pianino yaratishni o'rgataman, uning asosiy komponentlari klaviatura moduli va piezo buzzer bo'lib, u DO-RE-MI va boshqalarni o'ynashi mumkin.

Klaviatura modulining asosiy maqsadi qimmatbaho buyumlar uchun xavfsiz quti yaratish uchun arduino RFID bilan birlashtirilgan klaviatura bo'lishi. Bu holda men klaviaturani o'zgartirdim, biror narsani himoya qilish o'rniga oddiy quvonch va musiqani gapirishga qaror qildim.

Fikr tushunchasi

Bu ijod g'oyasi men yoshligimda musiqa darsida ksilofon chalish paytida oddiy xotiradan kelib chiqqan. Mening tanamda quvonch va hayajon eng yuqori cho'qqisiga chiqdi, demoqchimanki, har bir bola osonlikcha qoniqardi, men esa ksilofonda o'ynardim.

Tadqiqot

Sizning fikringiz yuqoridagi lampochka yonib ketgandan so'ng, siz ozgina tadqiqot qilishingiz kerak. Bir muncha vaqt veb -sahifalarni ko'rib chiqqach, men o'zim o'ylagan fikrga keldim! Klaviatura moduli pianinoga aylandi, kimdir bu erda xuddi shu loyiha videosini yaratdi. Oldindan o'ylab, men loyihani yanada takomillashtiradigan, lekin uni yanada jozibador qiladigan va uni o'zimniki deb ataydigan alohida komponentani qo'shishim kerak edi.

1 -qadam: kerakli materiallar

Kerakli materiallar
Kerakli materiallar
Kerakli materiallar
Kerakli materiallar
Kerakli materiallar
Kerakli materiallar

Materiallar ro'yxati

  • Piezo Buzzer 1x ▶
  • 4x4 klaviatura moduli 1x ▶
  • Arduino Uno 1x ▶
  • USB 2.0 kabel turi A/B 1x ▶
  • Ovoz sensori moduli 1x ▶
  • RGB LED 1x ▶
  • 330 ohmli qarshilik 3x ▶
  • Erkak va urg'ochi jumper simlari 8x ▶
  • Erkak -erkak 4x o'tish simlari ▶
  • 3 pinli erkak va ayol o'tish simlari 1x ▶

Materiallar ro'yxati yuqoridagi rasmlar bilan tartibda joylashtirilgan.

2 -qadam: qurilish vaqti

Qurilish vaqti!
Qurilish vaqti!
Qurilish vaqti!
Qurilish vaqti!
Qurilish vaqti!
Qurilish vaqti!
Qurilish vaqti!
Qurilish vaqti!

4x4 klaviatura moduli va Piezo buzzer

Nazariya

4x4 klaviatura moduli va piezo signallari juda ko'p shaxsiy pinli kirishni o'z ichiga olganligi sababli, men ishlatilgan komponentlarni ikki juftga ajratishga qaror qilaman. Klaviaturaga e'tibor, odatda kirish sifatida ishlatiladi. SunFounder 4*4 matritsali klaviatura moduli- bu 16 tugmachadan tashkil topgan, matritsali kodlanmagan klaviatura, har bir satr va ustunning tugmachalari tashqaridagi pinlar orqali ulanadi- Y1-Y4 pinlari, X1- satrlarni boshqarish yonida. X4, ustunlar.

Maqsad

Ushbu komponentlarning butun loyihadagi maqsadi - foydalanuvchiga herts chastotasi orqali piezo -buzzer tomonidan yaratilgan ma'lum bir tovushga o'rnatilgan tugmani bosish.

Matrix moduli pin - Arduino pin

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

Piezo Buzzer - Arduino Pin

Qora - GND

Qizil - kuch

Bu qurilishda mening eng qiyin vazifam - har bir sim qaerga ulanganligini aniqlash. Yuqorida men sizga simlarni joylashtirish yo'llarini tez va oson ko'rsataman, agar yuqoridan pastgacha kuzatilsa, maslahat vaqtingizni oladi va har bir pin to'g'ri uyaga to'g'ri o'rnatilganligiga ishonch hosil qiling.

*Maslahat - har bir simning uchidan oxirigacha joylashgan joyini kuzatish.

Tinkercad -ning barcha komponentli simlarining eskizlari to'g'ri rang bilan kodlangan, shuning uchun ularni diqqat bilan kuzatib boring

3 -qadam: Ovoz sensori moduli va RGB LED

Ovoz sensori moduli va RGB LED
Ovoz sensori moduli va RGB LED
Ovoz sensori moduli va RGB LED
Ovoz sensori moduli va RGB LED
Ovoz sensori moduli va RGB LED
Ovoz sensori moduli va RGB LED

Ovoz sensori moduli va RGB LED

Nazariya

Ovoz sensori moduli sizga ovoz belgilangan vaqtdan oshib ketganini aniqlash imkonini beradi. Ovoz mikrofon orqali aniqlanadi va LM393 op -ampiga uzatiladi. Ovoz darajasi belgilangan nuqtadan oshib ketganda, moduldagi LED yonadi va chiqish chiqadi.

Maqsad

Butun loyihaning maqsadi - bu ovoz sensori modulining ovozini/ovozini o'qish va shu orqali RGB LEDini o'qish tovushga to'g'ri rangni faollashtiradi.

Ovoz sensori moduli - Arduino pin (3 pinli o'tish simidan foydalaning)

  • Chiqish - A0 analog pin
  • GND - har qanday ochiq GND pin uyasi
  • VCC - 3V

RGB umumiy anodli (+) LED - Arduino pinli

  • Qizil - 9
  • Quvvat - 5V
  • Yashil - 10
  • Moviy - 11

Shuni yodda tutingki, har bir alohida sim 330 ohmli rezistor orqali o'tkaziladi. Malumot sifatida yuqoridagi rasmdan foydalaning.

Bu qurilishda mening eng qiyin vazifam - har bir sim qaerga ulanganligini aniqlash. Yuqorida men sizga tez va oson sim o'tkaziladigan joylarni ko'rsataman, agar yuqoridan pastgacha kuzatilsa, shoshilmang va kelajakda nosozliklarni tuzatishni oldini olish uchun har bir pin to'g'ri uyaga to'g'ri o'rnatilganligiga ishonch hosil qiling.

*Maslahat - har bir simni har tomonga qo'shib qo'yish

Tinkercad simlarining barcha eskizlari rang bilan to'g'ri kodlangan, shuning uchun davom eting

4 -qadam: kod

Kod

Bu kod barcha komponentlarning birgalikda ishlashiga imkon beradi va yangi boshqaruv funktsiyasini o'z ichiga oladi, bu esa ko'pgina boshqaruv elementlarini o'z ichiga oladi, ular ko'p o'zgaruvchan o'zgaruvchilarga ega, bu komponentlar RGB boshlig'i edi va rangni o'zgartirish uchun rgb rangidan foydalangan holda piezo signal va tugmachaning bosilishiga qarab ovoz chiqaradi.

Bu kodda bo'lishi kerak bo'lgan narsa - klaviatura kutubxonasi

Bu erga havola:

Yuklab olingandan so'ng, yangi kutubxonani arduino -ga qo'shing, so'ng uni faollashtirish uchun kerak bo'lgan bitta kod qatorini kiriting.

Kod paytida yuzaga kelgan qiyinchiliklar, yangi aniqlangan funktsiyalarni qaerda joylashtirish kerak edi, chunki men sinov va xato orqali bu loopda emas, balki sozlamalarda bo'lishi kerakligini tushundim.

Kod

#kiritish // Klaviatura kutubxonasi

int greenPin = 11; // RGB Green Pin raqamli pin 9 ga ulangan

int redPin = 10; // RGB Red Pin 9 raqamli pin bilan ulangan

int bluePin = 9; // RGB Blue Pin raqamli pin 9 int speakerPin = 12 ga ulangan; // dinamik 12 raqamli pinga ulangan dinamik, bayt ROWS = 4; // to'rt qatorli const bayt COLS = 4; // to'rtta kollo const const int soundPin = A0; // tovush sensori A0 ga ulangan

char tugmalari [ROWS] [COLS] = {

{'a', 'b', 'c', 'd'}, {'e', 'f', 'g', 'h'}, {'i', 'j', 'k', ' l '}, {' m ',' n ',' o ',' p '}}; // Klaviatura modulining vizualizatsiyasi

bayt rowPins [ROWS] = {2, 3, 4, 5}; // klaviaturaning qatorli pinoutlariga ulaning

bayt colPins [COLS] = {6, 7, 8, 13}; // klaviatura ustuni ustki qismiga ulaning

Klaviatura klaviaturasi = Klaviatura (makeKeymap (tugmalar), rowPins, colPins, ROWS, COLS); // Kalitlarni yaratadi

bo'sh o'rnatish () {

pinMode (SpeakerPin, OUTPUT); // SpeakerPin -ni chiqish qilib belgilaydi

pinMode (redPin, OUTPUT); // qizil pinni chiqish pinMode (greenPin, OUTPUT) qilib belgilaydi; // yashil pinni chiqish pinMode (bluePin, OUTPUT) qilib belgilaydi; // ko'k pinni chiqish qilib belgilaydi

Serial.begin (9600);

} void setColor (int red, int green, int blue) // RGB rangini RGB kodi orqali ko'rsatishga ruxsat beruvchi yangi belgilangan funksiya {#ifdef COMMON_ANODE red = 255 - qizil; yashil = 255 - yashil; ko'k = 255 - ko'k; #endif analogWrite (redPin, qizil); analogWrite (greenPin, yashil); analogWrite (bluePin, ko'k); }

bo'sh ovozli signal (imzolanmagan char SpeakerPin, int chastotasi InHertz, uzoq vaqt InMilliseconds) {// ovoz chiqaruvchi funktsiyalar

int x; long delayAmount = (long) (1000000/chastotaInHertz); long loopTime = (long) ((timeInMilliseconds*1000)/(delayAmount*2)); uchun (x = 0; x

void loop () {

char tugmachasi = keypad.getKey (); int qiymati = analogRead (soundPin); // A0 qiymatini o'qing Serial.println (qiymat); // qiymatni chop etish

agar (kalit! = NO_KEY) {

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

5 -qadam: Yakuniy fikrlar

Image
Image

Yakuniy fikrlar

Loyihaning yakuniy fikrlari uning maqsadi o'yinchoq bo'lish, qiziqarli va sodda quvonch keltirishdir. Bu loyiha tugallangan va ishlayotgani uchun, menimcha, bu tuzilmani, masalan, yozish elementi yoki nusxa ko'chirish/simon elementi yoki hatto ma'lum bir qo'shiqni ijro etish uchun yozuvlari bo'lgan LCD kabi qo'shimcha komponentlar yordamida yaxshilash mumkin.

Sizningcha, klaviatura moduli haqidagi fikringizni bilishni istardim, siz qanday tarkibiy qismlarni qo'shishingiz mumkin edi. Siz uni biron bir loyihangizda ishlatmoqchimisiz? Iltimos, o'z fikrlaringizni quyidagi izohlar bo'limiga joylashtiring.

Iltimos, ushbu arduino loyihasi sizga yoqdimi, baham ko'ring.

Tavsiya: