Stap 4: Code review
Opmerking de twee variabele:
float sinVal;
int toneVal;
Float variabele sinVal slaat de sinus veranderende overeenkomt met de mate. Sinusgolf beschrijft een soepele repetitieve trilling, zodat wij hiermee maken de frequentie van het geluid. Dus omzetten we in de sinVal toneVal, waardoor het geschikt is voor de uitvoer van de zoemer.
Vlamsensor is het invoerapparaat is aangesloten, dus we moeten luiden naar de analoge waarde van de specifieke pin. De Syntax ziet er zo uit:
analogRead(pin)
Leest de waarde van de opgegeven analoge pin. De Edison Arduino-kit bevat een 6-kanaals 10-bits analoog naar digitaal convertor. Dit betekent dat het toe te aan input spanningen tussen 0 en 5 volt geheeltallige waarden tussen 0 en 1023 wijzen zal. Bijvoorbeeld, staat de analoge waarde 512 voor 2.5V.
De functie sin() berekent de sinus van een hoek (in radialen). Het resultaat zal liggen tussen -1 en 1. Om te voorkomen dat de negatieve, moeten we beperken het veranderen tussen 0 en 180 graden. Wij beseffen dat met behulp van voor de verklaring.
voor (int x = 0; x < 180; x ++) {}
De functie sin() gebruikt radiaal als input, dus conversie moet worden gedaan op het eerste. Vermenigvuldigd met 3.1415/180 kunt overschakelen van graden naar radiaal:
sinVal = (sin(x*(3.1412/180)));
Na die zet de sinVal op toneVal waardoor het geschikt is voor de frequentie van de zoemer:
toneVal = 2000+(int(sinVal*1000));
Er is één punt hier, dat is hoe de float converteren naar geheel getal.
sinVal is een type float, gewoon gebruik maken van int() te doen de conversie:
int(sinVal*1000)
sinVal vermenigvuldigd met 1000 en plus 2000 resultaten in toneVal. Dan kan toneVal worden gebruikt als de frequentie voor de zoemer.
Na dat, door Toon te gebruiken voor het uitvoeren van de zoemer.
Toon (8, toneVal);
Laten we praten over de Toon:
(1)tone(pin,frequency)
Het wordt gebruikt voor het genereren van een blokgolf van de opgegeven frequentie op een pin
PIN: de pin waarop voor het genereren van de Toon
frequentie: de frequentie van de Toon in hertz - unsigned int
(2)tone(pin,frequency,duration)
PIN: de pin waarop voor het genereren van de Toon
frequentie: de frequentie van de Toon in hertz - unsigned int
duur: de duur van de Toon in milliseconden (optioneel) - unsigned lang
(3)noTone(pin)
Het stopt de generatie van een blokgolf veroorzaakt door tone()