Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino

delay()

ОписаниС

ΠŸΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π² миллисСкундах). (Π’ 1 сСкундС β€” 1000 миллисСкунд.)

Бинтаксис

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

ms: количСство миллисСкунд, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ (unsigned long)

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ delay() Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΌΠΈΠ³Π°Ρ‚ΡŒ свСтодиод достаточно просто. Помимо этого, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… функция Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡, ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Ρ€Π΅Π±Π΅Π·Π³Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΈ ΠΏΡ€. НСсмотря Π½Π° это, использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ delay() Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠΌΠ΅Π΅Ρ‚ сущСствСнныС нСдостатки. Π’ процСссС дСйствия delay() Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ считываниС Π΄Π°Π½Π½Ρ‹Ρ… с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², матСматичСскиС вычислСния ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. ЀактичСски, функция delay() ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ остановкС практичСски всСх ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ врСмя β€” использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ millis() (смотритС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅). ΠžΠΏΡ‹Ρ‚Π½Ρ‹Π΅ программисты ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠ·Π±Π΅Π³Π°ΡŽΡ‚ использования delay() для установки Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² большС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… дСсятков миллисСкунд (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‡Π΅Π½ΡŒ простых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Arduino).

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ события ΠΈ участки ΠΊΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Π² процСссС выполнСния ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ delay(), Ρ‚.ΠΊ. эта функция Π½Π΅ влияСт Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ. Π’Π°ΠΊ, ΠΏΠΎ ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‚ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ прСрывания, Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ Π½Π° Π²Ρ‹Π²ΠΎΠ΄ RX ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ интСрфСйсу, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ШИМ-сигнал, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ analogWrite().

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Arduino delay millis ΠΈ micros для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² скСтчС

Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² Ардуино ΠΈΠ³Ρ€Π°ΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ€ΠΎΠ»ΡŒ. Π‘Π΅Π· Π½ΠΈΡ… Π½Π΅ смоТСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ самый простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Blink, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΡ€Π³Π°Π΅Ρ‚ свСтодиодом Ρ‡Π΅Ρ€Π΅Π· Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Но Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… программистов ΠΌΠ°Π»ΠΎ Π·Π½Π°ΡŽΡ‚ ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°Ρ… ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Arduino delay, Π½Π΅ зная ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ расскаТу ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… функциях ΠΈ особСнностях ΠΈΡ… использования Π² срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Arduino IDE.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² Ардуино

Π’ Arduino cущСствуСт нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΠΏΠ°ΡƒΠ·Ρ‹:

Они ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΏΠΎ точности ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ свои особСнности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π°.

ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ arduino delay

Бинтаксис

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduinoАрдуино delay являСтся самой простой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈ Π΅Ρ‘ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ. По сути ΠΎΠ½Π° являСтся Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ, которая приостанавливаСт Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² скобках число миллисСкунд. (Π’ ΠΎΠ΄Π½ΠΎΠΉ сСкундС 1000 миллисСкунд.) МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ 4294967295 мс, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ровняСтся 50 суткам. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€, наглядно ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρƒ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ setup прописываСм, Ρ‡Ρ‚ΠΎ ΠΏΠΈΠ½ 13 Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄. Π’ основной части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ сначала Π½Π° ΠΏΠΈΠ½ подаСтся высокий сигнал, Π·Π°Ρ‚Π΅ΠΌ Π΄Π΅Π»Π°Π΅ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π² 10 сСкунд. На это врСмя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΊΠ°ΠΊ Π±Ρ‹ приостанавливаСтся. Π”Π°Π»ΡŒΡˆΠ΅ подаСтся Π½ΠΈΠ·ΠΊΠΈΠΉ сигнал ΠΈ ΠΎΠΏΡΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ всС начинаСтся сначала. Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΏΠΈΠ½ ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ подаСтся, Ρ‚ΠΎ 5 Π’, Ρ‚ΠΎ 0.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ delay с ΠΌΠΈΠ³Π°Π½ΠΈΠ΅ΠΌ свСтодиодом

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduinoΠŸΡ€ΠΈΠΌΠ΅Ρ€ схСмы для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ delay.
МоТно ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ схСму со свСтодиодом ΠΈ рСзистором. Π’ΠΎΠ³Π΄Π° Ρƒ нас получится стандартный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ – ΠΌΠΈΠ³Π°Π½ΠΈΠ΅ свСтодиодом. Для этого Π½Π° ΠΏΠΈΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ свСтодиод ΠΏΠ»ΡŽΡΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠΌ. Π‘Π²ΠΎΠ±ΠΎΠ΄Π½ΡƒΡŽ Π½ΠΎΠ³Ρƒ свСтодиода Ρ‡Π΅Ρ€Π΅Π· рСзистор ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° 220 Ом (ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС) ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π½Π° зСмлю. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ, Ссли ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π΅Π³ΠΎ внутрСнности. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡˆΠ΅Ρ‡ΠΊΠ° Π²Π½ΡƒΡ‚Ρ€ΠΈ соСдинСна с минусом, Π° малСнькая Π½ΠΎΠΆΠΊΠ° с плюсом. Если ваш свСтодиод Π½ΠΎΠ²Ρ‹ΠΉ, Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ²: длинная Π½ΠΎΠΆΠΊΠ° – плюс, короткая – минус.

