Hoe maak je een instrument met de Arduino Make

De Arduino kun je verder gaan dan het spelen van een geluid - je je eigen instrument, vergelijkbaar met de Theremin te creëren. De Theremin, vernoemd naar de uitvinder Léon Theremin, was één van de eerste elektronische instrumenten, ontwikkeld in de jaren 1920. Het werkte door het detecteren van het elektromagnetische veld van de handen van de speler om signalen te veranderen: enerzijds voor het volume en de andere voor pitch.

De PitchFollower schets

In deze schets, kom je erachter hoe je een budget Theremin te maken met behulp van een piëzo als een lichtsensor om het veld te controleren.

Jij hebt nodig:

  • Een Arduino Uno
  • Een broodplank
  • Een piëzo
  • Een lichtsensor
  • Een weerstand 47k ohm
  • Sprong draden

Dit circuit heeft twee aparte helften, de piëzo en de lichtsensor circuit. De piëzo aangesloten zoals in de toneMelody schets, één draad op digitale pen 8 en de andere met GND.

Hoe maak je een instrument met de Arduino Make

De lichtsensor is aangesloten analoog 0 enerzijds en 5V anderzijds; de 4.7K weerstand is aangesloten tussen analoge 0 en gemalen.

Hoe maak je een instrument met de Arduino Make

Vul het circuit, en open de schets door Bestand → Voorbeelden → 02.Digital → tonePitchFollower.

/ *
Pitch volger
Speelt een pitch die verandert op basis van een veranderende analoge ingang
circuit:
Spreker * 8 ohm op digitale pen 8
* Photoresistor op analoge 0 tot 5V
* 4.7K weerstand op analoge 0 naar aarde
aangemaakt 21 januari 2010
gewijzigde 9 april 2012
door Tom Igoe
Dit voorbeeld code is in het publieke domein.
http://arduino.cc/en/Tutorial/Tone2
* /
leegte setup () {
// Initialiseren seriële communicatie (uitsluitend voor debugging):
Serial.begin (9600);
}
leegte loop () {
// Lees de sensor:
int sensorReading = analogRead (A0);
// Afdrukken van de sensor te lezen, zodat je haar assortiment weten
Serial.println (sensorReading);
// Kaart het veld om het bereik van de analoge ingang.
// Beneden de minimale en maximale inbreng nummers veranderen
// Afhankelijk van het bereik geven van uw sensor:
int thisPitch = kaart (sensorReading, 400, 1000, 100, 1000);
// Spelen het veld:
toon (8, thisPitch, 10);
delay (1); // Vertraging in tussen leest voor stabiliteit
}

Nadat u de schets hebt gevonden, drukt u op de Compile knop om de code te controleren. Eventuele fouten in de syntaxis draai het bericht doos rood als ze ontdekt worden, en u een foutmelding waarin staat wat er mis is te zien.

Als de schets correct compileert, klikt u op Uploaden om de sketch te uploaden naar uw bord. Wanneer het wordt gedaan uploaden, moet u een lichtsensor die de toonhoogte van uw buzzer zal veranderen. Als je niet elke verandering horen, zorg ervoor dat je een bureaulamp zet over je breadboard. Dit zal helpen om het verschil wanneer je de lichtsensor met uw hand te dekken.

Als er niets gebeurt, moet je dubbel-check uw bedrading:

  • Zorg ervoor dat je met behulp van de juiste pincode voor de in- en uitgangen.
  • Controleer of uw piëzo wordt gedraaid op de juiste manier. Symbolen worden verborgen aan de onderzijde als ze niet zichtbaar zijn.
  • Controleer de aansluitingen op het breadboard. Als de sprong draden of onderdelen die niet zijn aangesloten met de juiste rijen in het breadboard, zullen ze niet werken.

De PitchFollower schets uitsplitsing

Deze schets zet direct de lezingen uit de lichtsensor op een frequentie in plaats van dat van een opzoektabel. Dit betekent dat u kunt schuiven tussen de noten, evenals kiezen hen individueel.

In de opstelling wordt de seriële poort geopend zodat u de sensor lezingen te volgen als ze komen in.

leegte setup () {
// Initialiseren seriële communicatie (uitsluitend voor debugging):
Serial.begin (9600);
}

In de grote lus, wordt de lichtsensor lezen van analoge pin 0. Deze waarde wordt ook doorgestuurd naar de seriële monitor.

leegte loop () {
// Lees de sensor:
int sensorReading = analogRead (A0);
// Afdrukken van de sensor te lezen, zodat je haar assortiment weten
Serial.println (sensorReading);

Om het bereik van de sensor om te zetten in het bereik van de frequenties die de zoemer kan dekken, wordt de kaart gebruikt u de functie.

// Kaart het veld om het bereik van de analoge ingang.
// Beneden de minimale en maximale inbreng nummers veranderen
// Afhankelijk van het bereik geven van uw sensor:
int thisPitch = kaart (sensorReading, 400, 1000, 100, 1000);

De toon functie stuurt vervolgens de nota met de toegewezen sensor waarde en een zeer korte duur van 10 milliseconden. Deze duur dient om het geluid hoorbaar te maken, maar de werkelijke duur wordt bepaald door hoe lang je je hand boven de sensor, zoals eerder beschreven.

// Spelen het veld:
toon (8, thisPitch, 10);

Tenslotte een kleine vertraging optreedt bij het einde van de lus om de stabiliteit van de metingen te verbeteren.

delay (1); // Vertraging in tussen leest voor stabiliteit
}

Met deze opstelling kunt u snel maken een gemakkelijke besturing en misschien zelfs een reizende Theremin band met je vrienden te vormen.


© 2019 Quilcedacarvers.com | Contact us: webmaster# quilcedacarvers.com