Inhoudsopgave:

Toetsenbordmodule Piano met RGB LED - Ajarnpa
Toetsenbordmodule Piano met RGB LED - Ajarnpa

Video: Toetsenbordmodule Piano met RGB LED - Ajarnpa

Video: Toetsenbordmodule Piano met RGB LED - Ajarnpa
Video: Piano LED Plus 2023 | New Piano LED Plus Version | LED Reactive Piano Visualizer Setup 2024, November
Anonim
Image
Image
Benodigde materialen
Benodigde materialen

Intro

Hallo dames en heren, welkom bij mijn allereerste instructable! Vandaag zal ik je leren hoe je een piano maakt met als hoofdcomponenten een toetsenbordmodule en een piëzo-zoemer, zodat je DO-RE-MI enzovoort kunt spelen.

De toetsenbordmodule is meestal bedoeld om een toetsenbord te zijn in combinatie met een arduino RFID om een kluis voor waardevolle spullen te creëren. In dit geval heb ik het toetsenbord veranderd, in plaats van iets te beschermen dat ik besluit te gebruiken om de eenvoudige vreugde en muziek uit te spreken.

Ideeconcept

Het ideeconcept voor deze creatie, evolueerde van een eenvoudige gelukkige herinnering tijdens het spelen van de xylofoon toen ik jonger was in de muziekles. De hoeveelheid vreugde en opwinding die door mijn lichaam stroomde, was op zijn hoogtepunt, ik bedoel, elk kind was snel tevreden en mijn voldoening was het spelen van de xylofoon.

Onderzoek

Nadat uw idee gloeilamp hierboven oplicht, moet er een beetje onderzoek worden gedaan. Na een tijdje op internet te hebben gesurft, kwam ik mijn idee tegen waar ik aanvankelijk aan dacht! Een toetsenbordmodule werd piano, iemand heeft hier dezelfde projectvideo gemaakt. Vooruitdenkend moest ik een apart onderdeel toevoegen dat het project verder zou verbeteren, maar het aantrekkelijker zou maken en het mijn eigen zou kunnen noemen.

Stap 1: Benodigde materialen

Benodigde materialen
Benodigde materialen
Benodigde materialen
Benodigde materialen
Benodigde materialen
Benodigde materialen

Materialenlijst

  • Piëzo-zoemer 1x ▶
  • 4x4 keypad module 1x ▶
  • Arduino Uno 1x ▶
  • USB 2.0 kabel type A/B 1x ▶
  • Geluidssensormodule 1x ▶
  • RGB LED 1x ▶
  • 330 ohm weerstand 3x ▶
  • Man-vrouw doorverbindingsdraad 8x ▶
  • Male naar male jumper wire 4x ▶
  • 3 pin Male naar female jumper wire 1x ▶

Materiaallijst is in orde met bovenstaande foto's.

Stap 2: Bouwtijd

Bouwtijd!
Bouwtijd!
Bouwtijd!
Bouwtijd!
Bouwtijd!
Bouwtijd!
Bouwtijd!
Bouwtijd!

4x4 toetsenbordmodule & piëzo-zoemer

Theorie

Omdat de 4x4-toetsenbordmodule en de piëzo-zoemer zoveel individuele pininvoer bevatten, zal ik besluiten de gebruikte componenten in twee paren te splitsen. Focussen op het toetsenbord, meestal gebruikt als invoer. De SunFounder 4*4 Matrix-toetsenbordmodule is een niet-gecodeerd matrixtoetsenbord dat uit 16 parallelle toetsen bestaat. De toetsen van elke rij en kolom zijn verbonden via de pinnen aan de buitenkant - pin Y1-Y4 zoals aangegeven naast de rijen, wanneer X1- X4, de kolommen.

Doel

Het doel van deze componenten voor het hele project is om de gebruiker in staat te stellen op een knop te drukken die is ingesteld op een specifiek geluid dat wordt gecreëerd door de piëzo-zoemer via frequentie in hertz.

Matrix-modulepen - Arduino-pen

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

Piezo-zoemer - Arduino-pin

Zwart - GND

Rode kracht

Mijn moeilijkste taak in deze build is uitzoeken waar elke draad is aangesloten. Hierboven geef ik u een snelle en gemakkelijke manier om de draadlocaties te vinden, zolang deze van boven naar beneden wordt gevolgd, neem de tijd en zorg ervoor dat elke pin correct in de juiste gleuf wordt gestoken.

*Tip is om te volgen waar elke draad zich van het ene uiteinde naar het andere bevindt.

Alle Tinkercad-schetsen van de specifieke componentdraden zijn correct in kleur gecodeerd, dus volg zorgvuldig

Stap 3: Geluidssensormodule en RGB-led

Geluidssensormodule en RGB-led
Geluidssensormodule en RGB-led
Geluidssensormodule en RGB-led
Geluidssensormodule en RGB-led
Geluidssensormodule en RGB-led
Geluidssensormodule en RGB-led

Geluidssensormodule en RGB-led

Theorie

