Wie ein Instrument zu machen mit dem Arduino

Das Arduino können Sie darüber hinaus spielen einen Sound zu gehen - Sie Ihr eigenes Instrument, ähnlich dem Theremin erstellen. Das Theremin

, nach seinem Erfinder L # mit dem Namen 233-on Theremin, war eines der ersten elektronischen Instrumente, in den 1920er Jahren entwickelt. Es funktionierte durch das elektromagnetische Feld der Hände des Spielers Erkennungssignale zu ändern: einerseits für die Lautstärke und die andere für die Tonhöhe.

Die PitchFollower Skizze

In dieser Skizze, finden Sie heraus, wie ein Budget Theremin, um eine piezo als Lichtsensor mit der Tonhöhe zu steuern.

Du brauchst:

  • Ein Arduino Uno

  • Ein Steckbrett

  • Ein piezo

  • Ein Lichtsensor

  • Ein 47k-Ohm-Widerstand

  • Jump Drähte

Diese Schaltung hat zwei getrennte Hälften, die Piezo und der Lichtsensorschaltung. Der piezo wird, wie in der Skizze toneMelody verdrahtet, mit einem Draht zum digitalen Stift 8 und der andere an GND.

bild0.jpg

Der Lichtsensor ist mit 0 auf einer Seite und 5 V auf dem Andere- der 4,7K-Widerstand-Analog ist zwischen analog 0 und Masse geschaltet.

image1.jpg

Füllen Sie die Schaltung, und öffnen Sie die Skizze, indem Sie Datei-Beispiele-02.Digital-tonePitchFollower.

/ * Pitch followerPlays einen Platz, der auf einem sich verändernden analogen Eingangsschaltung basierend Änderungen: * 8-Ohm-Lautsprecher auf digitalen Stift 8 * photoresistor auf analog 0 bis 5 V * 4.7K Widerstand auf analoge 0 bis groundcreated 21. Januar 2010modified 9. April 2012by Tom IgoeThis Beispielcode die Öffentlichkeit domain.http ist in: //arduino.cc/en/Tutorial/Tone2*/void Setup () {// serielle Kommunikation initialisiert werden (für Debug-only): Serial.begin (9600) -} void loop () { // lesen Sie den Sensor:int sensorReading = analogRead(A0) - // der Sensor drucken Lesen so wissen Sie, ihr AngebotSerial.println(SensorReading) - // Karte das Spielfeld auf den Bereich des analogen input.// die minimalen und maximalen Eingangsnummern unter // ändern in Abhängigkeit von dem Bereich geben Sie Ihre Sensors:int thisPitch = Karte(SensorReading, 400, 1000, 100, 1000) - // die Tonhöhe spielen:Ton(8, thisPitch, 10) -verzögern(1) - // Verzögerung zwischen liest für Stabilität}

Nachdem Sie die Skizze gefunden haben, drücken Sie die Compile, um den Code zu überprüfen. Syntaxfehler schalten Sie das Feld Meldung rot, wenn sie entdeckt werden, und Sie sehen eine Fehlermeldung, die besagt, was falsch ist.

Wenn die Skizze richtig kompiliert, klicken Sie auf Hochladen, um die Skizze zu dem Board hochzuladen. Wenn es fertig ist das Hochladen, sollten Sie einen Lichtsensor haben, der die Tonhöhe Ihrer Summer ändern wird. Wenn Sie keine Änderung hören, stellen Sie sicher, dass Sie auf über Ihre Steckbrett eine Schreibtischlampe einzuschalten. Dies wird dazu beitragen, den Unterschied zu erhöhen, wenn Sie den Lichtsensor mit der Hand abdecken.

Wenn nichts geschieht, sollten Sie noch einmal überprüfen Sie Ihre Verkabelung:

  • Stellen Sie sicher, dass Sie die richtige PIN-Nummer für die Ein- und Ausgänge verwenden.

  • Überprüfen Sie, ob Ihre Piezo ist der richtige Weg eingeschaltet. Symbole können auf der Unterseite ausgeblendet werden, wenn sie nicht sichtbar sind.

  • Überprüfen Sie die Anschlüsse auf dem Steckbrett. Wenn die Sprung Drähte oder Komponenten nicht die richtigen Zeilen in der Steckbrett verbunden verwenden, werden sie nicht funktionieren.

Die PitchFollower Skizze Aufschlüsselung

Diese Skizze wandelt direkt die Messwerte von dem Lichtsensor auf eine Frequenz, anstatt eine Nachschlagetabelle erfordert. Das bedeutet, dass man sie einzeln zwischen den Noten sowie wählen gleiten kann.

Im Setup wird die serielle Schnittstelle zu ermöglichen, geöffnet, um die Sensorwerte zu überwachen, wie sie hereinkommen.

Leere Setup () {// serielle Kommunikation initialisiert werden (für Debug-only): Serial.begin (9600) -}

In der Hauptschleife wird der Lichtsensor von der analogen Stift lesen 0. Diese Lesart auch auf den seriellen Monitor weitergeleitet wird.

(Void loop) {// lesen Sie den Sensor:int sensorReading = analogRead(A0) - // der Sensor drucken Lesen so wissen Sie, ihr AngebotSerial.println(SensorReading) -

Um den Sensor der Bereich auf den Bereich von Frequenzen umwandeln, die der Summer abdecken kann, verwenden Sie die Karte Funktion.

 Karte // die Tonhöhe auf den Bereich des analogen input.// die minimalen und maximalen Eingangszahlen unter // auf der Strecke geben, je ändern Sie Ihre Sensors:int thisPitch = Karte(SensorReading, 400, 1000, 100, 1000) -

Der Ton Funktion gibt dann die Notiz mit dem zugeordneten Sensorwert und eine sehr kurze Dauer von 10 Millisekunden. Diese Dauer dient der Ton hörbar, aber die wirkliche Dauer zu machen, wird davon abhängen, wie lange Sie Ihre Hand über den Sensor halten, wie zuvor beschrieben.

 // Die Tonhöhe spielen:Ton(8, thisPitch, 10) -

Schließlich tritt eine kleine Verzögerung am Ende der Schleife, um die Stabilität für die Messwerte zu verbessern.

 verzögern(1) - // Verzögerung zwischen liest für Stabilität}

Mit dieser Einrichtung können Sie schnell einen einfachen Controller machen und vielleicht sogar ein wanderndes Theremin Band mit Ihren Freunden bilden.

Menü