Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ Arduino. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со скСтчами». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 12

Автор Монк Π‘Π°ΠΉΠΌΠΎΠ½

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ AVR Studio ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° AVR Dragon, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ ΠΊ ΠΊΠΎΠ»ΠΎΠ΄ΠΊΠ΅ с ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌΠΈ ICSP (рис. 2.6).

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ Arduino. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со скСтчами - _26.jpg

Рис. 2.7. Установка Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° Π² ΠΏΠ»Π°Ρ‚Ρƒ Uno Π² срСдС AVR Studio 4

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΏΠ»Π°Ρ‚Π΅ Arduino Uno ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π΄Π²Π΅ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ΄ΠΊΠΈ (вторая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для программирования интСрфСйса USB).

Π’ мСню Tools (Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹) Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ Program AVR (ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ AVR) ΠΈ установитС соСдинСниС с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ ATmega328 Π² ΠΏΠ»Π°Ρ‚Π΅ Arduino. Π—Π°Ρ‚Π΅ΠΌ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Flash (ЀлСш-ΠΏΠ°ΠΌΡΡ‚ΡŒ) Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΉΡΡ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Program (ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ).

Установка Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Arduino IDE ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ Arduino

Установка Π½ΠΎΠ²ΠΎΠ³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° с Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ Arduino выполняСтся ΠΎΡ‡Π΅Π½ΡŒ просто. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ бСзопаснСС, Ρ‡Π΅ΠΌ использованиС AVR Studio. Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Arduino IDE Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Π”Π°Π»Π΅Π΅ пСрСчислСно всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ потрСбуСтся:

β€’ Π΄Π²Π΅ ΠΏΠ»Π°Ρ‚Ρ‹ Arduino Uno;

β€’ 6-ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ ΡˆΠ»Π΅ΠΉΡ„ с двумя Ρ€Π°Π·ΡŠΠ΅ΠΌΠ°ΠΌΠΈ «папа–папа» (ΠΈΠ»ΠΈ ΡˆΠ΅ΡΡ‚ΡŒ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ²);

β€’ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²ΠΎΠ΄;

β€’ кондСнсатор Π½Π° 10 ΠΌΠΊΠ€ ΠΈ 10 Π’ (Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ кондСнсатор Π½Π° 100 ΠΌΠΊΠ€).

Π‘Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°ΠΌΠΈ, ΠΊΠ°ΠΊ описываСтся Π² Ρ‚Π°Π±Π». 2.1.

Π’Π°Π±Π»ΠΈΡ†Π° 2.1. Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² Π΄Π²ΡƒΡ… ΠΏΠ»Π°Ρ‚ Arduino для записи Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°

ΠŸΠ»Π°Ρ‚Π°-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠ°Ρ ΠΏΠ»Π°Ρ‚Π°

GND

GND

5 V

5 V

13

13

12

12

11

11

10

Reset

ΠšΠΎΠ½Π΄Π΅Π½ΡΠ°Ρ‚ΠΎΡ€ Π΅ΠΌΠΊΠΎΡΡ‚ΡŒΡŽ 10 ΠΌΠΊΠ€ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌΠΈ Reset ΠΈ GND Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅ Arduino (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π° ΠΏΠ»Π°Ρ‚Π΅, ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ записан Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ). Π‘ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ кондСнсатора Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ Reset.

На рис. 2.8 ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ соСдинСнныС ΠΏΠ»Π°Ρ‚Ρ‹ Arduino. ΠŸΠ»Π°Ρ‚Π° справа выступаСт Π² Ρ€ΠΎΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π°. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ 10 ΠΏΠ»Π°Ρ‚Ρ‹-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° соСдинСн ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠΌ с ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠΌ Reset ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹. Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ Reset Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ кондСнсатора.

Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Π°, Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰Π°Ρ Π² Ρ€ΠΎΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π°, управляСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠ»Π°Ρ‚ΠΎΠΉ, поэтому ΠΊ ΠΏΠΎΡ€Ρ‚Ρƒ USB ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ»Π°Ρ‚Π°-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€.