Met de geluidssensormodule kunt u detecteren wanneer het geluid een door u geselecteerd instelpunt heeft overschreden. Geluid wordt gedetecteerd via een microfoon en ingevoerd in een LM393 opamp. Zodra het geluidsniveau het instelpunt overschrijdt, gaat een LED op de module branden en de uitgang.

Doel

Het doel van deze componenten voor het gehele project is het verkrijgen van een geluids/volume uitlezing van de geluidssensor module en door die uitlezing zal een RGB LED de juiste kleur met betrekking tot geluid activeren.

Geluidssensormodule - Arduino-pin (gebruik 3-pins jumperdraad)

  • Uitgang - A0 analoge pin
  • GND - Elke open GND-pinsleuf
  • VCC - 3V

RGB gemeenschappelijke anode (+) LED - Arduino-pin

  • Rood - 9
  • Vermogen - 5V
  • Groen - 10
  • Blauw - 11

Houd er rekening mee dat elke afzonderlijke draad moet worden aangesloten op een weerstand van 330 ohm. Gebruik de afbeelding hierboven als referentie.

Mijn moeilijkste taak in deze build is uitzoeken waar elke draad is aangesloten. Hierboven geef ik u een snelle en gemakkelijke manier om naar de draadlocaties te gaan, zolang deze van boven naar beneden worden gevolgd, is het een tip om uw tijd te nemen en ervoor te zorgen dat elke pin correct in de juiste sleuf wordt gestoken om toekomstig debuggen te voorkomen.

*Tip is om te volgen waar elke draad hoe dan ook wordt ingebracht

Alle Tinkercad-schetsen van de specifieke componentdraden hebben de juiste kleurcode, dus volg mee

Stap 4: Coderen

Code

Met deze code kunnen alle componenten samenwerken door een nieuw gedefinieerde functie te gebruiken om alle vele bedieningselementen te bevatten. geluid dat het zou maken, afhankelijk van de druk op de knop.

Een must-have binnen deze code was de toetsenbordbibliotheek

Link hier:

Voeg na het downloaden de nieuwe bibliotheek toe aan de Arduino en voeg daarna de enkele regel code in die nodig is om deze te activeren.

Moeilijkheden die ik tijdens de code had, was waar ik de nieuw gedefinieerde functies moest plaatsen, omdat ik met vallen en opstaan ontdekte dat het in de setup moest zijn en niet in de lus.

Code

#include // Toetsenbordbibliotheek

int groenePin = 11; // RGB groene pin aangesloten op digitale pin 9

int redPin= 10; // RGB rode pin aangesloten op digitale pin 9

int blauwPin = 9; // RGB Blue Pin aangesloten op digitale pin 9 int speakerPin = 12; // luidspreker aangesloten op digitale pin 12 const byte RIJEN = 4; // vier rijen const byte COLS = 4; // vier kolommen const int soundPin = A0; // geluidssensor hechten aan A0

char-toetsen [ROWS][COLS] = {

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

byte rowPins [ROWS] = {2, 3, 4, 5}; // maak verbinding met de rij-pinouts van het toetsenbord

byte colPins [COLS] = {6, 7, 8, 13}; // verbind met de kolom pinouts van het toetsenbord

Toetsenbord toetsenbord = Toetsenbord (makeKeymap (toetsen), rowPins, colPins, RIJEN, COLS); // Maakt sleutels

ongeldige setup(){

pinMode (speakerPin, OUTPUT); // stelt de speakerPin in als output

pinMode (redPin, UITGANG); // stelt de rode pin in als een output pinMode (greenPin, OUTPUT); // stelt de groene pin in als output pinMode (bluePin, OUTPUT); // stelt de blauwe pin in als uitvoer

Serieel.begin (9600);

} void setColor (int rood, int groen, int blauw) // Nieuw gedefinieerde functie waarmee RGB kleur kan weergeven via RGB-code { #ifdef COMMON_ANODE rood = 255 - rood; groen = 255 - groen; blauw = 255 - blauw; #endif analogWrite(redPin, rood); analogWrite(greenPin, groen); analogWrite(bluePin, blauw); }

void piep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds) { // de geluidsproducerende functies

int x; long delayAmount = (long)(1000000/frequencyInHertz); lange loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2)); voor (x=0;x

lege lus (){

char key = toetsenbord.getKey(); int value = analogRead(soundPin);//lees de waarde van A0 Serial.println(value);//print de waarde

if (sleutel != NO_KEY) {

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

Stap 5: Laatste gedachten

Image
Image

Laatste gedachten

De laatste gedachten van dit project zijn dat het bedoeld is om speelgoed te zijn, om plezier en simplistische vreugde te brengen. Aangezien dit project een compleet en werkend project is, geloof ik dat deze build kan worden verbeterd met misschien meer componenten zoals een opname-element, of copy/simon Says-element, of zelfs LCD met de noten die een specifiek nummer lijken te spelen.

Ik zou graag uw mening willen weten over de toetsenbordmodule, welke componenten u dacht dat toegevoegd hadden kunnen worden. Ga je het gebruiken in een van je projecten? Plaats uw ideeën in de opmerkingen hieronder.

Zorg ervoor dat je deelt als je genoten hebt van dit arduino-project.

Aanbevolen: