Arduino interaktiv ljud Sensor (3 / 5 steg)
Steg 3: Skriva koden: Loop()
Lägg sedan till den följande lina av koden till funktionen loop() (innanför klammerparenteserna).
tonen (PIEZO_PIN, map(analogRead(SENSOR_PIN), 400, 1023, 300, 1500), 100);
Om du inte koden ofta, ska den första lina av koden se ganska skrämmande för er. Inte för att oroa dig, är det faktiskt ganska enkelt. Låt oss titta på det utifrån och in.
tonen (PIEZO_PIN, frekvens, 100);
Tonen är den funktion som utgång ljud till din piezo. Det behöver tre argument eller parametrar - pin-kod, (PIEZO_PIN), frekvens (frekvens) och längden på ljudet i millisekunder (100). Vi säger åt denna funktion för att produktionen ett ljud till enheten är ansluten till pin PIEZO_PIN, med en frekvens av lite kod som vi kommer att diskutera senare, för 100 millisekunder. Låt oss gå djupare nu.
karta (värde, 400, 1023, 300, 1500)
Vi väljer du frekvens för funktionen tonen med hjälp av karta. Karta tar ett värde och justerar det ett annat värde. Det tar fem argument eller parametrar - värdet att mappa (värde), den nedre gränsen av vad detta värde bör vara (400), den övre gränsen för vad detta värde bör vara (1023), och lägsta mappas till (300), och det högsta värdet ska mappas till (1500). Vi kommer ansluta vår sensor värde i värde, och vi kan få möjliga värden är 0 till 1023. Vi väljer spänna av 400 till 1023 ställa lite av en tröskel - något värde under 400 kommer att ignoreras. Vi vill ha den lägsta frekvensen vi utgång för att vara omkring 300, och högst vara ca 1500. Alla tillsammans, är vad vår kartfunktion säger "ta värdet från våra sensorn, vilket bör vara mellan 400 och 1023, sedan justera att vara mellan 300 och 1500." Du kan justera dessa värden till din böjelse till bättre arbete med projektet. Låt oss gå en nivå djupare och avsluta denna kodrad.
analogRead(SENSOR_PIN);
Allt vi gör här läsning av värdet för analoga från vår sensor stift. PIN-koden tar ett argument eller parametern, och det är många av klämma fast att läsa (SENSOR_PIN). Det är så enkelt är det! Nu, kan lägga till denna sista kodrad i slutet av vår loop() funktion (innanför klammerparenteserna).
Delay(200);
Allt vi gör här är att stanna och vänta på 200 millisekunder innan du gör hela igen. Detta tjänar tre funktioner: att låta våra tonen att spela, att lägga till lite av separation till våra toner och att läsa sensorn i en rimlig takt, vilket ger gott om tid att ändra dess värde.