NLT

FME les 7: Tonekeyboard maken

In dit blog gaan we een tonekeyboard maken.

Bouw het onderstaande schema na.

_7_toneKeyboard_buzzer780

Benodigdheden:

  • Een buzzer
  • 2x female-male draad
  • 7x male-male draad
  • 2x 10K ohm weerstand
  • 2x drukknoppen

Het schema bestaat uit drie aparte stroomkringen. De drukknop1 staat in serie met de weerstand1. De drukknop2 staat in serie met de weerstand 2 en de buzzer heeft een aparte stroomkring. De weerstanden zijn ervoor om de spanning van de drukknoppen te regelen als de schakelaar niet is ingedrukt, want de arduino vindt het niet fijn als pins ‘zweven’ (als er niet duidelijk 0 (pulldown ) of 5 (Pullup) volt op staat).

/*

Tone keyboard

In deze sketch gaan we de arduino ombouwen tot een keyboard.

We beginnen met een keyboard met 2 toetsen (knoppen).

*/

#include “pitches.h” //hier worden de noten met bijbehorende frequentie beschreven

// kijk maar eens in het tabblad pitches.h, op elke regel is het laatste getal de

// frequentie van de toon.

const int knop1 = 2; // knop 1 is aangesloten op pin 2

const int knop2 = 3; // knop 2 is aangesloten op pin 3

const int speaker = 8; // de buzzer of speaker is aangesloten op pin 8

//(speaker met met 100 ohm weerstand)

const int toon1 = NOTE_C4; // de toon die hoort bij de noot

const int toon2 = NOTE_D4; // de toon die hoort bij de noot

int toestandknop1 = 0; // de waarde van knop 1

int toestandknop2 = 0; // de waarde van knop 2

void setup() {

pinMode(knop1, INPUT);

pinMode(knop2, INPUT);

pinMode (speaker, OUTPUT);

}

void loop(){

toestandknop1 = digitalRead(knop1);

toestandknop2 = digitalRead(knop2);

if (toestandknop1 == HIGH) {

tone(speaker, toon1); // toon 1 klinkt nu

}

else if (toestandknop2 == HIGH) {

tone(speaker, toon2);

}

else {

noTone(speaker);

}

}

/*

Als je een keyboard met twee knoppen kan maken, kan je het ook vast met meer..

Of misschien nog leuker, vervang de toetsen door lichtsensoren.

*/

De bovenstaande code moet je invullen op de computer om het schema te laten werken.

De input van de drukknop1 is pin 2.

De input van de drukknop 2 is pin 3

De input van de buzzer is pin 8

Als de drukknop 1 ingedrukt wordt ( high ) dan gaat de buzzer aan op toon 1.

Of als de drukknop 2 ingedrukt wordt ( high) dan gaat de buzzer aan op toon 2.

Als het iets anders is dan gaat de buzzer niet aan.

Natuurlijk kan je deze code zelf aanpassen en kan je er bijvoorbeeld voor zorgen dat de buzzer aangaat op toon 1 wanneer hij niet wordt ingedrukt ( low). En dat hij weer uit gaat wanneer de knop wordt ingedrukt ( high).

fotoHier een foto van hoe wij de schakeling hebben gemaakt.

Leave a Reply