Ѐункция delayMicroseconds

Данная функция являСтся ΠΏΠΎΠ»Π½Ρ‹ΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΎΠΌ delay Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ измСрСния Ρƒ Π½Π΅Π΅ Π½Π΅ миллисСкунды, Π° микросСкунды (Π² 1 сСкундС – 1000000 микросСкунд). МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ 16383, Ρ‡Ρ‚ΠΎ Ρ€Π°Π²Π½ΠΎ 16 миллисСкундам. Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ 4, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ число Π±ΡƒΠ΄Π΅Ρ‚ всСгда ΠΊΡ€Π°Ρ‚Π½ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ΠΌ. ΠšΡƒΡΠΎΡ‡Π΅ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с delayMicroseconds Ρ‚ΠΎΡ‡Π½ΠΎ такая ΠΆΠ΅, ΠΊΠ°ΠΊ Ρƒ delay – эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Β«Π²Π΅ΡˆΠ°ΡŽΡ‚Β» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΠΎΠ½Π° Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π·Π°ΠΌΠΈΡ€Π°Π΅Ρ‚. Π’ это врСмя Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ, считываниС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Для ΠΌΠΈΠ³Π°Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Π½ΠΎ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΅Ρ‘ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ сбои. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, описанныС Π½ΠΈΠΆΠ΅.

Ѐункция millis вмСсто delay

Ѐункция millis() ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π±Π΅Π· delay Π½Π° Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ, Ρ‚Π΅ΠΌ самым ΠΎΠ±ΠΎΠΉΡ‚ΠΈ нСдостатки ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… способов. МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° millis Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ delay (4294967295мс ΠΈΠ»ΠΈ 50 суток). ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ просто сбрасываСтся Π² 0, Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΎΠ± этом.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ millis ΠΌΡ‹ Π½Π΅ останавливаСм Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ всСго скСтча, Π° просто ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ, сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° просто β€œΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒβ€ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ delay millis сама ΠΏΠΎ сСбС Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ останавливаСт. Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° просто Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π°ΠΌ ΠΎΡ‚ встроСнного Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° количСство миллисСкунд, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° запуска. ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ loop ΠœΡ‹ сами измСряСм врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ с послСднСго Π²Ρ‹Π·ΠΎΠ²Π° нашСго ΠΊΠΎΠ΄Π° ΠΈ Ссли Ρ€Π°Π·Π½ΠΈΡ†Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ мСньшС ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ ΠΏΠ°ΡƒΠ·Ρ‹, Ρ‚ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠΎΠ΄. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·Π½ΠΈΡ†Π° станСт большС Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΏΠ°ΡƒΠ·Ρ‹, ΠΌΡ‹ выполняСм ΠΊΠΎΠ΄, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ врСмя с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΎΠΉ ΠΆΠ΅ millis ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ Π΅Π³ΠΎ – это врСмя Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΠ²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ отсчСта. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ†ΠΈΠΊΠ»Π΅ отсчСт ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ Π½ΠΎΠ²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ ΠΌΡ‹ ΠΎΠΏΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΏΠΎΠΊΠ° новая Ρ€Π°Π·Π½ΠΈΡ†Π° millis ΠΈ нашСго сохранСнного ΠΏΡ€Π΅ΠΆΠ΄Π΅ значСния Π½Π΅ достигнСт вновь ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ ΠΏΠ°ΡƒΠ·Ρ‹.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, наглядно ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ timing, Π² Π½Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ количСство миллисСкунд. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π²Π½ΠΎ 0. Π’ основной части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ провСряСм условиС: Ссли количСство миллисСкунд с запуска ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° минус число, записанноС Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ timing большС, Ρ‡Π΅ΠΌ 10000, Ρ‚ΠΎ выполняСтся дСйствиС ΠΏΠΎ Π²Ρ‹Π²ΠΎΠ΄Ρƒ сообщСния Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡ€Ρ‚Π° ΠΈ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ записываСтся Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 10 сСкунд Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡ€Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ надпись 10 seconds. Π”Π°Π½Π½Ρ‹ΠΉ способ позволяСт ΠΌΠΎΡ€Π³Π°Ρ‚ΡŒ свСтодиодом Π±Π΅Π· delay.

