ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, attachInterrupt β ΡΡΠΎ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ FALLING. ΠΠ½Π° ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ΅ D2 Ρ ΡΡΠΎΠ²Π½Ρ HIGH Π΄ΠΎ ΡΡΠΎΠ²Π½Ρ LOW (ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠ°Π΄Π΅Π½ΠΈΠΈ β falling), ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ΄Π° Π² ΡΡΠ½ΠΊΡΠΈΠΈ loop. Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠΎΠ΄, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉΡΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅. Π‘Π°ΠΌΠ° ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΏΡΠΎΡΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄ L.
ΠΠΎΠ³Π΄Π° Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ±ΡΠΎΡΠ° Arduino ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄ L Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ³Π°ΡΠ½ΡΡΡ. Π ΠΏΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ β ΡΡΠ°Π·Ρ Π·Π°ΠΆΠ΅ΡΡΡΡ ΠΈ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π·Π°ΠΆΠΆΠ΅Π½Π½ΡΠΌ Π΄ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ±ΡΠΎΡΠ°.
ΠΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π², ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π² Π²ΡΠ·ΠΎΠ²Π΅ attachInterrupt Π½Π° RISING ΠΈ Π²ΡΠ³ΡΡΠ·ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΉ ΡΠΊΠ΅ΡΡ. ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° Arduino ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ ΠΏΠΎΠ³Π°ΡΠ΅Π½Π½ΡΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ΅ Ρ ΠΎΡΡ ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΎΠ²Π΅Π½Ρ HIGH, Π½ΠΎ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° ΠΎΡΡΠ°Π²Π°Π»ΠΎΡΡ Π½Π° ΡΡΠΎΠΌ ΡΡΠΎΠ²Π½Π΅. ΠΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ΅ Π½Π΅ ΠΏΠ°Π΄Π°Π»ΠΎ Π΄ΠΎ ΡΡΠΎΠ²Π½Ρ LOW, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΠ΄Π½ΡΡΡΡΡ (rising) Π΄ΠΎ ΡΡΠΎΠ²Π½Ρ HIGH.
ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΈ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Π½Π°ΠΆΠ°ΡΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ ΠΏΠΎΠ³Π°ΡΠ΅Π½Π½ΡΠΌ, ΠΏΠΎΠΊΠ° Π²Ρ Π΅Π΅ Π½Π΅ ΠΎΡΠΏΡΡΡΠΈΡΠ΅. ΠΡΠΏΡΡΠΊΠ°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ Ρ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠΌ D2, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ, ΠΏΠΎΠΊΠ° ΠΊΠ½ΠΎΠΏΠΊΠ° ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π»Π°ΡΡ Π½Π°ΠΆΠ°ΡΠΎΠΉ, ΡΡΠΎΠ²Π΅Π½Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ΅ Π±ΡΠ» ΡΠ°Π²Π΅Π½ LOW, Π° ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΏΡΡΠΊΠ°Π½ΠΈΡ ΠΏΠΎΠ΄Π½ΡΠ»ΡΡ Π΄ΠΎ HIGH.
ΠΡΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΡΠ½ΠΈΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π΅ Ρ Π²Π°Ρ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡ ΡΠ°Π½Π΅Π΅, ΡΡΠΎ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½ΠΎ ΡΡΡΠ΅ΠΊΡΠΎΠΌ Π΄ΡΠ΅Π±Π΅Π·Π³Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² Π² ΠΊΠ½ΠΎΠΏΠΊΠ΅. ΠΡΠΎΡ ΡΡΡΠ΅ΠΊΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ Β«Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎΒ»/Β«Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΎΒ», Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°ΡΠΈΠΊΡΠΈΡΡΠ΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Β«Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎΒ». ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π½Π°ΠΆΠΈΠΌΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΡΠ½Π΅ΡΠ³ΠΈΡΠ½Π΅Π΅, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠΎΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ Π±Π΅Π· ΡΡΡΠ΅ΠΊΡΠ° Π΄ΡΠ΅Π±Π΅Π·Π³Π°.
ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΊΠ΅ΡΡΠ° β Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ, ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Ρ Π΅Π΅, Π½Π°ΠΆΠ°ΡΡ ΠΈ ΠΎΡΠΏΡΡΡΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΡΠ±ΡΠΎΡΠ° Reset Π½Π° ΠΏΠ»Π°ΡΠ΅ Arduino. ΠΠ°ΡΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΡΠΊΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡΡ, ΠΎΡΠΏΡΡΡΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π½Π° ΠΌΠ°ΠΊΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΠ΅, ΠΈ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄ L Π·Π°Π³ΠΎΡΠΈΡΡΡ.
ΠΠΎΠ½ΡΠ°ΠΊΡΡ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. Π ΡΠ°Π±Π». 3.1 ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ»Π°Ρ Arduino ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² Π² Π½ΠΈΡ .
Π’Π°Π±Π»ΠΈΡΠ° 3.1. ΠΠΎΠ½ΡΠ°ΠΊΡΡ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π² ΡΠ°Π·Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»ΡΡ Arduino
ΠΠΎΠ΄Π΅Π»Ρ
ΠΠΎΠΌΠ΅Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ
0
1
2
3
4
5
Uno
D2
D3
β
β
β
β
Leonardo
D3
D2
D0
D1
D7
β
ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Uno ΠΏΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ ΡΠ°Π·Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°ΠΌ
Mega2560
D2
D3
D21
D20
D19
D18
Due
β
β
β
β
β
β
ΠΠΌΠ΅ΡΡΠΎ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ attachInterrupt ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π½ΠΎΠΌΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²
Π‘ΠΌΠ΅Π½Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² ΠΏΠ΅ΡΠ²ΡΡ Π΄Π²ΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π² Uno ΠΈ Leonardo ΡΠΎΠ·Π΄Π°Π΅Ρ Π»ΠΎΠ²ΡΡΠΊΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠΏΠ°ΡΡΡ. Π ΠΌΠΎΠ΄Π΅Π»ΠΈ Due Π²ΠΌΠ΅ΡΡΠΎ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ attachInterrupt ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π½ΠΎΠΌΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ², ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ.
Π Π΅ΠΆΠΈΠΌΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ
Π Π΅ΠΆΠΈΠΌΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ RISING (ΠΏΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΠΏΠ΅ΡΠ΅ΠΏΠ°Π΄Ρ) ΠΈ FALLING (ΠΏΠΎ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΠΏΠ΅ΡΠ΅ΠΏΠ°Π΄Ρ), ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΠ΅ΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΆΠΈΠΌΠΎΠ². ΠΡΠΈ ΡΠ΅ΠΆΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΡΠ°Π±Π». 3.2.
Π’Π°Π±Π»ΠΈΡΠ° 3.2. Π Π΅ΠΆΠΈΠΌΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ
Π Π΅ΠΆΠΈΠΌ
ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
LOW
ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΡΠΎΠ²Π½Π΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ LOW
Π ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ, ΠΏΠΎΠΊΠ° Π½Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ
RISING
ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΏΠ°Π΄Π΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ, Ρ ΡΡΠΎΠ²Π½Ρ LOW Π΄ΠΎ ΡΡΠΎΠ²Π½Ρ HIGH
β
FALLING
ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΏΠ°Π΄Π΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ, Ρ ΡΡΠΎΠ²Π½Ρ HIGH Π΄ΠΎ ΡΡΠΎΠ²Π½Ρ LOW
β
HIGH
ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΡΠΎΠ²Π½Π΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ HIGH
ΠΡΠΎΡ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ Arduino Due ΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠ΅ΠΆΠΈΠΌΡ LOW, ΡΠ΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅
ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΈΠΌΠΏΠ΅Π΄Π°Π½ΡΠ°
Π ΡΡ Π΅ΠΌΠ΅ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎΡΡ Π²Π½Π΅ΡΠ½Π΅Π΅ Β«ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡΠ΅Π΅Β» ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ, Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, ΡΠ°ΡΡΠΎ Π·Π°Π²ΠΎΠ΄ΡΡΡΡ Ρ ΡΠΈΡΡΠΎΠ²ΡΡ Π²ΡΡ ΠΎΠ΄ΠΎΠ² Π΄Π°ΡΡΠΈΠΊΠΎΠ², ΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Β«ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡΠ΅Π΅Β» ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅.
ΠΠΎ Π΅ΡΠ»ΠΈ ΡΠΎΠ»Ρ Π΄Π°ΡΡΠΈΠΊΠ° ΠΈΠ³ΡΠ°Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½Π°Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΠ°ΠΊΠ΅ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° Π½Π° ΡΠΈΡ. 3.1, Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠΈΠ² Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ Β«ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡΠ΅Π΅Β» ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ Ρ Π½ΠΎΠΌΠΈΠ½Π°Π»ΠΎΠΌ ΠΎΠΊΠΎΠ»ΠΎ 40 ΠΊΠΠΌ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ²Π½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ INPUT_PULLUP Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΡΠΎΠΊΠ΅, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΆΠΈΡΠ½ΡΠΌ ΡΡΠΈΡΡΠΎΠΌ:
void setup()
{
Β Β pinMode(ledPin, OUTPUT);
Β Β pinMode(2, INPUT_PULLUP);
Β Β attachInterrupt(0, stuffHapenned, FALLING);
}
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ
ΠΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ loop, Π΄Π°Π΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ. ΠΠΎ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΆΠ΅ΡΡΠΊΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Π»ΡΠ·Ρ Π΄Π΅Π»Π°ΡΡ Π² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ.
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌΠΈ ΠΈ Π±ΡΡΡΡΡΠΌΠΈ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΡΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ Π΄ΡΡΠ³ΠΎΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅, ΡΡΠ° ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅ΡΠ²Π°Π½Π°, Π° ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠ³Π½Π°Π» Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½. ΠΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅Π²Π΅ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ, ΠΊΠΎΠ΄ Π² ΡΡΠ½ΠΊΡΠΈΠΈ loop ΠΏΡΠΎΡΡΠ°ΠΈΠ²Π°Π΅Ρ.
ΠΠ° Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡΡΡ. Π’Π°ΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΎΡ ΠΏΡΡΠ°Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ, ΠΏΡΠ΅ΡΡΠ²Π°ΡΡΠΈΠΌΠΈ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ±ΠΎΡΠ½ΡΠ΅ ΡΡΡΠ΅ΠΊΡΡ. Π€ΡΠ½ΠΊΡΠΈΡ delay ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°ΠΉΠΌΠ΅ΡΡ ΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. Π’ΠΎ ΠΆΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ millis. ΠΠΎΠΏΡΡΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ millis Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ»Π° ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄, ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ±ΡΠΎΡΠ° ΠΏΠ»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ, Π½Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΡΠΏΠ΅Ρ Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ delayMicroseconds, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ.
ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΠΏΡΡΠ°ΠΉΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Serial.print ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°. ΠΠΏΡΠΎΡΠ΅ΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ, ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π΄Π°ΠΆΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½ΠΎ Π½Π΅ ΠΆΠ΄ΠΈΡΠ΅ ΠΎΡ ΡΠ°ΠΊΠΎΠΉ ΡΠ²ΡΠ·ΠΈ Π²ΡΡΠΎΠΊΠΎΠΉ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ.
ΠΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ, Π½ΡΠΆΠ΅Π½ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠΏΠΎΡΠΎΠ± ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΠΉ ΠΈ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ. ΠΠ±ΡΡΠ½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΒΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
// sketch 03_02_interrupt_flash
int ledPin = 13;
volatile boolean flashFast = false;
void setup()
{
Β Β pinMode(ledPin, OUTPUT);
Β Β attachInterrupt(0, stuffHapenned, FALLING);
}
void loop()
{
Β Β int period = 1000;
Β Β if (flashFast) period = 100;
Β Β digitalWrite(ledPin, HIGH);
Β Β delay(period);