Intel® Edison Hands-on dag 2: FlameFire larm (4 / 4 steg)
Steg 4: Kodgranskning
Observera två variabel:
float sinVal;
int toneVal;
Flyta variabel sinVal butiker sinus ändra motsvarar. Sinusvåg beskriver en smidig repetitiva oscillation, så att vi använder det för att skapa frekvensen av ljudet. Således konvertera vi sinVal till toneVal, vilket gör den lämplig till Summer utgång.
Lågan sensorn är inmatningsenheten, så vi måste läsa analog värdet från det specifika stiftet. Syntaxen ser ut så här:
analogRead(pin)
Läser värdet från det angivna analoga stiftet. Edison Arduino kit innehåller en 6 kanal 10-bitars analog till digital omvandlare. Detta innebär att det kommer att mappas inspänningar mellan 0 och 5 volt till heltalsvärden mellan 0 och 1023. Till exempel står det analoga värdet 512 för 2.5V.
Funktionen sin() beräknar sinus för en vinkel (i radianer). Resultatet kommer att vara mellan -1 och 1. För att undvika negativa, bör vi begränsa graden mellan 0 och 180. Vi inser det genom att använda för uttalande.
för (int x = 0; x < 180; x ++) {}
Sin() använder funktionen radian som input, så konvertering bör göras först. Multiplicerat med 3,1415/180 kan ändra från examen till radian:
sinVal = (sin(x*(3.1412/180)));
Efter att konvertera sinVal till toneVal, vilket gör den lämplig att frekvensen av summern:
toneVal = 2000+(int(sinVal*1000));
Det finns en punkt här, vilket är Hur konvertera flötet till heltal.
sinVal är en float typ, använda bara int() göra konvertering:
int(sinVal*1000)
sinVal multiplicerat med 1000 och plus 2000 resultat i toneVal. ToneVal kan sedan användas som frekvensen för Summer.
Efter det, använda tonen för att köra summern.
tonen (8, toneVal);
Låt oss tala om tonen:
(1)tone(pin,frequency)
Det används för att generera en fyrkantsvåg angivna frekvensen på en PIN-kod
PIN: PIN-koden som ska generera tonen
frekvens: frekvens för tonen i hertz - unsigned int
(2)tone(pin,frequency,duration)
PIN: PIN-koden som ska generera tonen
frekvens: frekvens för tonen i hertz - unsigned int
varaktighet: varaktigheten av tonen i millisekunder (tillval) - osignerade långa
(3)noTone(pin)
Den stannar för en fyrkantsvåg som utlöses av tone()