На ΠΏΠ»Π°Ρ‚Ρƒ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ трСбуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ скСтч. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² мСню Fileβ€”>Examples (Π€Π°ΠΉΠ»β€”>ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹). Он называСтся ArduinoISP ΠΈ находится Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ€Π°Π·Π΄Π΅Π»Π° Examples (ВстроСнныС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹).

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ Arduino. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со скСтчами - _27.jpg

Рис. 2.8. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ Arduino

Как ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏ ΠΏΠ»Π°Ρ‚Ρ‹ ΠΈ ΠΏΠΎΡ€Ρ‚ ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ скСтч ArduinoISP Π² ΠΏΠ»Π°Ρ‚Ρƒ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€. Π—Π°Ρ‚Π΅ΠΌ Π² мСню Tools (Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹) ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² подмСню Programmer (ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€) ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ ArduinoISP.

НаконСц, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π² мСню Tools (Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹) ΠΏΡƒΠ½ΠΊΡ‚ Burn Bootloader (Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π—Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ). ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° записи Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΌΠΈΠ³Π°Ρ‚ΡŒ свСтодиоды Rx ΠΈ Tx Π½Π° ΠΏΠ»Π°Ρ‚Π΅-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π΅ ΠΈ свСтодиод L Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅.

Когда ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ установлСн Π½ΠΎΠ²Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ.

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ заглянули ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ‹ Arduino ΠΈ посмотрСли, ΠΊΠ°ΠΊ ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π― ΠΏΠΎΠΊΠ°Π·Π°Π» Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ скрываСтся Π·Π° фасадом окруТСния Arduino.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ‹ посмотрим, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ прСрываниями ΠΈ ΠΊΠ°ΠΊ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Arduino ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°Ρ‚ΡŒΡΡ Π½Π° внСшниС события, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ, примСняя для этого прСрывания.

7 АналогичныС обсуТдСния ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° русскоязычном Ρ„ΠΎΡ€ΡƒΠΌΠ΅ http://arduino.ru/forum. β€” ΠŸΡ€ΠΈΠΌΠ΅Ρ‡. ΠΏΠ΅Ρ€.

3. ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΡ ΠΈ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°Ρ‚ΡŒΡΡ Π½Π° события Π±Π΅Π· нСобходимости постоянно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ условий, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ измСнСния. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ возмоТности ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ источники ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСрывания, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ.

АппаратныС прСрывания

