Inhoudsopgave:

Arduino-piano met drukknopschakelaars - Ajarnpa
Arduino-piano met drukknopschakelaars - Ajarnpa

Video: Arduino-piano met drukknopschakelaars - Ajarnpa

Video: Arduino-piano met drukknopschakelaars - Ajarnpa
Video: Управляйте 10 выходными контактами или реле с помощью 10 кнопочных переключателей с 1 входным контактом Arduino ANPB-V2. 2024, Juli-
Anonim
Arduino-piano met drukknopschakelaars
Arduino-piano met drukknopschakelaars
Arduino-piano met drukknopschakelaars
Arduino-piano met drukknopschakelaars

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
Stap 1: Het circuit bouwen
Stap 1: Het circuit bouwen
Stap 1: Het circuit bouwen
Stap 1: Het circuit bouwen
Stap 1: Het circuit bouwen
Stap 1: Het circuit bouwen

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: