Arduino, sensorer och MIDI- (10 / 16 steg)

Steg 10: Arduino och Piezo-Sensor



Piezo sensorer Aktivera tryck eller vibrationer i elektrisk laddning som kan mätas med hjälp av en av den Arduino analoga ingångar. Banan kräver en 1MOhm resistor wired parallellt med piezo-sensor, med sidan ansluten tog rundan, och andra anslutna på en Arduino analoga stift (bild #1 ovan). Övervaka sensor använder följande kod:

int piezo = A0;

void setup() {
Serial.BEGIN(9600);
}

void loop() {
int piezoVal = analogRead(piezo);
Serial.println(piezoVal);
}

Jag såg att min piezo-sensor var stabil om om 0-1 normalt, sedan när jag träffade den, det hoppade upp till ca 150 (bild #2 ovan). Vi kan använda piezo som en switch genom att söka efter dessa spikar, jag skapa ett MIDI-meddelande varje gång piezo pin mäter en signal över 50 i koden nedan.

int noteOn = 144;
int piezo = A0;
int tröskel = 50, //anything över femtio innebär att vi har drabbats av piezo

void setup() {
Serial.BEGIN(9600);
}

void loop() {
int piezoVal = analogRead(piezo);
om (piezoVal > tröskel) {
MIDImessage (noteOn, 60, 127);
Delay(300);
MIDImessage (noteOn, 60, 0);
}
}

skicka MIDI-meddelande
void MIDImessage (byte kommando, byte data1, byte data2) {
Serial.write(Command);
Serial.write(Data1);
Serial.write(data2);
}

Vi kan också använda styrkan av hit till kontroll velocity:

int noteOn = 144;
int piezo = A0;
int tröskel = 50, //anything över femtio innebär att vi har drabbats av piezo

void setup() {
Serial.BEGIN(9600);
}

void loop() {
int piezoVal = analogRead(piezo);
om (piezoVal > tröskel) {
int maxPiezoVal = getMaxVal(piezoVal);
byte hastighet = karta (maxPiezoVal, 0, 1023, 50, 127); //velocity mellan 50 och 127 baserat på max val från piezo
MIDImessage (noteOn, 60, velocity);
Delay(500);
MIDImessage (noteOn, 60, 0);
}
}

skicka MIDI-meddelande
void MIDImessage (byte kommando, byte data1, byte data2) {
Serial.write(Command);
Serial.write(Data1);
Serial.write(data2);
}

int getMaxVal (int lastVal) {
int currentVal = analogRead(piezo);
medan (currentVal > lastVal) {
lastVal = currentVal;
currentVal = analogRead(piezo);
}
återvända lastVal;
}

I koden ovan skapade jag en hjälpare funktion kallas getMaxVal att använder ett tag loop för att registrera piezo, max deplacement så att det kan användas för att ange hastigheten hos en MIDI Observera. Denna kod fungerar genom att mäta piezo och kontroll för att se om mätningen är större än den senaste inspelade mätningen, om det är då vi hålla fast vid den nya mätningen och upprepa processen. Så snart nya mätningen från piezo är lägre än den senaste inspelade mätningen, vet vi att piezo har nått sitt max deplacement och det kommer att fortsätta att återvända lägre och lägre nummer från analogRead(), så funktionen returnerar max värdet.

Tal som returneras från getMaxVal() är någonstans mellan 0 och 1023, så jag använde en map() funktion för att skala upp det till en hastighet mellan 50 och 127.

Se Steg
Relaterade Ämnen

Arduino tid-och-Sensor-baserade Android musikspelare

Tänk dig din musikspelare som spelar för dig, en spelare den meningen det omgivande ljuset, temperatur och tid som påverkar stämningen i en person, och välja en låt kategorisera som stämningar. Eftersom jag inte har en sensor som kan översätta mänskl...

Färg sensorer och Arduino seriell kommunikation för nybörjare

Hej alla, jag ska prata om färg sensorer: hur man bygger och kalibrera en och hur man använder det med seriell kommunikation genom en Arduino ombord.Det sista steget förklarar hur jag använde detta projekt för en Gimp (står för "GNU Image Manipulatio...

Mäta hastigheten på ljud med Arduino microcontroller och ultrasonic sensor

Min 6-åriga dotter, Kennet, visar hur man mäter ljudets hastighet i luft med Arduino Uno microcontroller och ultrasonic sensor.Jag tycker detta är ett bra projekt för barn att blir exponerade för vetenskap, teknik och matematik.Steg 1: Vi behöver 1....

Arduino: Hur du ansluter gemensamma sensorer och objekt

Ibland, tycks du bara inte kunna räkna ut hur till få en krets för att träna! Detta instructable hjälper dig använda din elektronik på det sätt de var tänkta att användas genom att visa dig hur du ansluter dem till din Arduino ombord.Svårighet: e a s...

Nonieskalans sensorer och Arduino (eller Teensy) för loggning av Data

låt oss titta på hur man samlar in data från nonieskalans pedagogiska sensorer med en Arduino-kompatibel microcontroller utveckling ombord.Om du behöver bara att anslutas en sond med en dator och vill att allt ska fungera, bör du nog köpa en Vernier...

Hinder Avoider Robot använder Arduino Uno och IR-närhet Sensor

Följ stegen för att skapa ett hinder undvika Robot använder Arduino Uno och IR-rörelsesensorSteg 1: Delar krävs1) Arduino Uno R3 (klon kommer att göra)2) IR närhet sensorer (2 rekommenderas)3) chassi med motorer4) bakbord5) L293D Motor förare ombord6...

Komma igång med avstånd sensorer och Arduino

Detta är en start guide för att använda avstånd sensorer med Arduino och viss bearbetning. Vi har använt dessa sensorer:SKARP GP2Y0A21YK0FEnhet för avstånd Sensor mätningBestår av en integrerad kombination av PSD (position känslig detektor), IRED (in...

Att göra Radar använder Arduino, Ultrasonic sensor och MATLAB

I detta projekt kommer vi att göra en enkel radar upptäcka hinder.Intervallet beror på Ultrasonic sensor vi använt (i det här projektet: 3 meter).Steg 1: komponenterKomponenter:1 - Arduino Uno2 - ultraljud avstånd Sensor (länk: https://www.parallax.c...

Anpassade Arduino Shield och sensorer

Översikt:Detta instructable kommer att bygga en rad anpassade sensor moduler och en Arduino shield. Modulerna är tillgängliga från många olika källor, men fans av Instructables webbplats skulle förmodligen hitta tillfredsställelse i att göra sina egn...

Fläkt RPM med inre hall effekt sensor och Arduino (Intro till hårdvara avbryta och LCD display)

För mitt andra projekt för arbete, jag var tvungen att mäta rotationshastigheten av rotoren i varv Per minut (RPM) av en modifierad dator fläkt. Den hade tre kablarna kommer ut och som kryssat mig som kanske har något sätt att kontrollera sin hastigh...

432 MHz trådlösa sensorer och eluttag för hemautomation använder Arduino

Home automation blir mer och mer populära, prisvärda och fascinerar människor. Internet erbjuder sådana möjligheter som aldrig förr. Imponera på dina vänner visar på Iphone som du kan växla på/av-lampa i din lägenhet 1000 km bort och samtidigt se det...

Avståndsmätning med Ultrasonic sensor och Arduino

Hej varje enJag fick min första Aduino nyligen, här är jag gonne Visa du min första projektet som avståndsmätning använder Ultrasonic sensor och Arduino, kan du använda detta projekt många applicering vilja1-flytande nivå2-objekt upptäckt3-avståndsmä...

Openremote Arduino sensorer servo RGB ledde och switch

Detta är hur man använder Openremote programvara för att kontrollera en RGB ledde med reglagen för varje färg, använda en switch för att aktivera en led eller inaktivera, flytta ett servo med ett reglage och läsa en temperaturgivare. Alla objekt ge f...

Arduino: Elkablar och programmering av RFID-Sensor

RFID är, Radio Frequency Identification, ett system för att överföra data över korta avstånd (vanligtvis mindre än 6 tum). Ofta bara en av de två enheterna måste drivas, medan den andra är en passiv enhet. Detta gör för enkel användning i sådana sake...

Arduino Touch kapacitiv MIDI Keyboard

Detta Instructable visar dig hur man gör en touch kapacitiv MIDI keyboard. Om du följer alla steg korrekt, fungerar det ungefär så här:Videoanteckning: detta fungerar inte med normal färg. För denna video använde jag Konduktiv färg.Vad du behöver:-Ar...

Göra en brandvarnare i minuter med Samsung SAMIIO, Arduino UNO och Raspberry Pi

Låt oss bygga en IoT enhet som skickar flamma sensordata att SAMI med SAMERNAS WebSockets. IoT enheten består av en off-the-shelf sensor, Arduino UNO och Raspberry Pi.I detta genomförande används en enkel uppenbart för att snabbt skapa en ny enhetsty...

Korrekt flytande nivå Controller med låg kostnad sensor och TV: ns fjärrkontroll för inställningar

Detta är den min första personal Arduino projekt. Även genom planerar jag att automatisera våra över tank vattennivå jag inte gillar att investera mer pengar på instrument. Jag har några Arduino ombord och relay styrelser från mina vänner. Så använd...

Real Time temperatur loggning med Arduino, NodeJS och Plotly!

Motivationen för det här projektet grodde efter behandlingen om Mark Zuckerberg önskan att skapa ett Smart hem för en av hans 2016 projekt. Att vara nyfiken på mig själv, jag ville försöka genomföra en mycket grundläggande temperatur loggning program...

Bilar leksak med arduino uno och 3dprinting

Kroppen av bilen trycktes av 3D-skrivare. (makerbot mini 5.)Och hjärnan är utformad med enkla arduino skiss...Först min 3D printer(mini) plattform storlek är så liten (about10x10).Så, jag omgjorda bil kropp med rhino 3D som lämplig plattform storlek...