void sampleWindowFull()
{
Β Β for (int i = 0; i < 128; i++)
Β Β {
Β Β Β Β int val = (analogRead(analogPin) β 512) * GAIN;
Β Β Β Β data[i] = val / 4;
Β Β Β Β im[i] = 0;
Β Β }
}
Π€ΡΠ½ΠΊΡΠΈΡ updateData Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ Π°ΠΌΠΏΠ»ΠΈΡΡΠ΄Ρ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°ΡΡΠΎΡΠ½ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π΅. Π‘ΠΈΠ»Π° ΡΠΈΠ³Π½Π°Π»Π° Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π΄Π»ΠΈΠ½Π° Π³ΠΈΠΏΠΎΡΠ΅Π½ΡΠ·Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΒΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, Π΄Π²ΡΠΌΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠΎΡΠΎΠ½Π°ΠΌΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈ ΠΌΠ½ΠΈΠΌΠ°Ρ ΡΠ°ΡΡΠΈ ΡΠΈΠ³Π½Π°Π»Π° (ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΎΡΠ΅ΠΌΡ ΠΠΈΡΠ°Π³ΠΎΡΠ°!):
void updateData()
{
Β Β for (int i = 0; i < 64; i++)
Β Β {
Β Β Β Β data[i] = sqrt(data[i] * data[i] + im[i] * im[i]);
Β Β }
}
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π² ΠΌΠΎΠ½ΠΈΡΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ. ΠΠ΅ΡΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΈΠ³Π½Π°Π»Π° ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ°.
ΠΠ°ΡΡΠΈΠ² data ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΡΠΎΡΠΎΠΉ ΡΡΠΎΠ»Π±ΠΈΠΊΠΎΠ² Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΆΠΈΠ΄ΠΊΠΎΠΊΡΠΈΡΡΠ°Π»Π»ΠΈΡΠ΅ΡΠΊΠΎΠΌ Π΄ΠΈΡΠΏΠ»Π΅Π΅. ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΡΠΈΠ³Π½Π°Π»Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΡΠ΄ΠΈΠΎΠ²ΡΡ ΠΎΠ΄ MP3-ΠΏΠ»Π΅Π΅ΡΠ°) ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠΉ ΠΆΠ΅ ΡΡ Π΅ΠΌΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅ΠΉ ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ΅Π΄Π½Π΅ΠΉ ΡΠΎΡΠΊΠΈ 2,5 Π, ΡΡΠΎ Π±ΡΠ»Π° ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΡΠ°Π½Π΅Π΅, Π½Π° ΡΠΈΡ. 13.4.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎΡΡ
Π ΡΡΠΎΠΌ, Π²ΡΠΎΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠ»Π°ΡΠ° Arduino Uno ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΎΡΠ΅Π½ΠΊΠΈ ΡΠ°ΡΡΠΎΡΡ ΡΠΈΠ³Π½Π°Π»Π° Π² ΠΌΠΎΠ½ΠΈΡΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° (sketch_13_07_FFT_Freq). ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° Π² ΡΡΠΎΠΌ ΡΠΊΠ΅ΡΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ ΠΊΠΎΠ΄ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°. ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° data ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ ΡΠ°ΡΡΠΎΡΡ. ΠΠ°ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ loop Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΌΠΎΠ½ΠΈΡΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°.
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π¦ΠΈΡΡΠΎΠ²Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΈΠ³Π½Π°Π»ΠΎΠ² β ΡΠ»ΠΎΠΆΠ½Π°Ρ ΡΠ΅ΠΌΠ°, Π΅ΠΉ ΠΏΠΎΡΠ²ΡΡΠ΅Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠ½ΠΈΠ³. ΠΠ·-Π·Π° Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Ρ ΠΊΠΎΡΠ½ΡΠ»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΏΡΠΈΠ΅ΠΌΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ»Π°ΡΡ Arduino.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Π΄Π°Ρ Π² Arduino. Π‘ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΡΠ°ΡΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΡΠ΅, ΠΊΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π³Π΄Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΡΡΠΈΡΠ°ΡΡΡΡ Π½ΠΎΡΠΌΠΎΠΉ.
14. ΠΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, ΠΏΡΠΈΡΠ΅Π΄ΡΠΈΠ΅ Π² ΠΌΠΈΡ Arduino ΠΈΠ· ΠΌΠΈΡΠ° Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌ, ΡΠ°ΡΡΠΎ ΠΎΡΠΌΠ΅ΡΠ°ΡΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ Π² Arduino ΠΊΠ°ΠΊ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΏΡΡΠ΅Π½ΠΈΠ΅. Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Ρ ΠΏΠΎΠΏΡΠΎΠ±ΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ ΠΈ ΠΏΠΎΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΈΠ· ΠΌΠΈΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌ
ΠΠ»Π°ΡΠ° Arduino ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ»Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ½ΡΡΠ·ΠΈΠ°ΡΡΠΎΠ² (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ ΠΌΠ΅Π½Ρ), ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΎΠ΄ΠΈΠ½ Π³ΠΎΠ΄, ΠΈΠΌΠ΅ΡΡ ΠΎΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ²ΠΎΠ² ΠΈΠ· Π΄Π΅ΡΡΡΠΊΠΎΠ² ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠΈΡ ΡΡΠΈΠ»ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ², ΠΈ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ ΡΠ΅ΡΠ°ΡΡ Π²ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠ»Ρ Π½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±Π΅Π· ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΌΠΈΡΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΄ΠΈΠ΅ΠΌ ΠΎΡ ΠΏΡΠΈΠ²ΡΡΠ΅ΠΊ, ΠΏΡΠΈΠ²ΠΈΠ²Π°Π΅ΠΌΡΡ Π² ΠΌΠΈΡΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ΄Π½Π°ΠΊΠΎ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΡΠΉ ΠΎΠΏΡΡ ΡΠ°ΡΡΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°Ρ ΠΈΡΠΊΠ°ΡΡ Π² Arduino ΡΠΎ, ΡΠ΅ΠΌ ΠΌΡ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅. ΠΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ ΠΈΠ· ΠΌΠΈΡΠ° Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌ Π² ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΠ½ΡΠΉ ΠΌΠΈΡ Arduino ΠΏΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΡΡΠ°Π·Ρ Π±ΡΠΎΡΠ°Π΅ΡΡΡ Π² Π³Π»Π°Π·Π°, β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ Arduino. ΠΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ΅ΠΌΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π³ΠΈΠ±ΠΊΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΎΠΏΡΠΎΠΌΠ΅ΡΡΠΈΠ²ΠΎ. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π΄Π»Ρ Arduino ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ Π²ΡΠ΅Π³ΠΎ ΠΈΠ· 200 ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ. ΠΡΠ»ΠΈ ΡΡΠΎΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ β ΠΎΠΏΡΡΠ½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ, ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅ ΡΠΎΠ½ΠΊΠΎΡΡΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ, Π½Π΅ Π½ΡΠΆΠ΄Π°ΡΡΡ Π² ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΎΠ±ΡΡΠ½ΡΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅.
ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°ΠΉΡΠ΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎΠ± ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ, ΡΠ°Π±Π»ΠΎΠ½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π° Π² ΡΡΠ΅Π΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΡΠ²ΡΡΠ²ΡΠΉΡΠ΅ ΡΠ°Π΄ΠΎΡΡΡ ΠΎΡ ΠΏΡΠΎΡΡΠΎΡΡ Arduino.
ΠΠΎΡΠ΅ΠΌΡ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ ΠΏΠΎΡΠΎΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ, ΡΡΠΎ Π²Ρ Π·Π°ΡΡΠ°Π»ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π°, ΠΊΠΎΠ³Π΄Π° Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π»ΠΈ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠ΅ Π½Π° ΠΠ΅ΠΉΡΠΈΠΊΠ΅, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ Β«Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ ΠΎΠ΄Π½ΠΎΒ». ΠΡΠ»ΠΈ ΠΈΠ³ΡΠ΅, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π½Π° ΠΠ΅ΠΉΡΠΈΠΊΠ΅, ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΡΠ°ΠΉΡΠΎΠ², Π²Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΏΡΠΈΠ±Π΅Π³Π°ΡΡ ΠΊ ΡΠ»ΠΎΠ²ΠΊΠ΅ Ρ ΠΎΠ±ΡΠΈΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΏΡΠ°ΠΉΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π»ΡΡ Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΡΠΎΡ ΠΎΠ±ΡΠ°Π· ΠΌΡΡΠ»Π΅Π½ΠΈΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Arduino. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°ΠΉΡΠ°, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΠ΅Π³ΠΎ ΡΠΏΡΠ°ΠΉΡΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΡΠ°Π³Π°ΠΌΠΈ, Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΡ Π½ΠΈΡΡΠΎ Π΄ΡΡΠ³ΠΎΠ΅.
ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΡ, ΠΊΡΠΎΠΌΠ΅ ΡΠ΅Ρ , ΡΡΠΎ ΠΈΠΌΠ΅ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ³ΡΡ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ ΠΎΠ΄Π½ΠΎ. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ, Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. Π Arduino, Π³Π΄Π΅ Π½Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π·Π°Π΄Π°Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΅Π΄ΠΊΠΎ, ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
Π€ΡΠ½ΠΊΡΠΈΠΈ setup ΠΈ loop
Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠΊΠ΅ΡΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, setup ΠΈ loop, ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π²ΡΠ±ΡΠ°Π½ Π½Π΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΡ loop Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠ½ΠΎΠ²Π° ΠΈ ΡΠ½ΠΎΠ²Π°, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Π΅Π΅ ΡΠ°Π±ΠΎΡΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡΡΡ. ΠΠΎΠ΄ Π² ΡΡΠ½ΠΊΡΠΈΠΈ loop Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π²ΠΈΡΡΡΠΎΠ·Π½ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ ΠΈ ΡΡΡ ΠΆΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π»Π°ΡΡ Π²Π½ΠΎΠ²Ρ.
ΠΡΠ΅Π½ΠΊΠ°, Π·Π°ΡΠ΅ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π΄Π»Ρ Arduino ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΌ-ΡΠΎ. ΠΠΎΡΡΠΎΠΌΡ ΡΡΠ½ΠΊΡΠΈΡ loop ΡΠ°ΡΡΠΎ:
β’ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄Π°ΡΡΠΈΠΊΠ° ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ;
β’ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅.
ΠΡΠΎΡΡΡΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΈΠ³Π°Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π° Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΡΡΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π΄Π°Π»Π΅Π΅, ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΆΠ΄Π°ΡΡ, ΠΏΠΎΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠ΄, ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΌΠΈΠ³Π°Π½ΠΈΠ΅ΠΌ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π°, Π±ΡΠ²Π°Π΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ:
// sketch_14_01_flashing_1
const int ledPin = 13;
const int switchPin = 5;
const int period = 1000;
boolean flashing = false;
void setup()
{
Β Β pinMode(ledPin, OUTPUT);
Β Β pinMode(switchPin, INPUT_PULLUP);
}
void loop()
{
Β Β if (digitalRead(switchPin) == LOW)
Β Β {
Β Β Β Β flashing = ! flashing;
Β Β }
Β Β if (flashing)
Β Β {
Β Β Β Β digitalWrite(ledPin, HIGH);
Β Β Β Β delay(period);
Β Β Β Β digitalWrite(ledPin, LOW);
Β Β Β Β delay(period);
Β Β }
}
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΡΠΈΠΊΠ» Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ/Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π°. ΠΡΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° Π±ΡΠ΄Π΅Ρ Π½Π°ΠΆΠ°ΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°, ΡΠ°ΠΊΡ Π½Π°ΠΆΠ°ΡΠΈΡ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠΊΠ΅ΡΡΠ°, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Π°ΠΆΠ½ΠΎ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ Π»ΡΠ±ΡΠ΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π² ΡΡΠ½ΠΊΡΠΈΠΈ loop. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π² ΡΠ΅ΠΆΠΈΠΌ ΠΌΠΈΠ³Π°Π½ΠΈΡ Arduino Π±ΡΠ΄Π΅Ρ ΡΡΠ°ΡΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°Π»ΡΡ ΡΠ°ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ β Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
ΠΡΠΈΠΌΠ΅Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΠ΅ΡΠ°Π΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠ°ΡΠ·Π° Π±Π΅Π· ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
ΠΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠΊΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ delay:
// sketch_14_02_flashing_2
const int ledPin = 13;
const int switchPin = 5;
const int period = 1000;
boolean flashing = false;
long lastChangeTime = 0;
int ledState = LOW;
void setup()
{
Β Β pinMode(ledPin, OUTPUT);
Β Β pinMode(switchPin, INPUT_PULLUP);