• No results found

Figure 1: Boek 6: Theremin

N/A
N/A
Protected

Academic year: 2022

Share "Figure 1: Boek 6: Theremin"

Copied!
46
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Figure 1: Boek 6: Theremin

1

(2)

Contents

Voorwoord 1

21: Theremin met potmeters 2

22: Theremin met LDRs 13

23: Theremin met infrarood afstandssensoren 24

24: Theremin met joystick 35

Voorwoord

Figure 1: Het logo van De Jonge Onderzoekers

Dit is het boek van de Arduino cursus. Een Arduino is een machine die je kunt programmeren. Dit boek leert je hoe je elektronica op de Arduino aansluit, en hoe je deze programmeert.

Over dit boek

Dit boek heeft een CC-BY-NC-SA licensie.

Figure 2: De licensie van dit boek

(C) Arduino cursus Groningen 2017

Het is nog een beetje een slordig boek. Er zitten tiepvauten in en de opmaak is niet altijd even mooi.

Daarom staat dit boek op een GitHub. Om precies te zijn, op https://github.com/richelbilderbeek/ArduinoCourse. Hierdoor kan iedereen die dit boek te slordig vindt minder slordig maken.

1

(3)

21: Theremin met potmeters

In deze les gaan we een theremin met potmeters maken.

Figure 3: Een theremin

2

(4)

21.1: opdracht: aansluiten piezo

• Sluit een piezo aan op pin 5.

• Gebruik een weerstand van tienduizend Ohm, kleurcode: bruin-zwart-oranje-goud

3

(5)

21.1: oplossing: aansluiten piezo

Figure 4: Aansluiten piezo

4

(6)

21.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’.

5

(7)

21.3: opdracht: aansluiten potmeter

Sluit een potmeter aan op A0.

6

(8)

21.3: oplossing: aansluiten potmeter

Figure 5: Aansluiten potmeter

7

(9)

21.4: opdracht: toon hoogte lineair

Lees de potmeter.

Gebruik:

const int input_toon_hoogte = /* lees de waarde van A0 */; const int toon_hoogte = input_toon_hoogte;

8

(10)

21.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);

}

9

(11)

21.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:

const int toon_hoogte = input_toon_hoogte;

door:

const int toon_hoogte = 110.0 * pow(2.0, 0.002 * input_toon_hoogte);

10

(12)

21.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);

}

11

(13)

21.6: eindopdracht

• Sluit een tweede potmeter aan op A1.

• Gebruik:

const int input_volume = /* lees de waarde van A1 */;

• Gebruik:

const int volume = 1.0 * pow(2.0, 0.0078125 * input_volume);

12

(14)

22: Theremin met LDRs

In deze les gaan we een theremin met LDRs maken.

13

(15)

22.1: opdracht: aansluiten piezo

• Sluit een piezo aan op pin 5.

• Gebruik een weerstand van tienduizend Ohm, kleurcode: bruin-zwart-oranje-goud

14

(16)

22.1: oplossing: aansluiten piezo

Figure 6: Aansluiten piezo

15

(17)

22.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’.

16

(18)

22.3: opdracht: aansluiten LDR

Sluit een LDR aan op A0. Je hebt een LDR en een weerstand van 10k Ohm (bruin-zwart-oranje-goud) nodig.

17

(19)

22.3: oplossing: aansluiten LDR

Figure 7: Aansluiten LDR

18

(20)

22.4: opdracht: toon hoogte lineair

Lees de LDR.

Gebruik:

const int input_toon_hoogte = /* lees de waarde van A0 */; const int toon_hoogte = input_toon_hoogte;

19

(21)

22.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);

}

20

(22)

22.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:

const int toon_hoogte = input_toon_hoogte;

door:

const int toon_hoogte = 110.0 * pow(2.0, 0.002 * input_toon_hoogte);

21

(23)

22.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);

}

22

(24)

22.6: eindopdracht

• Sluit een tweede LDR aan op A1.

• Gebruik:

const int input_volume = /* lees de waarde van A1 */;

• Gebruik:

const int volume = 1.0 * pow(2.0, 0.0078125 * input_volume);

23

(25)

23: Theremin met infrarood afstandssensoren