Ѐункция micros вмСсто delay

Данная функция Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ delay. Она Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ millis, Π½ΠΎ считаСт Π½Π΅ миллисСкунды, Π° микросСкунды с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π² 4мкс. Π•Ρ‘ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 4294967295 микросСкунд ΠΈΠ»ΠΈ 70 ΠΌΠΈΠ½ΡƒΡ‚. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ просто сбрасываСтся Π² 0, Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΎΠ± этом.

РСзюмС

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Arduino прСдоставляСт Π½Π°ΠΌ нСсколько способов выполнСния Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² своСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ delay Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π° ΠΏΠ°ΡƒΠ·Ρƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скСтча, Π½ΠΎ ΠΏΡ€ΠΈ этом Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. ИспользованиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ millis позволяСт ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π² Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ Π±Π΅Π· delay, Π½ΠΎ для этого потрСбуСтся Ρ‡ΡƒΡ‚ΡŒ большС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ Π»ΡƒΡ‡ΡˆΠΈΠΉ способ Π² зависимости ΠΎΡ‚ слоТности вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π² простых скСтчах ΠΈ ΠΏΡ€ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ΅ мСньшС 10 сСкунд ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ delay. Если Π»ΠΎΠ³ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ слоТнСС ΠΈ трСбуСтся большая Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°, Ρ‚ΠΎ вмСсто delay Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ millis.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Ардуино Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°: delay ΠΈ millis Π±Π΅Π· delay

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ delay(), millis() ΠΈ delayMicroseconds() Arduino ΠΈΠ³Ρ€Π°ΡŽΡ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ ΠΈ написаниС Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° скСтчСй Π±Π΅Π· этих ΠΊΠΎΠΌΠ°Π½Π΄ практичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. На нашСм сайтС Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ мноТСство ΡƒΡ€ΠΎΠΊΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с millis(), Π³Π΄Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ отсчСт Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ с delay(), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π΄Ρ€Π΅Π±Π΅Π·Π³Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² Ρƒ Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ. Рассмотрим Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² Ардуино ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

Ардуино Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ / Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Для этого занятия Π½Π°ΠΌ потрСбуСтся:

Π’ этой записи ΠΌΡ‹ рассмотрим Ρ‚ΠΎΠ»ΡŒΠΊΠΎ основныС характСристики Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования прСдставим Π² Π²ΠΈΠ΄Π΅ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… скСтчСй. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Π°ΠΌ потрСбуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сама ΠΏΠ»Π°Ρ‚Π° Ардуино. НачнСм ΠΎΠ±Π·ΠΎΡ€ с delayMicroseconds Arduino, Ρ‚.ΠΊ. Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π΅ часто ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ рассмотрим, ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ delay Π½Π° millis Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Arduino IDE.

Ардуино delayMicroseconds()

Команда delayMicroseconds останавливаСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ количСство микросСкунд (Π² 1 сСкундС 1 000 000 микросСкунд). ΠŸΡ€ΠΈ нСобходимости Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π° нСсколько тысяч микросСкунд рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ delay(). ΠŸΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π° простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² скСтчС для мигания встроСнным свСтодиодом Π½Π° ΠΏΠ»Π°Ρ‚Π΅ Arduino.

Ардуино delay()

Команда delay останавливаСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ количСство миллисСкунд (Π² 1 сСкундС 1 000 миллисСкунд). Π’ΠΎ врСмя Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ delay(), Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ считаны ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊ ΠΏΠ»Π°Ρ‚Π΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, запись Π² Π΅Π΅ΠΏΡ€ΠΎΠΌ Ардуино Π΄Π°Π½Π½Ρ‹Ρ…. Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ millis(). Π‘ΠΌΠΎΡ‚Ρ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π°Π»Π΅Π΅.

Ардуино millis()

Команда millis Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… миллисСкунд с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π°Ρ‡Π°Π»Π° выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ сбрасываСтся Π½Π° ноль ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ значСния unsigned long (ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· 50 Π΄Π½Π΅ΠΉ). Ѐункция miilis позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Ардуино, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ останавливаСтся ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² скСтчС.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduinoArduino ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ millis, delay, delaymicroseconds

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π² Ардуино millis вмСсто delay

