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

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

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

void setup()

{

Β Β Serial.begin(9600);

}

void loop()

{

Β Β int delayPeriod = random(2000, 8000);

Β Β delay(delayPeriod);

Β Β int messageIndex = random(4);

Β Β Serial.println(messages[messageIndex]);

}

ВсС сообщСния, ΠΈΠ»ΠΈ строки, ΠΊΠ°ΠΊ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ символов, ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ char*. Π‘ΠΈΠΌΠ²ΠΎΠ» Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΈ (*) Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ это ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± указатСлях Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² Π³Π»Π°Π²Π΅ 6. ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ([]) Π² ΠΊΠΎΠ½Ρ†Π΅ объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ данная пСрСмСнная Ρ…Ρ€Π°Π½ΠΈΡ‚ массив Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° char*, Π° Π½Π΅ СдинствСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ char*.

Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ loop ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ delayPeriod присваиваСтся случайноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΎΡ‚ 2000 Π΄ΠΎ 7999 (Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ random Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½). Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ delay выполняСтся ΠΏΠ°ΡƒΠ·Π°, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π²Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΡƒ.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ messageIndex Ρ‚Π°ΠΊΠΆΠ΅ присваиваСтся случайноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ random, Π½ΠΎ Π½Π° этот Ρ€Π°Π· Π΅ΠΉ пСрСдаСтся СдинствСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ случайноС число Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 3, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ индСкс сообщСния для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡ€Ρ‚Π°.

НаконСц, сообщСниС, находящССся Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, посылаСтся Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡ€Ρ‚Π°. ΠžΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ этот скСтч, Π½Π΅ Π·Π°Π±Ρ‹Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π°.

АналоговыС Π²Ρ…ΠΎΠ΄Ρ‹

ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ ΠΎΡ‚ A0 Π΄ΠΎ A5 Π½Π° ΠΏΠ»Π°Ρ‚Π΅ Arduino ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для измСрСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊ Π½ΠΈΠΌ напряТСния. Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ напряТСния Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 5 Π’. Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ analogRead, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 1023: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 соотвСтствуСт Π½Π°ΠΏΡ€ΡΠΆΠ΅Π½ΠΈΡŽ 0 Π’, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1023 β€” Π½Π°ΠΏΡ€ΡΠΆΠ΅Π½ΠΈΡŽ 5 Π’. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ число Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, находящССся Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 5, Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ число Π½Π° 5: 1023/5 = 204,6.

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… int Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для измСрСния напряТСния, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ прСдставляСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Π΅ числа, Π° Π½Π°ΠΌ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ. Для этого слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… float.

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ скСтч Π² ΠΏΠ»Π°Ρ‚Ρƒ Arduino ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΌΠΊΠ½ΠΈΡ‚Π΅ скрСпкой ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ A0 ΠΈ 3.3V (рис. 1.15).

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

Рис. 1.15. Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² A0 ΠΈ 3.3V

// sketch 01_06_analog

int analogPin = A0;

void setup()

{

Β Β Serial.begin(9600);

}

void loop()

{

Β Β int rawReading = analogRead(analogPin);

Β Β float volts = rawReading / 204.6;

Β Β Serial.println(volts);

Β Β delay(1000);

}

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π°, ΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ чисСл (рис. 1.16). Числа Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π±Π»ΠΈΠ·ΠΊΠΈ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ 3,3.

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

Рис. 1.16. Π’Ρ‹Π²ΠΎΠ΄ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ напряТСния

Π’ΠΠ˜ΠœΠΠΠ˜Π•

НС Π·Π°ΠΌΡ‹ΠΊΠ°ΠΉΡ‚Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ элСктропитания (5V, 3.3V ΠΈ GND). Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ ΠΈΠ· строя ΠΏΠ»Π°Ρ‚Ρ‹ Arduino, Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

Если Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Π΅Ρ† скрСпки ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ соСдинСнным с ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠΌ A0, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ 5V, числа Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ измСнятся ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π±Π»ΠΈΠ·ΠΊΠΈ ΠΊ 5 Π’. Π’Π΅ΠΏΠ΅Ρ€ΡŒ соСдинитС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ A0 с ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠΌ GND, ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ числа 0 Π’.

АналоговыС Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹

ΠŸΠ»Π°Ρ‚Π° Arduino Uno Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ настоящих Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ² (Ρ‚Π°ΠΊΠΈΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΏΠ»Π°Ρ‚Π΅ Arduino Due), Π½ΠΎ ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ² с ΡˆΠΈΡ€ΠΎΡ‚Π½ΠΎ-ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ½ΠΎΠΉ модуляциСй (Pulse-Width Modulation, PWM). Они ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΡŽΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹, управляя Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ² (рис. 1.17).

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

Рис. 1.17. Π¨ΠΈΡ€ΠΎΡ‚Π½ΠΎ-ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ½Π°Ρ модуляция

Π§Π΅ΠΌ Π΄Π»ΠΈΠ½Π½Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠΌΠΏΡƒΠ»ΡŒΡ, Ρ‚Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ срСднСС напряТСниС Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΡ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ с частотой 500 Ρ€Π°Π· Π² сСкунду, Π° Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ устройств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ довСдСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Π°ΠΌ PWM, Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠΉ Ρ€Π΅Π°ΠΊΡ†ΠΈΠ΅ΠΉ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ эффСкт измСнСния напряТСния.

ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹, ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ Π½Π° ΠΏΠ»Π°Ρ‚Π΅ Arduino Uno Π·Π½Π°Ρ‡ΠΊΠΎΠΌ ~ (ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ 3, 5, 6, 9, 10 ΠΈ 11), ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹.

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

Рис. 1.18. Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ напряТСния Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅

Если Ρƒ вас Π΅ΡΡ‚ΡŒ Π²ΠΎΠ»ΡŒΡ‚ΠΌΠ΅Ρ‚Ρ€, установитС Π½Π° Π½Π΅ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ измСрСния 0…20 Π’ постоянного Ρ‚ΠΎΠΊΠ° ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‰ΡƒΠΏ ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ 6, Π° ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ β€” ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ GND (рис. 1.18). Π—Π°Ρ‚Π΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ скСтч.

// sketch 01_07_pwm

int pwmPin = 6;

void setup()

{

Β Β pinMode(pwmPin, OUTPUT);

Β Β Serial.begin(9600);

}

void loop()

{

Β Β if (Serial.available())

Β Β {

Β Β Β Β int dutyCycle = Serial.parseInt();

Β Β Β Β analogWrite(pwmPin, dutyCycle);

Β Β }

}

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π° ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ число Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 255 Π² тСкстовоС ΠΏΠΎΠ»Π΅ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΎΠΊΠ½Π°, слСва ΠΎΡ‚ ΠΊΠ½ΠΎΠΏΠΊΠΈ Send (ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ). Π—Π°Ρ‚Π΅ΠΌ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Send (ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ) β€” Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π½Π° ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Ρ‚Ρ€Π΅ измСнится напряТСниС. Если ΠΏΠΎΡΠ»Π°Ρ‚ΡŒ число 0, напряТСниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡƒΠΏΠ°ΡΡ‚ΡŒ Π΄ΠΎ 0. ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° числа 127 Π΄ΠΎΠ»ΠΆΠ½Π° Π΄Π°Ρ‚ΡŒ сСрСдину ΠΌΠ΅ΠΆΠ΄Ρƒ 0 ΠΈ 5 Π’ (2,5 Π’), Π° число 255 Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π΄Π°Ρ‚ΡŒ напряТСниС ΠΎΠΊΠΎΠ»ΠΎ 5 Π’.

Π’ этом скСтчС функция loop начинаСтся с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° if. УсловиСм для if являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Serial.available(). Π’ΠΎ Π΅ΡΡ‚ΡŒ Ссли ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» сообщСниС, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Β­Π΄Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок. Π’ этом случаС ΠΊΠΎΠΌΠ°Π½Π΄Π° Serial.parseInt ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ тСкст сообщСния, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΎΠΊΠ½Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΏΠΎΡ€Ρ‚Π°, Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° int, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ пСрСдаСтся ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ analogWrite для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ² Π½Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚.

ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Ρ‹ Arduino ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ вСсьма ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ объСмом памяти, ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ окаТСтся Π² ΠΏΠ»Π°Ρ‚Π΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ потрСбуСтся. Один ΠΈΠ· способов Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ этого β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’ Arduino ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π² языкС C ΠΏΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ понимаСтся коллСкция Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

НапримСр, Arduino IDE Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со свСтодиодным ТидкокристалличСским дисплССм. Она Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 1,5 ΠšΠ±Π°ΠΉΡ‚ памяти для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. НСт Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ смысла ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Ссли ΠΎΠ½Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, поэтому Ρ‚Π°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ нСобходимости.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ выполняСтся Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² #include Π² Π½Π°Ρ‡Π°Π»ΠΎ скСтча. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ инструкции include для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π»ΡŽΠ±Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, поставляСмых Π² составС Arduino IDE, ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню Sketchβ€”>Import Library… (Π‘ΠΊΠ΅Ρ‚Ρ‡β€”>ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ).

Π’ состав Arduino IDE Π²Ρ…ΠΎΠ΄ΠΈΡ‚ большая коллСкция ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π² Ρ‚ΠΎΠΌ числС:

β€’ EEPROM β€” для сохранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² элСктричСски ΡΡ‚ΠΈΡ€Π°Π΅ΠΌΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ ΠΏΠΎΡΡ‚ΠΎΡΠ½Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ (Π­Π‘ΠŸΠŸΠ—Π£) (Electrically Erasable Programmable Read-Only Memory);

β€’ Ethernet β€” для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сСтСвых взаимодСйствий;

β€’ Firmata β€” стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ взаимодСйствий Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚;

β€’ LiquidCrystal β€” для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎ-Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌΠΈ ТидкокристалличСскими дисплСями;

β€’ SD β€” для чтСния ΠΈ записи Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΊΠ°Ρ€Ρ‚Ρ‹ Ρ„Π»Π΅Ρˆ-памяти;

β€’ Servo β€” для управлСния сСрвоприводами;

β€’ SPI β€” для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ взаимодСйствий ΠΏΠΎ шинС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ интСрфСйса;

β€’ Software Serial β€” для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ взаимодСйствий ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ линиям с использованиСм Π»ΡŽΠ±Ρ‹Ρ… Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ²;

β€’ Stepper β€” для управлСния ΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΌΠΈ элСктромоторами;

β€’ WiFi β€” для доступа ΠΊ бСспроводной сСти WiFi;

β€’ Wire β€” для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ взаимодСйствий с ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠ΅ΠΉ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ I2C.

НСкоторыС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΠ»Π°Ρ‚ Arduino:

β€’ Keyboard β€” позволяСт ΠΏΠ»Π°Ρ‚Π°ΠΌ Arduino ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ USB-ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ (Leonardo, Due ΠΈ Micro);

β€’ Mouse β€” позволяСт ΠΏΠ»Π°Ρ‚Π°ΠΌ Arduino ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ USB-ΠΌΡ‹ΡˆΡŒ (Leonardo, Due ΠΈ Micro);