Spisu treści:

Moduł klawiatury Fortepian z diodą LED RGB: 5 kroków (ze zdjęciami)
Moduł klawiatury Fortepian z diodą LED RGB: 5 kroków (ze zdjęciami)

Wideo: Moduł klawiatury Fortepian z diodą LED RGB: 5 kroków (ze zdjęciami)

Wideo: Moduł klawiatury Fortepian z diodą LED RGB: 5 kroków (ze zdjęciami)
Wideo: Cypis karaluch w kościele 2024, Listopad
Anonim
Image
Image
Potrzebne materiały
Potrzebne materiały

Wprowadzenie

Witam panie i panowie, witam w moim pierwszym instruktażu! Dzisiaj nauczę Cię, jak stworzyć pianino z głównymi komponentami, takimi jak moduł klawiatury i brzęczyk piezoelektryczny, aby móc grać w DO-RE-MI i tak dalej.

Moduł klawiatury najczęściej przeznaczonym przeznaczeniem ma być klawiaturą połączoną z arduino RFID tworząc bezpieczne pudełko na cenne przedmioty. W tym przypadku zmieniłem klawiaturę, zamiast chronić coś, postanawiam użyć do mówienia prostej radości i muzyki.

Koncepcja pomysłu

Pomysł na tę kreację wyewoluował z prostego szczęśliwego wspomnienia podczas grania na ksylofonie, gdy byłem młodszy w klasie muzycznej. Ilość radości i podekscytowania, jaka przebiegała przez moje ciało, była na szczycie, znaczy to, że każde dziecko było łatwo usatysfakcjonowane, a moją satysfakcją była gra na ksylofonie.

Badania

Po tym, jak zapali się Twoja żarówka pomysłu powyżej, należy przeprowadzić małe badania. Po pewnym czasie przeglądania sieci natknąłem się na mój pomysł, o którym początkowo pomyślałem! Moduł klawiatury zamienił się w pianino, ktoś stworzył tutaj ten sam projekt wideo. Wybiegając w przyszłość, musiałem dodać osobny komponent, który jeszcze bardziej ulepszy projekt, ale sprawi, że będzie bardziej angażujący i będzie mógł nazwać go swoim własnym.

Krok 1: Potrzebne materiały

Potrzebne materiały
Potrzebne materiały
Potrzebne materiały
Potrzebne materiały
Potrzebne materiały
Potrzebne materiały

Lista materiałów

  • Piezo Buzzer 1x ▶
  • Moduł klawiatury 4x4 1x ▶
  • Arduino Uno 1x ▶
  • Kabel USB 2.0 typ A/B 1x ▶
  • Moduł czujnika dźwięku 1x ▶
  • RGB LED 1x ▶
  • Rezystor 330 omów 3x ▶
  • Przewód połączeniowy męski na żeński 8x ▶
  • Przewód połączeniowy męski na męski 4x ▶
  • Przewód połączeniowy 3 pin męski na żeński 1x ▶

Lista materiałów jest w porządku ze zdjęciami powyżej.

Krok 2: Czas budowy

Czas budowy!
Czas budowy!
Czas budowy!
Czas budowy!
Czas budowy!
Czas budowy!
Czas budowy!
Czas budowy!

Moduł klawiatury 4x4 i brzęczyk piezoelektryczny

Teoria

Ponieważ moduł klawiatury 4x4 i brzęczyk piezo zawiera tyle pojedynczych wejść pinowych, że zdecyduję się podzielić używane komponenty na dwie pary. Koncentrowanie się na klawiaturze, zwykle używane jako wejście. Moduł klawiatury SunFounder 4*4 Matrix to niekodowana klawiatura macierzowa składająca się z 16 klawiszy równolegle. Klawisze każdego rzędu i kolumny są połączone przez piny na zewnątrz – pin Y1-Y4, jak opisano obok, kontroluje rzędy, gdy X1- X4, kolumny.

Cel, powód

Celem tych elementów w całym projekcie jest umożliwienie użytkownikowi naciśnięcia przycisku, który jest ustawiony na określony dźwięk wytwarzany przez brzęczyk piezoelektryczny poprzez częstotliwość w hercach.

Pin modułu matrycy - Pin Arduino

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

Piezo Buzzer - Arduino Pin

Czarny - GND

Czerwona moc

Moim najtrudniejszym zadaniem w tej kompilacji jest ustalenie, gdzie jest podłączony każdy przewód. Powyżej przedstawiam ci szybkie i łatwe, jak ustawić położenie przewodów, o ile podążasz od góry do dołu, końcówka nie spiesz się i upewnij się, że każdy pin jest prawidłowo włożony do odpowiedniego gniazda.

*Wskazówka: podążaj za położeniem każdego przewodu od jednego końca do drugiego.

Wszystkie szkice Tinkercad poszczególnych przewodów składowych są poprawnie oznaczone kolorami, więc postępuj uważnie

Krok 3: Moduł czujnika dźwięku i dioda LED RGB

Moduł czujnika dźwięku i dioda LED RGB
Moduł czujnika dźwięku i dioda LED RGB
Moduł czujnika dźwięku i dioda LED RGB
Moduł czujnika dźwięku i dioda LED RGB
Moduł czujnika dźwięku i dioda LED RGB
Moduł czujnika dźwięku i dioda LED RGB

Moduł czujnika dźwięku i dioda LED RGB

Teoria

Moduł czujnika dźwięku pozwala wykryć, kiedy dźwięk przekroczył wybraną przez Ciebie wartość. Dźwięk jest wykrywany przez mikrofon i podawany do wzmacniacza operacyjnego LM393. Gdy poziom dźwięku przekroczy zadaną wartość, na module zapala się dioda LED i wyjście.

Cel, powód

