Inhoudsopgave:
- Stap 1: Benodigde materialen
- Stap 2: Bouwtijd
- Stap 3: Geluidssensormodule en RGB-led
- Stap 4: Coderen
- Stap 5: Laatste gedachten
Video: Toetsenbordmodule Piano met RGB LED - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
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
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
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
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
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:
WiFi-gestuurde eenhoornpet? Met RGB-verlichting: 5 stappen (met afbeeldingen)
WiFi-gestuurde eenhoornpet? Met RGB-verlichting: Hallo allemaal. Mijn kleintje stootte me een tijdje aan over interessante draagbare DIY's met betrekking tot de eenhoorns. Dus ik heb mijn hoofd gekrabd en besloten om iets ongewoons en met een zeer laag budget te creëren. Voor dit project is geen app nodig om door te gaan
Zie Geluidsgolven met gekleurd licht (RGB LED): 10 stappen (met afbeeldingen)
Zie Geluidsgolven met gekleurd licht (RGB LED): Hier kunt u geluidsgolven zien en de interferentiepatronen observeren die door twee of meer transducers worden gemaakt, aangezien de afstand ertussen varieert. (Links, interferentiepatroon met twee microfoons met 40.000 cycli per seconde; rechtsboven, enkele microfoon
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
RGB-temperatuurindicator (met XinaBox): 5 stappen (met afbeeldingen)
RGB-temperatuurindicator (met XinaBox): dit is officieel mijn eerste Instructables-artikel, dus ik ga toegeven dat ik deze gelegenheid nu gebruik om het uit te proberen. Krijg een idee van hoe het platform werkt, de hele gebruikerservaring ervan. Maar terwijl ik dat deed, dacht ik dat ik
Programmeerbare RGB LED-sequencer (met Arduino en Adafruit Trellis): 7 stappen (met afbeeldingen)
Programmeerbare RGB LED-sequencer (met Arduino en Adafruit Trellis): mijn zonen wilden gekleurde LED-strips om hun bureau te verlichten, en ik wilde geen ingeblikte RGB-stripcontroller gebruiken, omdat ik wist dat ze zich zouden vervelen met de vaste patronen deze regelaars hebben. Ik dacht ook dat het een geweldige kans zou zijn om