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

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

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

Β Β Β Β digitalWrite(ledPin, LOW);

Β Β Β Β delay(delayPeriod);

Β Β }

}

Ѐункция setup Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ строку flash(10, 100);. Она ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚: Β«ΠΌΠΈΠ³Π½ΡƒΡ‚ΡŒ 10 Ρ€Π°Π· с ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ delayPeriod 100 мс». Команда flash Π½Π΅ являСтся встроСнной ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Arduino β€” Π²Ρ‹ создадитС эту ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ сами.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ находится Π² ΠΊΠΎΠ½Ρ†Π΅ скСтча. ΠŸΠ΅Ρ€Π²Π°Ρ строка Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

void flash(int n, int delayPeriod)

сообщаСт Arduino, Ρ‡Ρ‚ΠΎ опрСдСляСтся новая функция с ΠΈΠΌΠ΅Π½Π΅ΠΌ flash, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΎΠ±Π° Ρ‚ΠΈΠΏΠ° int. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, с ΠΈΠΌΠ΅Π½Π΅ΠΌ n, опрСдСляСт, сколько Ρ€Π°Π· свСтодиод Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΌΠΈΠ³Π½ΡƒΡ‚ΡŒ, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ, с ΠΈΠΌΠ΅Π½Π΅ΠΌ delayPeriod, опрСдСляСт Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ ΠΏΠ°ΡƒΠ·Ρ‹ послС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ свСтодиода.

Π­Ρ‚ΠΈ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’Π°ΠΊ, n ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ for, Π³Π΄Π΅ опрСдСляСт количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ»Π°, Π° delayPeriod β€” Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ delay.

Ѐункция loop скСтча Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ flash, Π½ΠΎ с Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ delayPeriod ΠΈ количСством ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ, Ρ€Π°Π²Π½Ρ‹ΠΌ 1. Π’Π°ΠΊ ΠΊΠ°ΠΊ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° находится Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ loop, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ снова ΠΈ снова, заставляя свСтодиод ΠΌΠΈΠ³Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ.

Π¦ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ Π²Ρ…ΠΎΠ΄Ρ‹

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ максимум ΠΏΠΎΠ»ΡŒΠ·Ρ‹ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°, Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ кусок ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° ΠΈΠ»ΠΈ просто ΠΌΠ΅Ρ‚Π°Π»Π»ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ скрСпку.

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ скСтч ΠΈ запуститС Π΅Π³ΠΎ:

// sketch 01_03_paperclip

int ledPin = 13;

int switchPin = 7;

void setup()

{

Β Β pinMode(ledPin, OUTPUT);

Β Β pinMode(switchPin, INPUT_PULLUP);

}

void loop()

{

Β Β if (digitalRead(switchPin) == LOW)

Β Β {

Β Β Β Β flash(100);

Β Β }

Β Β else

Β Β {

Β Β Β Β flash(500);

Β Β }

}

void flash(int delayPeriod)

{

Β Β digitalWrite(ledPin, HIGH);

Β Β delay(delayPeriod);

Β Β digitalWrite(ledPin, LOW);

Β Β delay(delayPeriod);

}

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ кусок ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΡ€ΡΠΌΠ»Π΅Π½Π½ΡƒΡŽ скрСпку, Π·Π°ΠΌΠΊΠ½ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ GND ΠΈ 7, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 1.13. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅ Arduino, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² Π½Π΅Π΅ скСтча. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΈΠΉ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ скСтч ΠΌΠΎΠ³ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ 7 Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π° β€” Π² этом случаС Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅ Π½Π° GND ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚. Π’Π°ΠΊ ΠΊΠ°ΠΊ скСтч настраиваСт ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ 7 Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ…ΠΎΠ΄Π°, Π΅Π³ΠΎ бСзопасно ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ с ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠΌ GND.

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ происходит Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅: ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹, свСтодиод ΠΌΠΈΠ³Π°Π΅Ρ‚ Ρ‡Π°Ρ‰Π΅, Π° ΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹ β€” Ρ€Π΅ΠΆΠ΅.

Π”Π°Π²Π°ΠΉΡ‚Π΅ исслСдуСм скСтч ΠΈ посмотрим, ΠΊΠ°ΠΊ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

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

Рис. 1.13. ΠžΠΏΡ‹Ρ‚ с Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ Π²Ρ…ΠΎΠ΄ΠΎΠΌ

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π² скСтчС появилась новая пСрСмСнная с ΠΈΠΌΠ΅Π½Π΅ΠΌ switchPin. Π­Ρ‚ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ присвоСн Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° 7. Π‘ΠΊΡ€Π΅ΠΏΠΊΠ° Π² Π΄Π°Π½Π½ΠΎΠΌ экспСримСнтС ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΡŒ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ. Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ setup ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ 7 настраиваСтся Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ…ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ pinMode. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ pinMode пСрСдаСтся Π½Π΅ просто Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ INPUT, Π° INPUT_PULLUP. Оно сообщаСт ΠΏΠ»Π°Ρ‚Π΅ Arduino, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²Ρ…ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ напряТСния HIGH, Ссли Π½Π° Π½Π΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π°Π½ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ LOW соСдинСниСм этого ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° с ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠΌ GND (скрСпкой).

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ loop ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ digitalRead для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ уровня напряТСния Π½Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅. Если ΠΎΠ½ Ρ€Π°Π²Π΅Π½ LOW (скрСпка Π·Π°ΠΌΡ‹ΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹), вызываСтся функция с ΠΈΠΌΠ΅Π½Π΅ΠΌ flash ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 100 (Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ delayPeriod). Π­Ρ‚ΠΎ заставляСт свСтодиод ΠΌΠΈΠ³Π°Ρ‚ΡŒ Ρ‡Π°Ρ‰Π΅.