Celem tych elementów w całym projekcie jest uzyskanie odczytu dźwięku/głośności modułu czujnika dźwięku i dzięki temu odczytowi dioda LED RGB uruchomi odpowiedni kolor odnoszący się do dźwięku.

Moduł czujnika dźwięku - pin Arduino (użyj 3-pinowego przewodu połączeniowego)

  • Wyjście - pin analogowy A0
  • GND-dowolne otwarte gniazdo pinu GND
  • VCC - 3V

Wspólna anoda RGB (+) LED - Pin Arduino

  • Czerwony - 9
  • Moc - 5V
  • Zielony - 10
  • Niebieski - 11

Należy pamiętać o okablowaniu każdego pojedynczego przewodu przez rezystor 330 omów. Użyj powyższego zdjęcia jako odniesienia.

Moim najtrudniejszym zadaniem w tej kompilacji jest ustalenie, gdzie jest podłączony każdy przewód. Powyżej podaję ci szybki i łatwy sposób dotarcia do lokalizacji przewodów, o ile postępuje się od góry do dołu, wskazówka: nie spiesz się i upewnij się, że każdy pin jest prawidłowo włożony do odpowiedniego gniazda, aby zapobiec przyszłemu debugowaniu.

*Wskazówką jest śledzenie, gdzie każdy przewód jest włożony w obie strony

Wszystkie szkice Tinkercad poszczególnych przewodów składowych są poprawnie oznaczone kolorami, więc postępuj zgodnie z instrukcjami

Krok 4: Kod

Kod

Ten kod pozwala wszystkim komponentom na współpracę przy użyciu nowo zdefiniowanej funkcji, która zawiera wiele elementów sterujących pojedynczy komponent, który ma wiele zmiennych zmiennych te komponenty były diodą RGB i używały koloru rgb do zmiany koloru, gdy włączony i brzęczyk piezoelektryczny i dźwięk, jaki wydawałby w zależności od naciśnięcia przycisku.

Musi mieć w tym kodzie bibliotekę klawiatury

Link tutaj:

Po pobraniu dodaj nową bibliotekę do arduino, a następnie wstaw jedną linię kodu potrzebną do jej aktywacji.

Trudności, jakie miałem podczas kodu, polegały na tym, gdzie umieścić nowo zdefiniowane funkcje, ponieważ metodą prób i błędów zorientowałem się, że musi to być w konfiguracji, a nie w pętli.

Kod

#include // Biblioteka klawiatur

int zielonyPin = 11; //RGB zielony pin podłączony do cyfrowego pinu 9

int redPin= 10; //RGB czerwony pin podłączony do cyfrowego pinu 9

int niebieskiPin = 9; //RGB Niebieski Pin podłączony do cyfrowego pinu 9 int speakerPin = 12; // głośnik podłączony do pinu cyfrowego 12 const byte ROWS = 4; // cztery wiersze const byte COLS = 4; // cztery coloums const int soundPin = A0; //czujnik dźwięku podłącz do A0

klucze znaków[ROWS][COLS] = {

{'a', 'b', 'c', 'd'}, {'e', 'f', 'g', 'h'}, {'i', 'j', 'k', ' l'}, {'m', 'n', 'o', 'p'} }; // Wizualizacja modułu klawiatury

bajt wierszPins[ROWS] = {2, 3, 4, 5}; // połącz się z pinoutami wiersza klawiatury

bajt colPins[COLS] = {6, 7, 8, 13}; // połącz się z pinoutami kolumn klawiatury

Klawiatura klawiatury = Klawiatura (makeKeymap(keys), rowPins, colPins, ROWS, COLS); // Tworzy klucze

pusta konfiguracja (){

pinMode(speakerPin, OUTPUT); // ustawia speakerPin jako wyjście

pinMode(redPin, WYJŚCIE); // ustawia czerwony pin jako wyjście pinMode(greenPin, OUTPUT); // ustawia zielony pin jako wyjście pinMode(bluePin, OUTPUT); // ustawia niebieski pin jako wyjście

Serial.początek (9600);

} void setColor(int red, int green, int blue) // Nowa zdefiniowana funkcja umożliwiająca wyświetlanie kolorów RGB za pomocą kodu RGB { #ifdef COMMON_ANODE red = 255 - red; zielony = 255 - zielony; niebieski = 255 - niebieski; #endif zapis analogowy(redPin, czerwony); analogZapis(zielonyPin, zielony); zapis analogowy (niebieski pin, niebieski); }

void beep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds){ // funkcje generowania dźwięku

int x; long delayAmount = (long)(1000000/częstotliwość w hercach); long loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2)); dla (x=0;x

pusta pętla (){

klawisz znaku = klawiatura.getKey(); int value = analogRead(soundPin);//odczytaj wartość A0 Serial.println(value);//wydrukuj wartość

jeśli (klucz != NO_KEY) {

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

Krok 5: Końcowe myśli

Image
Image

Końcowe przemyślenia

Ostateczne myśli tego projektu mają być zabawką, przynoszącą zabawę i uproszczoną radość. Ponieważ ten projekt jest kompletny i pracuje nad, wierzę, że ta kompilacja może być wzbogacona o więcej komponentów, takich jak element nagrywający, element kopiowania/simon mówi, a nawet wyświetlacz LCD z nutami, które wydają się odtwarzać określoną piosenkę.

Chciałbym poznać Twoją opinię na temat modułu klawiatury, jakie komponenty, które Twoim zdaniem mogły zostać dodane. Czy użyjesz go w którymś ze swoich projektów? Prosimy o publikowanie swoich pomysłów w sekcji komentarzy poniżej.

Upewnij się, że udostępniłeś, jeśli podobał Ci się ten projekt arduino.

Zalecana: