24: Theremin met joystick¶
In deze les gaan we een theremin met joystick maken.
\pagebreak
24.1: opdracht: aansluiten piezo¶
- Sluit een piezo aan op pin 5.
- Gebruik een weerstand van tienduizend Ohm, kleurcode: bruin-zwart-oranje-goud
\pagebreak
24.1: oplossing: aansluiten piezo¶
\pagebreak
24.2: opdracht: de volume
bibliotheek¶
Upload de volgende code:
#include "Volume.h"
Volume vol; // Piezo in pin 5
void setup()
{
vol.begin();
}
void loop()
{
const int toon_hoogte = 440;
const int volume = 255;
vol.tone(toon_hoogte, volume);
vol.delay(10);
}
Doet de 'Volume' bibliotheek het niet, ga dan naar de les 'Volume installeren'.
\pagebreak
24.3: opdracht: aansluiten joystick¶
Sluit een joystick aan:
Pin joystick | Pin Arduino |
---|---|
+5V | 5V |
GND | GND |
VRx of VER | A0 |
\pagebreak
24.3: oplossing: aansluiten joystick¶
\pagebreak
24.4: opdracht: toon hoogte lineair¶
Lees de joystick.
Gebruik:
\pagebreak
24.4: oplossing: toon hoogte lineair¶
#include "Volume.h"
Volume vol; // Piezo in pin 5
void setup()
{
pinMode(A0, INPUT);
vol.begin();
}
void loop()
{
const int input_toon_hoogte = analogRead(A0);
const int toon_hoogte = input_toon_hoogte;
const int volume = 255;
vol.tone(toon_hoogte, volume);
vol.delay(10);
}
\pagebreak
24.5: opdracht: toonhoogte exponentieel¶
De toonhoogte klinkt nog niet mooi.
Dat komt omdat hogere tonen steeds verder van elkaar af gaan zitten.
Met pow
kunnen we een machtverheffing doen (wat dat ook is),
zodat we mooi door de tonen heen kunnen gaan.
Vervang:
door:
\pagebreak
24.5: oplossing: toonhoogte exponentieel¶
#include "Volume.h"
Volume vol; // Piezo in pin 5
void setup()
{
pinMode(A0, INPUT);
vol.begin();
}
void loop()
{
const int input_toon_hoogte = analogRead(A0);
const int toon_hoogte = 110.0 * pow(2.0, 0.002 * input_toon_hoogte);
const int volume = 255;
vol.tone(toon_hoogte, volume);
vol.delay(10);
}
\pagebreak
24.6: eindopdracht¶
- Sluit een tweede pin (
VRy
ofHOR
) van de joystick aan op A1. - Gebruik:
- Gebruik: