Stap 2: Program en Arduino-Circuit configureren
1) nemen de Zener-Diode en de weerstand en hen aansluiten op het breadboard volgens het diagram. Voor nu, gebruik gewoon blote draden te vertegenwoordigen van de handen. Aanvankelijk gebruikten wij 25 k potentiometers in plaats van de weerstand van enkele waarde. Hierdoor konden wij "dial-in" onze signaalniveau.
2) het schema toont slechts 1 paar handen. Twee kan eenvoudig dupliceren het circuit, maar R1 & D1 op A1 op de Arduino is aangesloten.
Deze volgende twee stappen zijn optioneel, maar helpen met het opsporen van fouten. DUS DOEN JE BETER HEN.
3) Hook-up van een LED pin 13 (Vergeet niet om het observeren van polariteit... aan de arduino anode, de kathode op grond)
4) Hook-up de PC luidspreker aan op pin 12 (het andere uiteinde op de grond)
5) onze code met de standplaatsen-bestand downloaden. https://www.Dropbox.com/sh/46k9dfd1oh0s4v1/8ceVhL8zjN
github te (ook verwerking code): https://github.com/ijwhyr/ijwhyr
6) open de code (hands_sound_integrate2b.ino) in de compiler en controleer of de "analogReference"-regel overeenkomt met je Arduino. We stellen het op 1 volt. Zorg ervoor dat pitches.h is opgenomen in de zelfde omslag ook.
7) open nu de seriële monitor in de compiler. Everytime die de blote draden touch, hoort u een pieptoon en de led moet oplichten! Als je de draden houdt, moet je ook niet-nulzijnde lezingen. Hoe dichter u hopelijk houden de draden, hoe hoger de nummers!
optioneel
8) wijzigen van een project waarin u kunt Houd de arduino en breadboard. Dit maakt set-up in een handomdraai!
code geplakt:
/***************************
door Ellen Keith, Yael Braha, Marc Roth, Tosh Chiang en Jasdeep Garcha
voor SF UP festival 2012
***********************/
#include "pitches.h"
audio
int melodie [] {} =
NOTE_E5, NOTE_B6};
int melody2 [] {} =
NOTE_F5, NOTE_C6};
int noteDurations [] {} =
8, 8, 2};
bemonstering en io
int pairOne = A0;
int pairTwo = a1 worden verkregen;
int geleid = 13;
int aOut = 12;
de rest
int triggerThresh = 50; Hiermee stelt u de trigger foroutput
Boole stopMusic = waar;
int countOut = 0;
void setup {//configures inputs en outputs
Serial.begin(9600);
pinMode (pairOne, INPUT);
pinMode (pairTwo, INPUT);
pinMode led (, uitvoer); op arduino
pinMode (aOut, OUTPUT);
}
void loop {}
int handShakeReadFinal1; //for definitieve
int handShakeReadFinal2;
analogReference(INTERNAL1V1); opdracht varieert tussen arduinos
analogReference(INTERNAL);
Lees de input op analoge pin 0 en 1:
int handShakeRead1 = analogRead(pairOne);
delay(10); resample pin 0!
int handShakeRead1b = analogRead(pairOne);
int handShakeRead2 = analogRead(pairTwo);
delay(10); resample pin 1!
int handShakeRead2b = analogRead(pairTwo);
output waarde alleen als beide monsters groter dan de drempel zijn en niet-nulzijnde
Als (handShakeRead1 > triggerThresh en handShakeRead1b > triggerThresh) {}
handShakeReadFinal1 = handShakeRead1;
}
anders
{
handShakeReadFinal1 = 0;
}
Als (handShakeRead2 > triggerThresh en handShakeRead2b > triggerThresh) {}
handShakeReadFinal2 = handShakeRead2;
}
anders
{
handShakeReadFinal2 = 0;
}
afdrukken van waarden naar seriële poort
Serial.Print('A');
Serial.println(handShakeReadFinal1);
Serial.Print('B');
Serial.println(handShakeReadFinal2);
delay(50);
audio
Als (handShakeReadFinal1 > triggerThresh || handShakeReadFinal2 > triggerThresh)
{
digitalWrite (led, hoog);
Als (stopMusic) {}
Tune();
}
}
anders
{
countOut = 0;
stopMusic = true;
digitalWrite (led, laag);
delay(1000);
}
}
ongeldig tune() {}
voor (int thisNote = 0; thisNote < 2; thisNote ++) {}
int noteDuration = 1000/noteDurations [thisNote];
Toon (aOut melodie [thisNote], noteDuration);
vertraging (noteDuration + 30);
}
stopMusic = false;
}