Для дСмонстрации использования ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ вСрнСмся вновь ΠΊ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ Π²Ρ…ΠΎΠ΄Π°ΠΌ. Часто для опрСдСлСния ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ события (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:

void loop()

{

Β Β if (digitalRead(inputPin) == LOW)

Β Β {

Β Β Β Β // Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ дСйствия

Β Β }

}

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ постоянно провСряСт ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ напряТСния Π½Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ inputPin, ΠΈ, ΠΊΠΎΠ³Π΄Π° digitalRead Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ LOW, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ дСйствия, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ // Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ дСйствия. Π­Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Ρ‡Ρ‚ΠΎ Ссли Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ loop трСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ массу Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ? На всС эти ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ трСбуСтся врСмя, поэтому Π΅ΡΡ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ, ΠΏΠΎΠΊΠ° процСссор Π±ΡƒΠ΄Π΅Ρ‚ занят Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ. На самом Π΄Π΅Π»Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΊΡ‚ наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΠΌΠ΅Ρ€ΠΊΠ°ΠΌ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΎΠ½Π° остаСтся Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ.

Но ΠΊΠ°ΠΊ Π±Ρ‹Ρ‚ΡŒ с ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌΠΈ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ°ΠΌΠΈ ΠΎΡ‚ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π»ΠΈΡ‚ΡŒΡΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΈ сСкунды? Для ΠΏΡ€ΠΈΠ΅ΠΌΠ° Ρ‚Π°ΠΊΠΈΡ… событий слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСрывания, опрСдСляя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ этим событиям, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Π΅ΠΌ занят ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€. Π’Π°ΠΊΠΈΠ΅ прСрывания Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ прСрываниями (hardware interrupts).

Π’ Arduino Uno Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° связаны с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ прСрываниями, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ экономно. Π’ Leonardo Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΏΡΡ‚ΡŒ, Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΠ»Π°Ρ‚Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Mega2560, ΠΈΡ… Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ большС, Π° Π² Due всС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прСрывания.

Π”Π°Π»Π΅Π΅ рассказываСтся, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ прСрывания. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ прСдставлСнный ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π°ΠΌ понадобятся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ макСтная ΠΏΠ»Π°Ρ‚Π°, ΠΊΠ½ΠΎΠΏΠΊΠ°, сопротивлСниС Π½Π° 1 кОм ΠΈ нСсколько ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ².

На рис. 3.1 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° собранная схСма. Π§Π΅Ρ€Π΅Π· сопротивлСниС Π½Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ D2 подаСтся напряТСниС HIGH, ΠΏΠΎΠΊΠ° ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΆΠ°Ρ‚Π°, Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π·Π°Π·Π΅ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° D2 ΠΈ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ напряТСния Π½Π° Π½Π΅ΠΌ ΡƒΠΏΠ°Π΄Π΅Ρ‚ Π΄ΠΎ LOW.

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π² ΠΏΠ»Π°Ρ‚Ρƒ Arduino ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ скСтч:

// sketch 03_01_interrupts

int ledPin = 13;

void setup()

{

Β Β pinMode(ledPin, OUTPUT);

Β Β attachInterrupt(0, stuffHapenned, FALLING);

}

void loop()

{

}

void stuffHapenned()

{

Β Β digitalWrite(ledPin, HIGH);

}

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ Arduino. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со скСтчами - _28.jpg

Рис. 3.1. ЭлСктричСская схСма для испытания ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ

Помимо настройки ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° LED Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° функция setup с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ строки связываСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ автоматичСски Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ эта функция. Рассмотрим эту строку Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Π΅Π΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ здСсь Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ выглядят нСсколько Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ:

attachInterrupt(0, stuffHapenned, FALLING);

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ β€” 0 β€” это Π½ΠΎΠΌΠ΅Ρ€ прСрывания. Π‘Ρ‹Π»ΠΎ Π±Ρ‹ понятнСС, Ссли Π±Ρ‹ Π½ΠΎΠΌΠ΅Ρ€ прСрывания совпадал с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°, Π½ΠΎ это Π½Π΅ Ρ‚Π°ΠΊ. Π’ Arduino Uno ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ 0 связано с ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠΌ D2, Π° ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ 1 β€” с ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠΌ D3. Битуация становится Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎΠΉ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… модСлях Arduino эти прСрывания связаны с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌΠΈ, Π° ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² Arduino Due Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°. На ΠΏΠ»Π°Ρ‚Π΅ Arduino Due с прСрываниями связаны всС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹.

Π― Π΅Ρ‰Π΅ Π²Π΅Ρ€Π½ΡƒΡΡŒ ΠΊ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅, Π° ΠΏΠΎΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρƒ. Π­Ρ‚ΠΎΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ β€” stuffHappened β€” прСдставляСт имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСрывания. Данная функция ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π΄Π°Π»Π΅Π΅ Π² скСтчС. К Ρ‚Π°ΠΊΠΈΠΌ функциям, ΠΈΡ… Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ (Interrupt Service Routine, ISR), ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ особыС трСбования. Они Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ. Π’ этом Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ смысл: Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… мСстах Π² скСтчС, Π½Π΅Ρ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ строки ΠΊΠΎΠ΄Π°, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰Π΅ΠΉ прямой Π²Ρ‹Π·ΠΎΠ² ISR, поэтому Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ возмоТности ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.