Stap 3: Schrijven van de Code: loop
Voeg vervolgens de volgende regel code toe aan de loop-functie (binnen de accolades).
tone(PIEZO_PIN, map(analogRead(SENSOR_PIN), 400, 1023, 300, 1500), 100);
Als u niet heel vaak code, moet de eerste coderegel kijken vrij beangstigend aan u. Niet te zorgen niettemin, is het eigenlijk vrij eenvoudig. Bekijk het van buiten naar binnen.
tone(PIEZO_PIN, FREQUENCY, 100);
Toon is de functie die uitvoer geluiden aan uw piezo. Het moet drie argumenten of parameters - het pin-nummer, (PIEZO_PIN), de frequentie (FREQUENCY), en de lengte van het geluid in milliseconden (100). We vertellen deze functie naar uitvoer een geluid naar het apparaat aangesloten op pin PIEZO_PIN, met een frequentie die is gemaakt door wat code die we later voor 100 milliseconden bespreken zullen. Laten we gaan nu dieper.
map(VALUE, 400, 1023, 300, 1500)
We zijn de frequentie voor de tone-functie met behulp van de kaart kiezen. Kaart een waarde aanneemt en past het een andere waarde. Duurt het vijf argumenten of parameters - de waarde toewijzen (waarde), de ondergrens van wat die waarde moet (400), de bovengrens van wat die waarde moet (1023), en de laagste waarde toewijzen aan (300), en de hoogste waarde toewijzen aan (1500). We zullen onze waarde van de sensor worden inpluggen in waarde, en kunnen we mogelijke waarden zijn 0 tot en met 1023. We zullen kiezen voor het bereik van 400 tot en met 1023 een beetje van een drempel instellen - een waarde van minder dan 400 zullen worden genegeerd. Wij willen de laagste frequentie die we uitgang om ongeveer 300, en de hoogste zijn van ongeveer 1500. Alles bij elkaar, is wat de functie van onze kaart zegt "Neem de waarde van onze sensor, die moet worden tussen de 400 en 1023, dan passen die liggen tussen 300 en 1500." U kunt een van deze waarden aanpassen naar uw wens naar betere werk met uw project. Laten we één niveau dieper en deze coderegel afmaken.
analogRead(SENSOR_PIN);
Alles wat we hier doen is het lezen van de analoge waarde van onze pin van de sensor. De speld neemt één parameter of argument, en dat is het nummer van de pin te lezen (SENSOR_PIN). Het is zo simpel als dat! Nu, laat deze laatste lijn van code toevoegen aan het einde van onze loop-functie (binnen de accolades).
delay(200);
Alles wat we hier doen is stoppen en 200 milliseconden wacht voordat het doen van het hele ding weer. Dit heeft drie functies: dat onze Toon om te spelen, toe te voegen een beetje scheiding aan onze tonen en lees de sensor tegen een redelijk tarief, waardoor het veel tijd om de waarde te wijzigen.