Если Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ напряТСния HIGH, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ else инструкции if. Π—Π΄Π΅ΡΡŒ вызываСтся Ρ‚Π° ΠΆΠ΅ функция flash, Π½ΠΎ с Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ, Π·Π°ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ свСтодиод ΠΌΠΈΠ³Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠ΅. Ѐункция flash являСтся ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠΉ вСрсиСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ flash ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ скСтча, ΠΎΠ½Π° просто Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ свСтодиод ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ.

Π¦ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ Π²Ρ…ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ с Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ, Π½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π΅ ΠΆΠ΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ напряТСния HIGH ΠΈ LOW. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ pinMode слСдуСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ INPUT вмСсто INPUT_PULLUP.

Π¦ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹

НСмного Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π²Ρ‹Ρ…ΠΎΠ΄Π°Ρ… с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния программирования послС экспСримСнтов с ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠΌ 13, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ встроСнный свСтодиод.

Настройка ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ² осущСствляСтся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ setup с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

pinMode(outputPin, OUTPUT);

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ напряТСния HIGH ΠΈΠ»ΠΈ LOW, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ digitalWrite:

digitalWrite(outputPin, HIGH);

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π°

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Π° Arduino ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡ€Ρ‚ USB, Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΡΡ‹Π»Π°Ρ‚ΡŒ сообщСния ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Arduino IDE, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π° (Serial Monitor). Для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ скСтч 01_03 Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вмСсто измСнСния частоты мигания свСтодиода послС установки уровня напряТСния LOW Π½Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌ Π²Ρ…ΠΎΠ΄Π΅ 7 ΠΎΠ½ посылал сообщСниС.

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

// sketch 01_04_serial

int switchPin = 7;

void setup()

{

Β Β pinMode(switchPin, INPUT_PULLUP);

Β Β Serial.begin(9600);

}

void loop()

{

Β Β if (digitalRead(switchPin) == LOW)

Β Β {

Β Β Β Β Serial.println("Paperclip connected");

Β Β }

Β Β else

Β Β {

Β Β Β Β Serial.println("Paperclip NOT connected");

Β Β }

Β Β delay(1000);

}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π° Π² Arduino IDE, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ Π»ΡƒΠΏΡƒ. Π’Ρ‹ сразу ΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ нСсколько сообщСний, ΠΏΠΎΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΎΠ΄Π½ΠΎ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ (рис. 1.14).

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

Рис. 1.14. ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π°

Π Π°Π·ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹, ΡƒΠ±Ρ€Π°Π² скрСпку, ΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ тСкст сообщСния измСнился.

Π’Π°ΠΊ ΠΊΠ°ΠΊ встроСнный свСтодиод Π² этом скСтчС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΎΡ‚ΠΏΠ°Π»Π° ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ledPin. Π—Π°Ρ‚ΠΎ появилась новая ΠΊΠΎΠΌΠ°Π½Π΄Π° Serial.begin, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π°Ρ ΠΎΠ±ΠΌΠ΅Π½ сообщСниями Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚. Π•Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ опрСдСляСт ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ взаимодСйствиях Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ рассказываСтся Π² Π³Π»Π°Π²Π΅ 13.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ сообщСниС Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡ€Ρ‚Π°, достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Β­Π΄Ρƒ Serial.println.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Arduino посылаСт сообщСния Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π°.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΈ строки

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для хранСния списков Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π»ΠΈΡΡŒ Π΄ΠΎ сих ΠΏΠΎΡ€, ΠΌΠΎΠ³Π»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚ΠΈΠΏΠ° int. Массив, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ позволяСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ значСниям ΠΏΠΎ ΠΈΡ… позициям Π² спискС.

Π’ C, ΠΊΠ°ΠΊ ΠΈ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования, нумСрация ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Π² массивС начинаСтся с 0, Π° Π½Π΅ с 1. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт фактичСски являСтся Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ элСмСнтом.

ΠœΡ‹ ΡƒΠΆΠ΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· разновидностСй массивов Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅, Π³Π΄Π΅ знакомились с ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π°. БообщСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«Paperclip NOT connectedΒ» (скрСпка Π½Π΅ Π·Π°ΠΌΡ‹ΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹), Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ массивами символов, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ фактичСски ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ коллСкциями символов.

НапримСр, Π½Π°ΡƒΡ‡ΠΈΠΌ Arduino ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡ€Ρ‚Π° Π²ΡΡΠΊΡƒΡŽ Ρ‡Π΅ΠΏΡƒΡ…Ρƒ.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ скСтч ΠΈΠΌΠ΅Π΅Ρ‚ массив массивов символов. Он Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈΡ… ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π² случайном порядкС ΠΈ посылаСт Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π° Ρ‡Π΅Ρ€Π΅Π· случайныС ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠŸΠΎΠΏΡƒΡ‚Π½ΠΎ этот скСтч ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Π² Arduino ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ случайныС числа.

// sketch 01_05_gibberish

char* messages[] = {

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β "My name is Arduino",

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β "Buy books by Simon Monk",

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β "Make something cool with me",

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β "Raspberry Pis are fruity"};