In deze les gaan we een theremin met infrarood afstandssensoren maken.

24

(26)

23.1: opdracht: aansluiten piezo

• Sluit een piezo aan op pin 5.

• Gebruik een weerstand van tienduizend Ohm, kleurcode: bruin-zwart-oranje-goud

25

(27)

23.1: oplossing: aansluiten piezo

Figure 8: Aansluiten piezo

26

(28)

23.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’.

27

(29)

23.3: opdracht: aansluiten infrarood afstandssensor

Sluit een infrarood afstandssensor aan op A0.

28

(30)

23.3: oplossing: aansluiten infrarood afstandssensor

Figure 9: Aansluiten infrarood afstandssensor

29

(31)

23.4: opdracht: toon hoogte lineair

Lees de infrarood afstandssensor.

Gebruik:

const int input_toon_hoogte = /* lees de waarde van A0 */; const int toon_hoogte = input_toon_hoogte;

30

(32)

23.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);

}

31

(33)

23.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:

const int toon_hoogte = input_toon_hoogte;

door:

const int toon_hoogte = 110.0 * pow(2.0, 0.002 * input_toon_hoogte);

32

(34)

23.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);

}

33

(35)

23.6: eindopdracht

• Sluit een tweede infrarood afstandssensor aan op A1.

• Gebruik:

const int input_volume = /* lees de waarde van A1 */;

• Gebruik:

const int volume = 1.0 * pow(2.0, 0.0078125 * input_volume);

34

(36)

24: Theremin met joystick

In deze les gaan we een theremin met joystick maken.

35

(37)

24.1: opdracht: aansluiten piezo

• Sluit een piezo aan op pin 5.

• Gebruik een weerstand van tienduizend Ohm, kleurcode: bruin-zwart-oranje-goud

36

(38)

24.1: oplossing: aansluiten piezo

Figure 10: Aansluiten piezo

37

(39)

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’.

38

(40)

24.3: opdracht: aansluiten joystick

Sluit een joystick aan:

Pin joystick Pin Arduino

+5V 5V

GND GND

VRx of VER A0

39

(41)

24.3: oplossing: aansluiten joystick

Figure 11: Aansluiten joystick

40

(42)

24.4: opdracht: toon hoogte lineair

Lees de joystick.

Gebruik:

const int input_toon_hoogte = /* lees de waarde van A0 */; const int toon_hoogte = input_toon_hoogte;

41

(43)

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);

}

42

(44)

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:

const int toon_hoogte = input_toon_hoogte;

door:

const int toon_hoogte = 110.0 * pow(2.0, 0.002 * input_toon_hoogte);

43

(45)

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);

}

44

(46)

24.6: eindopdracht

• Sluit een tweede pin (VRy of HOR) van de joystick aan op A1.

• Gebruik:

const int input_volume = /* lees de waarde van A1 */;

• Gebruik:

const int volume = 1.0 * pow(2.0, 0.0078125 * input_volume);

45

Referenties

GERELATEERDE DOCUMENTEN

Als deze zin (te) vaak geroepen wordt, kort nadat de echtscheiding heeft plaatsgevonden, is het mogelijk dat betrokkene zichzelf probeert te overtuigen, dat hij of zij zich niet

[r]

[r]

jaren negentig zichzelf bestuurd in een de facto afgescheiden gebied in het bergachtige noorden van de staat Irak; de Koerden kunnen daarom be- schouwd worden als een eigen

De nieuwe meldplicht komt erop neer, dat de verantwoordelijke een logboek moet bijhouden van alle datalekken, dat hij van ernstige gevallen melding moet doen aan het CBP en soms

Ik kan de emoties van een ander niet voelen omdat die zich in het innerlijk van die ander afspelen en niet iets gemeen schappelijks zijn.. Het uiten van emoties

En alsof het niet genoeg was, verhaalt Marcus ons over nieuwe mogelijkheden De eerste regel van zijn verhaal over God en mensen bevat zijn hele geloofsbelijdenis:.. ‘Dit is het

Ik zal er zijn voor jou Ik laat je niet alleen Ik zal er zijn voor jou Mijn licht straalt om je heen Tekst: Hanna Lam... april