Startseite Skripte für das Wintersemester 2018/19 Projekt „Citizen Science“ Arduino Grundlagen Light Theremin – ein schauriges Musikinstrument


Light Theremin – ein schauriges Musikinstrument

Verwendet einen 10kΩ Widerstand bei der Fotozelle.

Das Piezo-Element braucht keinen Widerstand und es spielt auch keine Rolle, wierum Ihr es auf das Breadboard steckt.

Arduino

// Aus dem „Arduino Projects Book“, S. 71ff

int sensorValue;
int sensorLow = 1023;
int sensorHigh = 0;

// const = unveränderbarer Wert
const int ledPin = 13;

void setup() {
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, HIGH);

  // Kalibriert die Fotozelle
  // in diesem Zeitraum die Hand über die Zelle so bewegen
  // dass die gewünschten Max- und Min-Werte eingestellt werden können
  while (millis() < 5000) {
    sensorValue = analogRead(A0);

    if (sensorValue > sensorHigh) {
      sensorHigh = sensorValue;
    }

    if (sensorValue < sensorLow) {
      sensorLow = sensorValue;
    }
  }

  // wenn die LED ausgeht, ist das Kalibrieren fertig
  digitalWrite(ledPin, LOW);
}

void loop() {
  sensorValue = analogRead(A0);

  // 50 - 4000 = Range of Frequency of Piezo
  // map überträgt die Sensor-Werte auf die Range der Frequency
  int pitch = map(sensorValue, sensorLow, sensorHigh, 50, 4000);

  // Ton an Pin8, 20 Millisekunden Länge
  tone(8, pitch, 20);

  // LED an, wenn pitch sehr niedrig ist
  if (pitch < 300){
    digitalWrite(ledPin, HIGH);
  } else {
   digitalWrite(ledPin, LOW);
  }

  delay(10);
}

Spielt mal mit den Werten der Frequenz und auch der Tonlänge…

Hardware-Aufbau