Π’ послСднСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹Π²ΠΎΠ΄ счСтчика Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ ΠΏΠΎΡ€Ρ‚Π° прСрываСтся Π½Π° врСмя Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ delay(1000); β€” Π² этом Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΊ ΠΏΠ»Π°Ρ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ Π½ΠΈΡ… постоянно, поэтому ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ delay Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ Π½Π° millis. Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² скСтчС для Arduino IDE с ΠΌΠΈΠ³Π°ΡŽΡ‰ΠΈΠΌ свСтодиодом β€” продСмонстрируСм Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Команда millis Arduino Π½Π΅ останавливаСт выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ отсчСт Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ с Π½Π°Ρ‡Π°Π»Π° запуска счСтчика Π² миллисСкундах. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ этого, delay ΠΈ delayMicroseconds ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ количСство миллисСкунд ΠΈΠ»ΠΈ микросСкунд соотвСтствСнно. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² скСтчС Ардуино ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² зависит ΠΎΡ‚ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Millis() ΠΈΠ»ΠΈ delay() : Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ всСм дня ΠΈ сСгодня Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… функциях millis() ΠΈ delay(), ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹, навСрняка, ΡƒΠΆΠ΅ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ. Π”Π°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π½Π°ΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ нСбольшиС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π² ΠΊΠΎΠ΄Π΅. Познакомимся с Π½ΠΈΠΌΠΈ ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅ ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ разбСрСмся, Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino

Ѐункция delay() останавливаСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ дСйствиСм ΠΈΠ»ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠΌ. ΠŸΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ΡΡ ΠΎΠ½Π° Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ Π² строкС ΠΈ содСрТит Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² миллисСкундах (Π½Π° Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒ: 1000 мс, миллисСкунд = 1 сСкунда)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² 5 сСкунд Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Часто, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ Arduino, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚Π°ΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для мигания ΠΈ управлСния свСтодиодами. Π—Π°Ρ‚Π΅ΠΌ ΡƒΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π΅Π΅ Π² Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΌΠ΅ΠΆΠ΄Ρƒ опСрациями Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Но Π΅ΡΡ‚ΡŒ нСсколько Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ программирования Π² срСдС Arduino часто Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΈ ΠΏΡ€ΠΎ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ – millis(), ΠΈ поэтому Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π³Π΄Π΅ ΠΊΠ°ΠΊΡƒΡŽ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ.

Рассмотрим это Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ свСтодиоды ΠΏΡƒΡ‚Π΅ΠΌ наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ/ΠΊΠ½ΠΎΠΏΠΊΠΈ

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΊΠΎΠ΄Π΅ свСтодиод, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ 4 Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ 2.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция delay(). Она позволяСт ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π² 3 сСкунды послС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ свСтодиода, останавливая Ρ†ΠΈΠΊΠ», послС Ρ‡Π΅Π³ΠΎ ΠΎΠ½ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ гаснСт – ΠΈ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ снова загораСтся. Казалось Π±Ρ‹, всС просто: ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡˆΡŒ Π² Ρ†ΠΈΠΊΠ»Π°Ρ… Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ‚Π°ΠΌ, Π³Π΄Π΅ это логичСски Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, ΠΈ всС, Π½ΠΎ Ссли ΠΌΡ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ двумя свСтодиодами с Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠ½ΠΎΠΏΠΎΠΊ (ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ присваиваСтся ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°Π΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ свСтодиодом)

Π’ ΠΈΡ‚ΠΎΠ³Π΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ собСрСтС схСму ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π² ΠΏΠ»Π°Ρ‚Ρƒ, Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ свСтодиод Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ, Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° Π³ΠΎΡ€ΠΈΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° – функция delay() ΠΈ Π΅Π΅ ограничСния Π½Π° вСсь Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ Ρ†ΠΈΠΊΠ»: послС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ свСтодиода, ΠΎΠ½Π° останавливаСт всю Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΠ΄Π° Π½Π° 3 сСкунды ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ состояниС Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π½Π΅ смоТСт.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ скСтча Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ строчки Π² ΠΊΠΎΠ΄Π΅. led1OnTime ΠΈ led2OnTime ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ значСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· свСтодиодов, Π° led1On ΠΈ led2On ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ свСтодиода – Π³ΠΎΡ€ΠΈΡ‚ ΠΎΠ½ ΠΈΠ»ΠΈ Π½Π΅ Π³ΠΎΡ€ΠΈΡ‚ (true/false)

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Π½Π°ΠΆΠΌΠ΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ зафиксировано Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ свСтодиода, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ врСмя Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

ΠŸΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ свСтодиода ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ 30 сСкунд Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ состояния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈΠ»ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ свСтодиод (Π² послСднСм случаС Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ состояния Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π²Ρ‹ΡΠΈΡ‚ΡŒ 30 сСкунд)

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ выяснили, Ρ‡Ρ‚ΠΎ для Ρ†ΠΈΠΊΠ»ΠΎΠ², содСрТащих Π² сСбС нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ нСсколько условий, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ millis()

delay() ΠΆΠ΅ Π²Ρ‹Π³ΠΎΠ΄Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π±ΠΎΠ»Π΅Π΅ простых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΈ Ρ†ΠΈΠΊΠ»Π°Ρ…, содСрТащих дСйствия с ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π³Π΄Π΅ Π½Π΅ трСбуСтся Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

НадССмся, Ρ‡Ρ‚ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π±Ρ‹Π» для вас интСрСсСн, Π° Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΈ ΠΆΠ΅Π»Π°Π΅ΠΌ всСм ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΉ компиляции!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ delay() ΠΈ millis() Π² Arduino IDE ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ

ИспользованиС DELAY ΠΈ постановка ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

Одна ΠΈΠ· основных ошибок Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² ΠΏΡ€ΠΈ написании скСтчСй для Arduino – Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠ΅ использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ delay().

Π­Ρ‚Π° функция, (ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ) останавливаСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ количСство милисСкунд. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π²Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΊ Arduino ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ свСтодиод; ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ, свСтодиод Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΆΠ΅Ρ‡ΡŒΡΡ Π½Π° 3 сСкунды.

Π‘ΠΊΠ΅Ρ‚Ρ‡ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (нСсолько модифицированная вСрсия ΠΈΠ· ΠΎΡ„Ρ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π°):

const int buttonPin = 2;

const int ledPin = 4;

if (digitalRead(buttonPin) == HIGH) <

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ свСтодиод ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ скСтч, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ двумя свСтодиодами, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΈ этом Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ delay():

const int button1Pin = 2;

const int button2Pin = 3;

const int led1Pin = 4;

const int led2Pin = 5;

if (digitalRead(button1Pin) == HIGH) <

if (digitalRead(button2Pin) == HIGH) <

Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ с использованиСм breadboard’a Π² Π΄Π°Π½Π½ΠΎΠΌ случаС выглядит Ρ‚Π°ΠΊ:

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ delay arduino

ВСроятно, Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ: ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ свСтодиод Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ! ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° простая: ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ свСтодиод Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, ваш скСтч останавливаСт свою Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ, соотвСтствСнно, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ состояниС Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ MILLIS

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ millis(): ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство милисСкунд, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΎΡˆΠ»ΠΎ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° запуска скСтча.

Если Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΡˆΠ»ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ врСмя, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅:

ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ врСмя, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ свСтодиод.

ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π° loop), Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈ фактичСским Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ скСтч:

const int button1Pin = 2;

const int button2Pin = 3;

const int led1Pin = 4;

const int led2Pin = 5;

unsigned long led1OnTime;

unsigned long led2OnTime;

if (digitalRead(button1Pin) == HIGH) <

if (digitalRead(button2Pin) == HIGH) <

Π’Π²Π΅Π΄Π΅Π½ΠΎ Π΄Π²Π΅ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅: Π΄Π²Π΅ (led1OnTime ΠΈ led2OnTime), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° свСтодиоды Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΈ Π΄Π²Π΅ (led1On ΠΈ led2On), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ статус свСтодиодов (Π²ΠΊΠ». ΠΈΠ»ΠΈ Π²Ρ‹ΠΊΠ». (on/off) ΠΈΠ»ΠΈ Π² Π±ΡƒΠ»Π΅Π²ΠΎΠΌ Ρ‚ΠΈΠΏΠ΅ β€” true/false).

Когда ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π°ΠΆΠ°Ρ‚Π°, скСтч заставляСт свСтодиод Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ, сохраняСт Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ врСмя ΠΈ мСняСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ статуса.

Если свСтодиод Π³ΠΎΡ€ΠΈΡ‚ (пСрСмСнная состояния Ρ€Π°Π²Π½Π° true), скСтч пСриодСчСски провСряСт Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ состояния Π²ΠΊΠ». (30 сСкунд, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ 30000 милисСкунд): Ссли ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ допустимый (30 сСкунд 30000 миллисСкунд), Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ свСтодиод Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½.

ΠžΡΡ‚Π°Π²Π»ΡΠΉΡ‚Π΅ Π’Π°ΡˆΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, вопросы ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ Π½ΠΈΠΆΠ΅. Π’ дискуссии часто Ρ€ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *