![Arduino-piano met drukknopschakelaars - Ajarnpa Arduino-piano met drukknopschakelaars - Ajarnpa](https://i.howwhatproduce.com/images/011/image-32010-j.webp)
Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
![Arduino-piano met drukknopschakelaars Arduino-piano met drukknopschakelaars](https://i.howwhatproduce.com/images/011/image-32010-1-j.webp)
![Arduino-piano met drukknopschakelaars Arduino-piano met drukknopschakelaars](https://i.howwhatproduce.com/images/011/image-32010-2-j.webp)
Gemaakt door: Haotian Ye
Overzicht
Dit is een pianobord met acht drukknopschakelaars waarmee je één octaaf (Do Re Mi Fa So La Si Do) kunt spelen en met dit één octaaf kun je proberen een aantal nummers te spelen die je leuk vindt. Voor dit project is er een aantal belangrijke kennis die u moet weten voordat u begint.
Eerst moeten we de frequenties van de basisnoten van een piano kennen.
Hieronder vind je de frequenties:
Doen – 261Hz
Opnieuw – 294Hz
Mi – 329Hz
Fa – 349Hz
Dus – 392Hz
La – 440Hz
Si – 493Hz
Doen – 523Hz
Ten tweede zal ik je laten zien hoe je het circuit kunt bouwen met behulp van de onderdelen die je kunt kopen bij Lee's Electronic Store. Ten slotte zal ik de code presenteren en uitleggen die moet worden geüpload naar het Arduino-bord.
Onderdelen die je nodig hebt:
Arduino Uno R3 (Product-ID: 10997)
USB A-naar-B-kabel M/M (product-ID: 29861)
10K Weerstand * 8 (Product-ID: 91516)
Verschillende kleuren tack-schakelaar * 8 (product-ID: 3124, 31242, 31243, 31245, 31246)
Mini-luidspreker (product-ID: 41680)
Breadboard (Product-ID: 106861)
Doorverbindingsdraden (Product-ID: 21801)
Stap 1: Stap 1: Het circuit bouwen
![Stap 1: Het circuit bouwen Stap 1: Het circuit bouwen](https://i.howwhatproduce.com/images/011/image-32010-3-j.webp)
![Stap 1: Het circuit bouwen Stap 1: Het circuit bouwen](https://i.howwhatproduce.com/images/011/image-32010-4-j.webp)
![Stap 1: Het circuit bouwen Stap 1: Het circuit bouwen](https://i.howwhatproduce.com/images/011/image-32010-5-j.webp)
![Stap 1: Het circuit bouwen Stap 1: Het circuit bouwen](https://i.howwhatproduce.com/images/011/image-32010-6-j.webp)
Plaats eerst alle drukknopschakelaars en miniluidspreker één voor één op het breadboard en match ze op één rij. Verbind vervolgens de pinnen van elke drukknopschakelaar met de grond. Sluit vervolgens 10k-weerstanden aan tussen positief vermogen en de andere pinnen van elke drukknopschakelaar. En sluit deze kolom aan op pinnen 2-9 op het Arduino-bord. Sluit ook de grond aan op de grondpin en positieve voeding op de 3,3v-pin op Arduino. Sluit tot slot de mini-speaker aan op pin 10 op Arduino.
Stap 2: Stap 2: Code en uitleg
De onderstaande code is wat ik heb geschreven
const int zwart = 2;
const int wit = 3;
const int rood = 4;
const int groen = 5;
const int blauw = 6;
const int zwart2 = 7;
const int groen2 = 8;
const int rood2 = 9;
const int speaker = 10;// Koppel alle drukknopschakelaars en luidspreker met Arduino's signaalpinnen
int frequentie = {262, 294, 330, 349, 392, 440, 493, 523};// array bevat alle frequenties van één octaaf
ongeldige setup() {
// plaats hier je setup-code om een keer uit te voeren:
pinMode (zwart, INPUT);
pinMode (wit, INGANG);
pinMode (rood, INPUT);
pinMode (groen, INPUT);
pinMode (blauw, INPUT);
pinMode (zwart2, INPUT);
pinMode (groen2, INPUT);
pinMode (rood2, INPUT);
pinMode (luidspreker, UITGANG);
toon (spreker, 2000);
Serieel.begin (9600);
}
lege lus() {
// plaats hier je hoofdcode om herhaaldelijk uit te voeren:
if (digitalRead (zwart) == LAAG)// wanneer u op de "DO" drukknop schakelaar
{toon (luidspreker, frequentie [0], 50);
vertraging (50);
geen toon (luidspreker);}
anders als (digitalRead (wit) == LAAG)// wanneer u op de "RE" drukknopschakelaar drukt
{toon (luidspreker, frequentie [1], 50);
vertraging (50);
geen toon (luidspreker);}
anders als (digitalRead (rood) == LAAG)// wanneer u op de "MI" drukknopschakelaar drukt
{toon (luidspreker, frequentie [2], 50);
vertraging (50);
geen toon (luidspreker);}
anders als (digitalRead (groen) == LAAG)// wanneer u op de "FA" drukknopschakelaar drukt
{toon (luidspreker, frequentie [3], 50);
vertraging (50);
geen toon (luidspreker);}
anders als (digitalRead (blauw) == LAAG)// wanneer u op de "SO" drukknopschakelaar drukt
{toon (luidspreker, frequentie [4], 50);
vertraging (50);
geen toon (luidspreker);}
else if (digitalRead (black2) == LAAG)// wanneer u op de "LA" drukknopschakelaar drukt
{toon (luidspreker, frequentie [5], 50);
vertraging (50);
geen toon (luidspreker);}
else if (digitalRead (green2) == LAAG)// wanneer u op de "SI" drukknopschakelaar drukt
{toon (luidspreker, frequentie [6], 50);
vertraging (50);
geen toon (luidspreker);}
else if (digitalRead (red2) == LOW)// wanneer u op de "DO" drukknop drukt
{toon(luidspreker, frequentie[7], 50);
vertraging (50);
geen toon (luidspreker);}
else// als je op niets drukt
geen toon (luidspreker);
}
Eerst moeten we alle drukknopschakelaars en luidspreker declareren als de pin van 2 tot 10 op Arduino. Elke schakelaar staat voor één noot. Gebruik vervolgens één array om alle frequenties erin te plaatsen. Vervolgens gebruik ik de If en else-instructie om Arduino te laten weten op welke drukknop ik druk.
Sluit tot slot je Arduino-bord aan op je computer of laptop met een usb A naar B-kabel. Voordat u uw code uploadt, moet u nog steeds Arduino-software downloaden en een aantal standaardinstellingen uitvoeren. Selecteer Extra -> Bord -> Arduino/Genuino Uno; Vervolgens moeten we de communicatiepoort selecteren die op het Arduino-bord is aangesloten. Selecteer Extra -> Poort en vervolgens de poortnaam met het label "(Arduino/Genuino Uno)". Vervolgens kunt u de code uploaden naar het Arduino-bord.
Aanbevolen:
Digitale klok met netwerktijd met behulp van de ESP8266: 4 stappen (met afbeeldingen)
![Digitale klok met netwerktijd met behulp van de ESP8266: 4 stappen (met afbeeldingen) Digitale klok met netwerktijd met behulp van de ESP8266: 4 stappen (met afbeeldingen)](https://i.howwhatproduce.com/images/005/image-14045-j.webp)
Digitale netwerkklok met de ESP8266: we leren hoe we een schattige kleine digitale klok kunnen bouwen die communiceert met NTP-servers en de netwerk- of internettijd weergeeft. We gebruiken de WeMos D1 mini om verbinding te maken met een wifi-netwerk, de NTP-tijd te verkrijgen en deze weer te geven op een OLED-module. De video hierboven
DIY slimme weegschaal met wekker (met wifi, ESP8266, Arduino IDE en Adafruit.io): 10 stappen (met afbeeldingen)
![DIY slimme weegschaal met wekker (met wifi, ESP8266, Arduino IDE en Adafruit.io): 10 stappen (met afbeeldingen) DIY slimme weegschaal met wekker (met wifi, ESP8266, Arduino IDE en Adafruit.io): 10 stappen (met afbeeldingen)](https://i.howwhatproduce.com/images/001/image-2845-29-j.webp)
DIY Slimme Weegschaal Met Wekker (met Wi-Fi, ESP8266, Arduino IDE en Adafruit.io): In mijn vorige project ontwikkelde ik een slimme weegschaal met Wi-Fi. Het kan het gewicht van de gebruiker meten, het lokaal weergeven en naar de cloud sturen. U kunt hier meer informatie over krijgen op onderstaande link: https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Pratende Arduino - Een MP3 afspelen met Arduino zonder enige module - Mp3-bestand afspelen vanaf Arduino met PCM: 6 stappen
![Pratende Arduino - Een MP3 afspelen met Arduino zonder enige module - Mp3-bestand afspelen vanaf Arduino met PCM: 6 stappen Pratende Arduino - Een MP3 afspelen met Arduino zonder enige module - Mp3-bestand afspelen vanaf Arduino met PCM: 6 stappen](https://i.howwhatproduce.com/images/002/image-6000-12-j.webp)
Pratende Arduino | Een MP3 afspelen met Arduino zonder enige module | Mp3-bestand van Arduino afspelen met PCM: in deze instructie leren we hoe we een mp3-bestand met arduino kunnen spelen zonder een audiomodule te gebruiken, hier gaan we de PCM-bibliotheek voor Arduino gebruiken die 16 bit PCM van 8 kHz-frequentie speelt, dus laten we dit doen
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 s
![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 s 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 s](https://i.howwhatproduce.com/images/003/image-7044-j.webp)
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
Start uw diavoorstelling met vakantiefoto's met een vleugje magie! 9 stappen (met afbeeldingen)
![Start uw diavoorstelling met vakantiefoto's met een vleugje magie! 9 stappen (met afbeeldingen) Start uw diavoorstelling met vakantiefoto's met een vleugje magie! 9 stappen (met afbeeldingen)](https://i.howwhatproduce.com/images/004/image-10827-4-j.webp)
Lanceer uw diavoorstelling met vakantiefoto's met een vleugje magie!: In de loop der jaren heb ik de gewoonte ontwikkeld om een klein beeldje mee te nemen op reis: ik koop vaak een kleine, lege artoy (zoals die op de foto) en verf het past bij de vlag en het thema van het land dat ik bezoek (in dit geval Sicilië). T