Introduction: DJ Controller

Deze tutorial is geschreven in het Nederlands. Voor school een DJ Controller gemaakt.

Wij hebben gekozen voor een simpel design van hout. Het bevat 4 knoppen, een potentiometer en een lichtsensor. Met gebruik van Reaper hebben wij uiteindelijk muziek hier mee kunnen creëren.

Step 1: Benodigdheden

Componenten:

  • 1 x Arduino Uno
  • 4 x 22 kohm Resistor
  • 4 x Pushbutton
  • 1 x 250 kOhm, Potentiometer
  • 1 x Photoresistor (LDR)
  • 1 x 100 kohm Resistor
  • +/- 1m solid-core jumper draad (mochten zich er problemen voorkomen)

Gereedschap:

  • Soldeerbout en soldeertin
  • Lasercutter of zaag
  • Striptang
  • Kniptang

Step 2: Voorbeeld

Maak het voorbeeld na. Deze is van belang, aangezien we eerst willen testen of alles zeker werkt. Voor dat we zouden beginnen met solderen. De code volgt in de volgende stap.

Step 3: Code Arduino

Het is voldoende om de code hieronder te kopiëren en te plakken in Arduino. Je kan dezelfde poorten van de knoppen, potentiometer en lichtsensor overnemen. Zo niet verander deze dan wel zeker. Wij hebben gebruik gemaakt bij de knoppen van digitale poorten 2,3,4 en 7. Bij de potentiometer de analoge poort A0. Bij de lichtsensor de analoge poort A1.

Start code:

// baud rate

const int baudRate = 9600;

// time to wait in ms between polls to the pins

const int loopPauseTime = 200; // milli seconds

// start and end values for the message sent on Serial

const String startString = "*",

endString = "#";

const char contactCharacter = '@';

// pin id's

const int buttonPin = 2;

const int buttonPin2 = 4;

const int buttonPin3 = 7;

const int buttonPin4 = 3;

const int analogPin = A0;

const int analogPin2 = A1;

// other global variables

int buttonState = 0;

int buttonState2 = 0;

int buttonState3 = 0;

int buttonState4 = 0;

int sensorPin = A0; // select the input pin for LDR

int sensorValue = 0; // variable to store the value coming from the sensor

// We need this function to establish contact with the Processing sketch // Keep it here

void establishContact() {

while (Serial.available() <= 0) {

Serial.print(contactCharacter); // send a char and wait for a response...

delay(0);

}

Serial.read();

}

void setup() {

pinMode(buttonPin, INPUT);

pinMode(buttonPin2, INPUT);

pinMode(buttonPin3, INPUT);

pinMode(buttonPin4, INPUT);

pinMode(analogPin, INPUT);

pinMode(analogPin2, INPUT);

// initialize Serial comms

Serial.begin(baudRate);

Serial.begin(9600); //sets serial port for communication

while (!Serial) {

// wait for handshake

establishContact();

}

}

void loop() {

buttonState = digitalRead(buttonPin);

buttonState2 = digitalRead(buttonPin2);

buttonState3 = digitalRead(buttonPin3);

buttonState4 = digitalRead(buttonPin4);

sensorValue = analogRead(sensorPin); // read the value from the sensor

Serial.println(sensorValue); //prints the values coming from the sensor on the screen

delay(100);

// float v0 = map(analogRead(pin1), (fromMin,fromMax,toMin,toMax); // if you want to use a normalized float (eg. for volume)

float v1 = map(analogRead(A0), 0, 50, 0, 50) / 1000.0;

float v2 = map(analogRead(A1), 0, 1, 0, 1) / 1000.0;

// write start of message

Serial.print(startString); // start a message sequence

// wirte all the name,value pairs, separated by commas HEEL BELANGRIJK !!!

Serial.print("knop 1,");

Serial.print(buttonState);

Serial.print(",");

Serial.print("knop 2,");

Serial.print(buttonState2);

Serial.print(",");

Serial.print("knop 3,");

Serial.print(buttonState3);

Serial.print(",");

Serial.print("knop 4,");

Serial.print(buttonState4);

Serial.print(",");

Serial.print("effect meter,");

Serial.print(v1);

Serial.print(",");

Serial.print("effect licht,");

Serial.print(v2);

// write the end of message

Serial.print(endString);

// wait for a while..

delay(loopPauseTime);

}

Step 4: Behuizing

Benodigdheden:

Materiaal naar wens. Zelf hebben wij hout gebruikt met een dikte van +/- 1cm

Afmetingen:

Bovenkant en onderkant:

  • lengte van 19,5 cm en breedte 9,9 cm

Zijkanten:

  • 2x lengte 9,9 cm en 4,5 cm.
  • 2x lengte 18cm en breedte 4,5 cm.

Step 5: Aanpassen Van Bovenkant

In deze stap maak je de gaten voor de knoppen, potentiometer en lichtsensor. Plaats van de gaten mag jezelf beslissen.

De gaten voor de knoppen zijn een cirkel met diameter 12mm.

Het gat voor de potentiometer is een cirkel met diameter 7mm.

Het gat voor de lichtsensor is een rechthoek van lengte 3mm en breedte 2mm.

Aan één van de zijkanten van lengte 9,9 cm en breedte 4,5 cm. Is het de bedoeling om een opening te hebben, waar de kabel doorheen kan. Onze opening is 3cm in de breedte en 2cm in de hoogte.

Step 6: Solderen

Soldeer de draad aan de componenten. Maak voor de draad gebruik van de striptang en kniptang.

Hierna soldeer de componenten aan elkaar zodat het breadboard overbodig word. De gesoldeerde componenten moeten uiteindelijk op de schijf (foto 1) komen. Zoals in de tweede foto weergeven.

Zorg er zeker voor dat de draden niet te lang zijn. Anders zul je problemen ondervinden met alles erin te plaatsen.