INHOUDSOPGAWE:

Toetsenbordmoduleklavier met RGB LED: 5 stappe (met foto's)
Toetsenbordmoduleklavier met RGB LED: 5 stappe (met foto's)

Video: Toetsenbordmoduleklavier met RGB LED: 5 stappe (met foto's)

Video: Toetsenbordmoduleklavier met RGB LED: 5 stappe (met foto's)
Video: Raspberry Pi LED Matrix Display 2024, Julie
Anonim
Image
Image
Materiaal benodig
Materiaal benodig

Inleiding

Hallo dames en here, welkom by my heel eerste instruksies! Vandag sal ek u leer hoe om 'n klavier te maak, met die hoofkomponente 'n bedieningspaneelmodule en 'n piëzo-zoemer, sodat u DO-RE-MI kan speel, ensovoorts.

Die toetsbordmodule wat meestal bedoel is, is om 'n bedieningspaneel te wees, gekombineer met 'n arduino RFID om 'n kluis vir waardevolle items te skep. In hierdie geval het ek die klavier verander, in plaas van om iets te beskerm wat ek besluit om die eenvoudige vreugde en musiek te spreek.

Idee konsep

Die idee -konsep vir hierdie skepping het ontstaan uit 'n eenvoudige gelukkige geheue terwyl ek die xylofoon speel toe ek jonger was in die musiekklas. Die hoeveelheid vreugde en opgewondenheid wat deur my liggaam was, was op sy hoogtepunt, ek bedoel dat elke kind maklik tevrede was en my tevredenheid met die xylofoon was.

Navorsing

Nadat u gloeilamp hierbo brand, moet u 'n bietjie ondersoek doen. Nadat ek 'n rukkie op die internet gesoek het, het ek my idee gekry waaraan ek aanvanklik gedink het! 'N Klaviermodule het klavier gedraai; iemand het dieselfde projekvideo hier gemaak. As ek vooruit dink, moes ek 'n aparte komponent byvoeg wat die projek verder sou verbeter, maar dit meer boeiend sou maak en dit my eie kon noem.

Stap 1: materiaal benodig

Materiaal benodig
Materiaal benodig
Materiaal benodig
Materiaal benodig
Materiaal benodig
Materiaal benodig

Materiaallys

  • Piezo Buzzer 1x ▶
  • 4x4-toetsenbordmodule 1x ▶
  • Arduino Uno 1x ▶
  • USB 2.0 kabel tipe A/B 1x ▶
  • Klanksensormodule 1x ▶
  • RGB LED 1x ▶
  • 330 ohm weerstand 3x ▶
  • Trui van man tot vrou 8x ▶
  • Manlike na manlike draaddraad 4x ▶
  • 3-polige draaddraad van man tot vrouw 1x ▶

Materiaallys is in orde met die foto's hierbo.

Stap 2: Bou tyd

Bou tyd!
Bou tyd!
Bou tyd!
Bou tyd!
Bou tyd!
Bou tyd!
Bou tyd!
Bou tyd!

4x4 -klaviermodule en piezo -zoemer

Teorie

Aangesien die 4x4 -klaviermodule en die piezo -zoemer soveel individuele peninvoer bevat, besluit ek om die komponente wat in twee pare is, te verdeel. Fokus op die klavier, gewoonlik gebruik as 'n invoer. Die SunFounder 4*4 Matrix-toetspaneelmodule is 'n matriks-nie-gekodeerde sleutelbord wat uit 16 sleutels parallel bestaan. Die sleutels van elke ry en kolom word deur die penne buite verbind- pen Y1-Y4 soos gemerk langs die rye, wanneer X1- X4, die kolomme.

Doel

Die doel van hierdie komponente vir die hele projek is om die gebruiker in staat te stel om op 'n knoppie te druk wat ingestel is op 'n spesifieke klank wat deur die piëzo -zoemer deur die frekwensie in hertz geskep word.

Matriksmodule -pen - Arduino -pen

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

Piezo Buzzer - Arduino Pin

Swart - GND

Rooi - Krag

My moeilikste taak in hierdie konstruksie is om uit te vind waar elke draad ingeprop is. Hierbo gee ek u 'n vinnige en maklike manier om die draadlokasies te sien, solank dit van bo na onder gevolg word, neem u tyd, en maak seker dat elke pen korrek in die regte gleuf geplaas word.

*Wenk is om te volg waar elke draad van die een kant na die ander geleë is.

Alle Tinkercad -sketse van die spesifieke komponentdrade is korrek gekleur, dus volg dit noukeurig

Stap 3: Klanksensormodule en RGB LED

Klanksensormodule en RGB LED
Klanksensormodule en RGB LED
Klanksensormodule en RGB LED
Klanksensormodule en RGB LED
Klanksensormodule en RGB LED
Klanksensormodule en RGB LED

Klanksensormodule en RGB LED

Teorie

Met die klanksensormodule kan u opspoor wanneer klank 'n ingestelde punt wat u gekies het, oorskry het. Klank word via 'n mikrofoon opgespoor en in 'n LM393 versterker gevoer. Sodra die geluidsvlak die ingestelde punt oorskry, word 'n LED op die module verlig en die uitset.

Doel

Die doel van hierdie komponente vir die hele projek is om 'n klank-/volumelees van die klanksensormodule te verkry, en deur die lesing sal 'n RGB LED die regte kleur vir klank aktiveer.

Klanksensormodule - Arduino -pen (gebruik 3 -pins trui)

  • Uitset - A0 analoog pen
  • GND - Enige oop GND -pengleuf
  • VCC - 3V

RGB gewone anode (+) LED - Arduino -pen

  • Rooi - 9
  • Krag - 5V
  • Groen - 10
  • Blou - 11

Hou in gedagte dat elke individuele draad deur 'n weerstand van 330 ohm bedraad word. Gebruik die prent hierbo as verwysing.

My moeilikste taak in hierdie konstruksie is om uit te vind waar elke draad ingeprop is. Hierbo gee ek u 'n vinnige en maklike manier om na die draadlokasies te gaan, solank dit van bo na onder gevolg word, is die wenk om tyd in beslag te neem en seker te maak dat elke pen korrek in die regte gleuf geplaas word om toekomstige ontfouting te voorkom.

*Wenk is om te volg waar elke draad in beide rigtings geplaas word

Alle Tinkercad -sketse van die spesifieke komponentdrade is korrek gekodeer, dus volg dit

Stap 4: Kode

Kode

Met hierdie kode kan al die komponente saamwerk deur die nuut gedefinieerde funksie te gebruik om al die vele bedieningselemente te bevat, 'n enkele komponent met baie veranderlike veranderlikes, die komponente wat deur die RGB gelei is, en die gebruik van rgb -kleur om die kleur te verander terwyl dit aan is, en die piëzo -zoemer en die afhangende van die druk op die knoppie.

Die sleutelbordbiblioteek was 'n moet in hierdie kode

Skakel hier:

Sodra dit afgelaai is, voeg die nuwe biblioteek by die arduino, en voeg daarna die enkele reël kode in wat nodig is om dit te aktiveer.

Die probleme wat ek tydens die kode gehad het, was die plek waar ek die nuut gedefinieerde funksies kon plaas, aangesien ek deur middel van proef en fout agtergekom het dat dit in die opstelling moet wees, nie in die lus nie.

Kode

#include // Sleutelbordbiblioteek

int greenPin = 11; // RGB Green Pin gekoppel aan digitale pin 9

int redPin = 10; // RGB Rooi Speld gekoppel aan digitale pen 9

int bluePin = 9; // RGB Blue Pin gekoppel aan digitale pin 9 int speakerPin = 12; // luidspreker gekoppel aan digitale pen 12 const byte RYE = 4; // vier rye const byte COLS = 4; // vier kolomme const int soundPin = A0; // klanksensor geheg aan A0

char sleutels [ROWS] [COLS] = {

{'a', 'b', 'c', 'd'}, {'e', 'f', 'g', 'h'}, {'i', 'j', 'k', ' l '}, {' m ', 'n', 'o', 'p'}}; // Visualisering van die klaviermodule

byte rowPins [ROWS] = {2, 3, 4, 5}; // maak verbinding met die ry -uitknoppies van die bedieningspaneel

byte colPins [COLS] = {6, 7, 8, 13}; // maak verbinding met die kolomknoppies van die bedieningspaneel

Toetsblok -sleutelbord = Toetsenbord (makeKeymap (sleutels), rowPins, colPins, ROWS, COLS); // Skep sleutels

ongeldige opstelling () {

pinMode (speakerPin, OUTPUT); // stel die speakerPin as 'n uitset

pinMode (redPin, OUTPUT); // stel die rooi pen as 'n uitvoer pinMode (greenPin, OUTPUT); // stel die groen pen as 'n uitvoer pinMode (bluePin, OUTPUT); // stel die blou pen as 'n uitset

Serial.begin (9600);

} void setColor (int rooi, int groen, int blou) // Nuwe gedefinieerde funksie om RGB in staat te stel om kleur deur RGB -kode te wys {#ifdef COMMON_ANODE rooi = 255 - rooi; groen = 255 - groen; blou = 255 - blou; #endif analogWrite (redPin, rooi); analogWrite (greenPin, groen); analogWrite (blouPin, blou); }

leeg piep (ongetekende char speakerPin, int frequencyInHertz, longtimeInMilliseconds) {// die klankproduserende funksies

int x; lang delayAmount = (long) (1000000/frequensieInHertz); lang loopTime = (long) ((timeInMilliseconds*1000)/(delayAmount*2)); vir (x = 0; x

leemte -lus () {

char sleutel = sleutelbord.getKey (); int waarde = analogRead (soundPin); // lees die waarde van A0 Serial.println (waarde); // druk die waarde

as (sleutel! = NO_KEY) {

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

Stap 5: Laaste gedagtes

Image
Image

Laaste gedagtes

Die laaste gedagtes van hierdie projek is dat die bedoeling daarvan is om 'n speelding te wees, om pret en eenvoudige vreugde te bring. Aangesien hierdie projek volledig is en aan die werk is, glo ek dat hierdie opbou moontlik is met miskien meer komponente, soos 'n opname -element, of 'n kopie/simon -element, of selfs 'n LCD met die note wat verskyn om 'n spesifieke liedjie te speel.

Ek sal graag u mening oor die toetsbordmodule wil weet, watter komponente u gedink het om bygevoeg te word. Gaan u dit in enige van u projekte gebruik? Plaas u idees in die kommentaarafdeling hieronder.

Deel dit asseblief as u van hierdie arduino -projek gehou het.

Aanbeveel: