Professional Documents
Culture Documents
Arduino для изобретателей. Обучение электронике на 10 занимательных проектах PDF
Arduino для изобретателей. Обучение электронике на 10 занимательных проектах PDF
10 AWESOME PROJECTS
BY BRIAN HUANG
no starch
press
SAN FRANCISCO
???????? ???????????
?? 10 ????????????? ????????
no starch
press
?????-?????????
«???-?????????»
2019
??? 004
??? 32.973.26
?98
?????, ?.
?98 Arduino ??? ?????????????. ???????? ??????????? ?? 10 ????????????? ????????: ???. ? ????. /
?. ?????, ?. ???????. —
?: ??.
ISBN 978-5-9775-3972-2
? ????? ???????? ??????????? 10 ????????????? ???????? ? ?????? Arduino Uno (????????, ?????-
? ??.). ??????? ???????? ?????? ? ?????????????? ????????? ??????????? ???????????, ?????? ????-
?????????? ? ????????? ????, ???????? ? ???????????? ?????????? ? ??????? ?????????? ????????
?????. ????????, ??? ???????? ????????????? ?????, ????????????? ??????????? ??? ? ????????? ????-
??? ???????????. ? ?????? ??????? ????????? ?????? ?? ??? ??????????? ? ?????????? ????????-
????. ????????? ??????? ???????? ? ???????, ? ????? ????????? ?????????? ?? ???????????? ? ??????.
?? ????? ???????????? ????????? ???????? ???? ???????? ?? ?????, ??????? ??? ??????????? ????????,
? ????? ???? ??? ??????????? ??????????????????? ? ?????????.
??? ??????????????
??? 004
??? 32.973.26
?????? ?????????? ???????:
© 2017 by SparkFun Electronics. Title of English-language original: The Arduino Inventor's Guide: Learn Electronics by Making 10 Awesome
Projects, ISBN 978-1-59327-652-2, published by No Starch Press. Russian-language edition copyright © 2018 by BHV. All rights reserved.
© 2017 by SparkFun Electronics. ???????? ??????????? ?????????:??? Arduino Inventor's Guide: Learn Electronics by Making 10 Awesome
Projects, ISBN 978-1-59327-652-2, ???????????? No Starch Press. ??????? ?? ??????? ????? © 2018 by BHV. ??? ????? ????????.
????? ??????? ????? ???????? ?????? ? 2003 ???? ???????? ???????????? ????????????
(?. ???????) ?????? ?????? (Nathan Seidle), ????? ?? ???? ???????? ?????. ? ?? ??????? ??-
????? ???????? ????? ???? ?????? ??????? ???????. ??? ????? ????? ???? ???????? ??
????? ????? ????? ????????? ???????? ? ????????, ??????????? ? ?????? ??????, ?????
???? ??????? ????????? ?????????? ????? ? ??????? ?????-?????? ??????. ????? ?????,
??? ?? ????? ??????? ???? ??????? ????? ???????, ? ??????? ????? ??????? ???????? ??
SparkFun.
????? ??????????? ???????? SparkFun ????????????? ????? ? ??????? ????? ??? ??????-
??? ?????????? ??????????????, ? ????? ?????????? ????????? ????????? ?????????-
???????? ?????? ??? ??????????????, ??????? ? ????? ??????????? ? ??????????????
??????????. ???? ????? ???????? ??????????? ?????? ????????? ? ??????? ???????????-
? ???? ????? ?????? ????? (Brian Huang) ? ????? ??????? (Derek Runberg) ???????? ?????-
????. ?????? ?????????? ?????? ? ??????? ????? ? ???????????? ????????? ?????????-
?????, ? ????? ??????? ???????? ???????????? ??????????? ? ???????????? ????? —
???
????????????.
???????, ??? ??????? ?? ?????? ?????????. ??? ?? ????? ??? ????????, ??? ????????? ??-
???????? ??? ????? ???????? ??? ??????? ?????? ? ??????? ?????? ?? ???? ?????? ???-
???????? ? ???? ????????????????.
??????????? ?? ???????
???? ? ???? ?????????? ?????????? ????????- ????????. ??? ??????? ?????, Arduino —
??????
??? (? ?????? ?????????????? ? ?????????), ??? ???????????? ? ????? ???????? ?????????? ?????
??????????? ? ???????? ????????????????? ?? ???????? ??????, ??? ??????. ??? ???? ????? ??-
????? ?? ???????????, ???????? ??????? ? ???- ??????? ????? ???????. ???????????? ??????-
??????? ? ???? ?????? ???. ??? ???? ?????? ? ????? ????? ????? ???????? ?????? ? ???????-
????? ??????? ???? ???????? ???????
—
???? ??????? ???????? ? ??????? ???????? ? ????? ?????? ?????? ??-???????, ??? ??????? ???????
???????? ?????? ? ??????? ?????. ????????? ?? ???????? ?????.
VIII ?? ???????
??????????? ?? ??????
? ??????? ?? ???????, ? ???? ??? ??????????? ?????? ???????, ?????????????? ? ???? ?????,
??????????? ?? ????? ??????????? ??? ???????- ???????? ??????????????? ?? ???? ????? ???-
?????????
—
??? ??? ?????? ? ???? ???????? ????? Arduino. ??? ??????? ??????? ???????-
???????? ????? ???????????????. ? ??? ?????- ????????? ? ???????????
??? ???????????? ??????????? ? ???????????? ? ???? ????????????? —
???? ??????. ? ?????? Arduino ? ???, ????? ?????- ???????? ???? ????????
???????? ????? ???????? ?????? ? ??????????, ??- ? ??????????? ?????????-
????? ??? ????? ?? ????????? ? ? ??????? ????- ?? ? ???????????????? ?
|
??? ????? ?? ?????????????? ????????? ???????. ????? ???????, ???????
??? ???????? ????? ?????? ??????? ??????????? ???????? ????? ? ???? ??-
??? —
???????????? ???????????????
? ??????????-
???????? ? ??????????.
?? ??????? IX
??????????
???????? XXI
? ??? ??? ?????? XXII
????????? XXV
????????-??????? XXVII
?????? ??????????? 1
????? ??? 4
?????????????? ????? 4
?????????? XI
?????? 1 ?????? ?????? ? Arduino 11
??????????? ?????????? 12
? ????? Arduino 12
????????? ??? OS X 16
??????? setup(X 27
??????? 1???() 28
???? ?????? 30
???????????????? ? ????? 30
???????????? ????? 30
?????????? ?????? 31
??????????? ?????????? 34
XII ??????????
?????????? ??????? ????????? 38
????????????? ???????? 41
?????? ?????????? 51
???? ?????? 53
???????????????? ? ????? 53
???????????? ????? 54
??????????? ?????????? 58
????????????? ??????? 64
???????? ????? 65
?????????? ?????? X ? ? 68
?????????? XIII
??????? ?????????? ???????? 74
???? ?????? 77
???????????????? ? ????? 77
???????????? ????? 77
??????????? ?????????? 80
????????? ????? 90
?????????? ?????? 97
???? ?????? 98
???????????????? ? ????? 98
???????????? ????? 99
XIV ??????????
?????? 5. ???????????? ??????...... 101
??????????? ??????????, ??????????? ? ????????? 102
???????????? 105
?????????? XV
?????? 6* ??????????? ?????---------- 125
??????????? ??????????, ??????????? ? ????????? 126
???????????? 128
?????????????? 129
???????????? 153
NPN-?????????? 154
XVI ??????????
???????? ????? ???????????? ??? ?????????? ????? 162
????? ?????? —
?????????? XVII
???? ?????? 199
????? 200
XVIII ??????????
????? ?????????? 234
????-?????????? 257
?????????? XIX
????????
??????????? ???????????.
? ??? ??? ??????
??? ????? ???????? ?? ????????? Arduino (www. ????????, Instructables, hackster.io ??? YouTube,
arduino.cc), ?????????? ?????????????????? ???????? ?????? ???????? ? ???? ?? ????????.
?????, ??????? ????? ????????????????? ??? ??? ??? ?????????????, ????????? ????? ???? ??-
?????????? ??????????? ?????, ????????? ???- ?????? ?? ??? ????, ???????????? Arduino.
????????, ???????????? ?? ?????????, ????? ??
??? ????????? ???????????? ????? ?????? ??- ??? ?????? ?? ??????????? ? ???????????-
????????, ? ??????? ???????? ???????? ????- ?????. ?? ????? ????????, ??? ??? ?????????
???????? ?????????? ????? ???????? ???? ???- ??? ?? ???????? ????-?? ?????? ? ???????????
???? ?????????? ??????????. ????? ? ????????? ?? ??????? ??????????, ??????? ????? ?????
?? ???????? ?????? ??????? Arduino ????????- ? ??????? ? ????.
?? ???????? ???????????. ???-?????, ????? ???,
1
GPS, ?? ????. Global Positioning System.
?????? Arduino?
?? ?????? ???????? ????????, ?????? ?? ????- ????????? Arduino ???????? ???? ????????? ??-
???? ????? ???????? ??? Arduino? ??????????? ????????? ????????: ?????? ????,
???????????? ????????????, ???????? ???????-
????? ?? ???? ?????? ??????????? ? ???, ??? ??? ? ??????????? ??????????? ? ?. ?. ?? ?? ???-
????? ???????? ????????? Arduino ???? ??- ????, ??? ???????? ???????? ????? ????????????
??????????? ?? ?? ?????????? ???????????? Arduino ????? ???????? ???????? ?????? ?? ????
???????????? ?????????? ??? ?????????? ???- ?????????. ????????? Arduino —
??? ????????
????????? ???????????, ? ??????????-?????- ??? ?????? ????????? ?????? ? ??? ?????????
??????????? ?? ???????????? ?????? ?????, —
? ?????? ?????-
?? ???? ?? ???????
? ??????????? ???????,
—
XXII ????????
??? ??? ????? ?????????? ?? ???????
????????,
????? ?????? ? ??????? ???????. ????????, ???-
??? ????? ????. ?? ????? ???????? ???????? ????? ?? ?? ?????????????? ??? ????? ?????? ???????
???? ??????? ? ????????????. ??? ????? ??? ??- ??? ?????????, ?? ?????? ??????? ????? ?????
???? ?? ?????? ??? ??? ???????: ????? ? ?????? ??????? ??????? ?? ?????? ??????????? ??? ?
???? ?????? ??? ?????? ?????? ??? ?????? ???? ????? ??????????????? ???????????. ? ?????,
??????????? ??? ????? ?????????? ?? ???????? ??????????-
???????, ??????? ??? ????????? ??????????? ??
?? ????????????, ??? ?? ??????? ??? ?????, ??- ??????? ??????, ?????? ????? ???????????? ???-
????????, ???????, ???????????? ??? ????????, ??? ?????, ??????????????? ???????? ????? ???-
??? ????? ?????? ??? ??????, ??? ????? ?????????, ????????? ????????????? ?????. ???? ???????
???????????? ????????????, ? ?? ?????????? ?????? ????????? ? ???, ????? ???? ??? ??????-
????????, ??????? ????? ? ???????? ?????? ?? ????? ?????? ??? ?? ????????????? ?????????-
?????. ???, ??? ? ?? ???????????????? ? ?????? ????,
? ????? ?? ???????? ??????????????? ????????-
????? ?????? ???????? ? Arduino, ??? ?? ????? ??- ??? ?? ???????, ????????? ? ?????? ?????????
????? ???? ???????????????? ??? ?????? ? ????- ??????????, ??????? ??? ????? ????? ????? ? ??-
????????. ?? ??????? ????????????, ??? ??????? ??? ????. ???????????? ?? ???????? ???????????
?? ?? ?????? ?????? ? ???? ????????, ? ?????????? ? ???, ????? ???? ??????? ??? ?????, ?? ??? ???
???????? XXIII
??????????? ?????????? ? ?????????
XXIV ????????
??????????? ???????????
??????????? ???????????
???, ??? ?? ???????????? ??? ??????????? ??? ????? ???????????? ????????, ? ?? ?????? ??-
??? ?????????? ? ?????????????? ??????????- ??????? ? ?????? ????????. ?? ???? ??? ??????
?????? ????? ???????????? ????? ?????????? ??????? ??? ????????? ???????????, ??? ?????-
???????? ? ?????? ??? ??? ?????????. ????? ????? ????????? ?????? (????????????-
??? ?????????? ????????? ? ????. «??????
?? ?? ?????? ?????? ??? ?????????? ?????- ? ??????????» ??????????). ??????????? ? ???-
??? ????????, ???? ?? ?? ??????? ?????? ???. ?????? ????????? ??? ????? ??? ???????? ???-
?????????? ??????, ? ???????? ????????? ??? ??- ??????? ??????????? ????????? ????????????
???????? ???????? ?? ???? ????? ????? ??????- ????????
—
?????? ? ???? ?????. ????? ?????? ????????????, ?? SparkFun (www.sparkfun.com), ??? ? ? ?????
???? ?? ??? ? ????????. ??? ?????? ????????, ??? ????????? ???????? ????????????? ??????? ???
?????????
???????, ??? ???????????????? Arduino ??? ??- ?? ?????? ?????????? ???? ????? ???????-
????????? ????????? ? ????? ??????????? ???- ?? ????????? ?? iOs ? Android ??????????????
???????? ????????????. ?????? ? ??????????? ?????? ??????????? ????-?????? ????????-
???????????? ??? Arduino ??? ???? ?????? ???- ???? ??????????? Arduino, ??????? ??? ????-
????? ?????. ??? ??????????? ??? ????? ??????- ?? ?????????????????, ? ???? ? ????? ????????,
??? ?????? ???????????? ??????????? Arduino ?? ?????????.
??????? ???????????? ??????? OS X 10.7 Lion ???
????? ?????. ???? ? ??? ????????? ? ????? ??? ??????? ????????? ? ???????????????? ???-
????? ??????????? ??????? Linux, ???? ??????? ????????? ??????????? ??? ???????????
?????, ??? ??? ??? ????? ???????? ?????????? Windows, Mac ? Linux ??????????????? ????????
???????? XXV
?????? ?????
?????? ?????
XXVI ????????
????????-???????
????????-???????
??? ???????, ??????????? ??? ???????? ???? ??????? ???????????? ? ???? ZIP-?????, ???????
?????, ???????? ??? ????????, ????????????? ? ????? ????????? ?? ??????: www.nostarch.com/
???????????????. ??? ???????? ???? ???? ???- arduinoinventor.
?????, ??????? ?????????? ? ??????????? ? ???-
??, ??????? ??? ??????????? ????????, ? ????? ???? ?? ????????????? ?? ?????-???? ??????? ????
???? ??? ??????????? ??????????????????? ? ??? ????? ??????? ??? ? ??? ????????? ????????
????????? ? ?? ???????????????. ? ???????,
??? ????? ?????? ?????????? ? ????
??????????? ?????
??? ??????????? ??? ?????? ? ????????? ????? ??????? ?? ????? ??????? ? ???????????-
??? ????? ??????????? ??????, ??????? ????? ????????? ? FTP-??????? ???????????? «???-
?????????????? ??????????:
??????? ???????????? ????? ??????
???????? SparkFun, ?????? ??????????? ???????- ©sparkfunedu ? @nostarch. ?? ????? ?????????? ???
??? ? ??????????? ???????????, ????????? ????? ?????? ??????? ????? ???????? ??????? ?????-
??????? ??????, ????? ???? ???????? ???????- ??? InventorSpace, ????????? ?? ??????: https://
??? ??????????, —
??? ???? ?? ???????? ????- invent.sparkfun.com. ???? ? ??? ???? ???? ???
?????, ?? ??????? ??? ????????. ???????????? ??????, ???????? ?? ?????? ??????????, ?? ????-
???????, ?? ????? ???????? ?????? ?????? ?? ???????????? ??? ? ???? ???????. ?? ????????,
? ??????? ???????? ? ????? ???????????, ???- ??? ??? ????? ????????? ??? ?????? ?????? ???-??
????????. ???????? ?? ????? ??????? ??? ???- ??? ? ??????? ??????????? ?????? ?? ??????:
???????? ? ?????????. ? ????????? ?????? ??? ArduinolnventorsGuide@sparkfun.com. ????? ??
???????? XXVII
?????? ???????????
???? ??? ????????? ??? ?????, ?????? ???- ????????????. ??? ??? ??, ??? ????? ????-
?? ???????? ???? ??????. ? ????? ??? ? ?? ???? ????? ???????? ?????? ?? ?????????-
???????????? ????? ?????? ??????????? ????, ??????????? ? ????????????, ? ?????
?? ??????????? (???? ??????? ????????? ???? ????? ???????? ?????? ??????????-
????? ???? ?????????? ? ??????? ?????), ??? ??????????.
?????? ??????? ?? ??????? ??????????
?????????????:
???, ???????????? ? ???????? ????????????
????????????? —
?????? ?????????? ??? ????????????, ?? ?????- ?????. ???????? ???? ?????????? ? ????????, ??-
???? ????? ???? ?????? ????????. ???? ?????? ???????? ???????? (?). ??? ???????? ?? ????????
?????????? ??????????? ????????????? ? ????- ????? ?????????????? ? ????? ?????? ???????
—
????, ??, ?????? ?????, ??? ?? ????? ?????? ??? ????????, ??????????? (??).
? ???, ??? ????? ?????????????, ??? ??? ????????
?, ????? ???????, ??? ??? ????? ????????????.
???? ????????? ????? ????????? ?? ????? ????? ?????? ???????????? ? ???????? ??? ??????-
? ???????????? ?????? ????????. ????? ??????- ?????? ??????? ????????????? ???? ? ??? ????-
????? ??????? ? ???????????? ????? ??? ???????, ??? ????, ?? ???????? ??? ????? ????????????.
?????????? ??????????????. ??????, ??????? ???? ?????????????? ??????????? ????????? ???-
????????? ?????-???? ????? ?????? ?? ???, ????- ?????? ???????????, ??????? ?????? ????????-
?????? ???????????
?????????????: ???, ???????????? ? ???????? ????????????
????- ????
????? ???????? (??????????????: «+») ????????- ? ?????? ????????? ????? ????????? ???????-
?? ??????? ? ????? ??????? (??????????????:«-») ?????? ????????????, ??????????? ????? ???
?????? ???????????
?????????????? ?????
????????? ?????-
??????? ?????????? ??????? ??? ? ?????????? ??? ???? ???????? ?? ??????? ?? ?????. ????????
????????? ?????????????? ????????: ???? ? ????? ??????? ?????????? ? ?????????-
???? ????
—
???, ? /? —
??????????? ?
?????????? ????? —
??? ????? ???? ???? ?? ???? ??????, ??????? ???????? ???? ? ?????????????
?????????, ??????? ?? ??????? ? ???? ?????.) ????.
????????,
?????? ?? ??????? ?? ????? (???. 2).
? ???????? ????????, ???????? ????????????-
???? ??? ???????? ???????. ??????????, ???????
??????????????? ?????????????
?????
??????? ? ?????? ??? ???????, ??-
????????
??????? (??????)
???????? ?????????. ??, ??? ????-
??????? ????????????????.
???. 2. ?????? ?????????????? ????: ???? ? ?????
?????????????? ?????
?? ?? ??????????? ???????? ???????, ?? ??? ?? ????? ???????? ????????????? ???? ? ????? ????-
????? ??????????, ???????? ????? ???? ?????- ??? ??? ??????????? ????? ?????1. ???????????
?? ?? ???????? ?????????? ?????????. ??????? ?? ???. 3 ?????????????? ????? ? ???????????-
?? ???????? ???? ???????????? ??????????? 1
?????????????? ????? ? ???? ????? ???????????? ??-
????????? ?? ??????????? (???. 3), ? ???? ??-
?????? ????????????? ????????? IEEE (Institute of Electrical
??? ????????????? ???????? ?????????????? and Electronics Engineers, ???????? ????????? ???????-
??????. ??????? ? ????????????????).
?????? ???????????
???????? ?????????? ????
?????????
-?-
??
?-
???????? ??????? ?????????????
?????????
?????????????
????????•
????????
??????? •
????? ???????????? ?? ?? ????? ????????????? ?????? ??????? ???????? ????????? IEEE ????-
????, ??? ? ?? ???. 1. ?????? ????? ?????
—
???????, ? ?????????? ?????????? ???????????- ??? ???? ? ?????????????? ????? ??????? ?????
????? ?????????. ?? ???. 4 ???????? ????????? ? ????????. ?? ?????????? ? ??????????? ???
???????????????? ??????? ????????, ??????? ????????????? ? ??????????????? ???????????-
???????????? ? ???? ?????. ??? ???? ?? ???? ????.
?? ???? ???????? ???????? ???? ?????, ?? ????- ????????? ?? ??? ??? ???????? ?????. ???? ???-
?? ????????? ? ????????? ????????? ????????? ???? ?????????? ??????????? ?????????. ???
?? ??????????. ??? ?????? ????? ????? ????- ?????????? ?????????? ??????????? ?????????
???????? ???????????????? ??????????, ?????? ?????? ???????????? ?????????? ???????? ???-
?? (???. 5).
???? ? ???.
?????????.
???????
?????? ???????????
???????? ?????????? ????
??? ??????????? ??????????? ????????? ??- ???? ? ???????? ?????????? ???????? ????
????, ????????? ?? ??????? ??????? (???. ?). ??? ???????? ?????????, ?? ??????????? ?? ?????
?????? ???????????? ????????? ??????????, ????? ???????????? ??????? ????? ?? ???????
??????????? ? ????????? ? ??? ?? ????? ????. ????????. ??? ??????? ????? ?????????? ????-
????? ???????, ???????? ????????????? ?????- ?? ???????, ? ?????? ???? ????? ? ??? ???????-
???? ??????????, ????????? ?????? ?? ??????. ?? ???????, ??? ??, ??? ? ?????? ????? (???. 7).
???????? ???????? ?? ??, ??? ?????? ???????- ??????? ??? ??????? ????? ???????????? ???-
???? ?????? ???? ???????? ????????? ? ????. ?????? «+» ? «-», ???????????? ??????????
???????? ????? ??????????? ?? ??? ???????? ????????????? ???????, ? ????? ???????????
???????????? ???????, ? ?????? ????? ?????? ??????? ? ????? ?????? ??????????????.
{??????) ? ??????? ???? ?????????????? ?????? {?????) ??? ???????????? ????? ???????.
????????????? ????
??????? \
????????????? ???? \
(???? ???????)4^ ???? ^? \
?????? ???????????
?????????? ?????????? ? ?????????? ?????
??? ???????. ??????, ?????? ???????? ????? ???- ???????? ????????, ??? ?????? ?????????? ??-
??? ? ??? ????????? ?????????? ??????? (???. 11), ??????? ?????????? ????? ?????????? ???????-
? ????? ??? ????? ????? ?????? ????????? ? ???????- ?? ????????????? ? ???? ?????? ????????????
??? ???????? ?????. (?? ??????????????, ???? ?? ????? ?????????????. ????? ???????, ??????????
??????? ?????? ?? ???????? ? ??????????. ? ????. ????? ????????? ????? ?? ???????????? ?? ? ???-
«?????? ? ??????????» ?????????? ?? ??????? ??????? ???????? ?????, ??? ????????????? ???-
??? ??????????, ??????????? ??? ?????????? ???? ????? ?? ??????? ????????, ????? ???????
??????? ??????.) ?????????? ?????????? ?????????.
?????? ???????????
?????????? ? ???????? ???????????
?????????? ? ????????. ??? ??? ???? ?????????- ??????????????????? ? ??? ???????. ??????????
?? ?????????????, ? ??? ????????? ?????? ????- ?????????? ??????????? ?????? ?????? ??????-
??????? ???? ? ????? ?????????? ??????????? ?? ???, ?????????? ??? ?????????????, ????? ??-
? ????????? ?????????? ?????? ??????? ?? ???? ?????? ???? ?? ??????????,
???? ?????.
????? ? ??????????, ??????? ??????????? ?????? ?? ???????? ?????? ????? ?? ???. ????????, ???
? ???????? ????????????? ?????????. ????????, ?????? ????????? ?????????? ?? ????????????-
?????????? ???????? ????????? ??????? ??????- ???? ????????? ????? ??? ?????????? ?????-
?????????? ? ???????????.
SparkFun (?????? ?????) ? ????? Arduino Uno (????? ??????) ??? ?????????? ???????? ?????????, ?????????,
8 ?????? ???????????
??? ????? ????????????????
??????????
?? ??????? ?????? ? ????? Arduino, ??????? ?? ??????????? ? ??? ?? ???????????????, ? ???-
????? ?????????? ????????. ? ?????? ??? ????? ?????????? ?????, ??? ???????????????
—
???
????????????? ? ?. ?. ??????????? ??? ??????- ?? ????????, ??? ?????????????? ??? ????? ????-
????? ????? ?? ?????????????????. ??? ????? ??? ???????? ? ?????? ??????????? ???? ??? ??-
??????? ??? ????????? ???????????? ??? ??????- ???????? ?????? ??? ?????? ? ?????????? ????-
???????? ??? ????? ??????. ?????? ?????. ?? ????? ????????, ??? ?? ???????
???? ???????? ??????????, ????????????? ? ??-
?????? ???????????
?????? ??????
? ARDUINO
?????????? ?????????,
—
??? ??????
??????????? ??????????
• ?????? USB (? -
? ????? Arduino
????? Arduino ???????????? ????? ????????? ??????? ??????????, ? ??? ?? ??????? ??????????
??????????????? ??????????, ? ??????? ????- ???? ?????????? ???????? ??????????? ??. ??
???? ??????? ??????????? ?????? ????? ???- Arduino ?????????? ?? ???????? ?????????? ???,
???? ???????????? ??????? ??????????????????. ??? ??? ????????? ?????????? ? ??????????
?? ????? ???????????? ??? ?????????? ??????- ???????? ? ??? ???????????? ?? ?????????, ? ??-
??? ?????? ??????? ???????. ? ???? ??????? ?? ??, ??????????? ? ???????? ??????? ?????????-
?????????? ????? ????????, ??? ????? Arduino ? ???? ?????. ??? ????? ???????? ??????? ??????
??? ??? ????? ???????? ???? ?????????????. ?? ???????? (????????, ?????????? ????????, ???-
????? ??????????? ??? ?????? ??????????????)
? ???????? ???????? ??????? ??? ??????????
????????? ?????????? ????????? ????????????, ??????????????????, ?????????
? ?. ?. ????? Arduino (???. 1.2) ???????? ??? ????-
????? Arduino ??????? ?????????? ????????-
?? ????? ?????
??????????? ?????????? ? ?????, ???????????
??. ???????????????, ?????????
??? ?????? ?? ????????????????.
?????????? ???????
?????? Arduino
??????????????? ?? ?????, ???????
??????" C/C++. ?
?????????? ???????? ??????? ????? ??-
12 ?????? 1
? ????? Arduino
?????????? ????? ????, ?????????? ?????????- ??????? ?????????? ?? ???. 1.3, ? ????? ?????-
??? ????? Arduino, ?? ????????? ??? ???????? ????? ?? ????????:
????????? (?? ???? ???????? ?????? ?? ???????-
??? ? ??????????? ????? ???????? ??? ??????- •
??????????????? ATmega328 —
??????
??? ? ??????????????? ?????? ?????????), ?????????? ?????????? ????????? ?????.
????????????? ??-
•
?????????? TX/RX —
????? RedBoard ???????? ????????? ???????? ?? ??? ???????? (??) ??? ?????? (RX) ??????
???????????, ?????????? ??????? ?????????? ?????-???? ??????;
????????
—
???????
???? ????-USB —
????????? ???????
_
???????????????
ATmega 328
??????
???????? ???????
—
???????? ???????
???. 1.3. ????? RedBoard ???????? SparkFun, ??????????? ? ?????? Arduino Uno.
???????? ????????, ??? ????? ????? ????????? ? ?????? ????? Arduino Uno, ?????????? ?? ???. 1.2
?????????? ????????? 13 —
?????? ?????? (??????) ????? ? ?????? USB. ? Arduino, ??? ???????????????? ????? RedBoard
??? ??????? Arduino ????????? ?????????? ???????????? ??????????????? ????? ??????????
Arduino IDE.
??????????
???? ?? ???-???? ?????????? ????? ?? ????????? ????? ? ?????????, ?? ??????????, ??? ??
?????? ?????????. ???????? ????? ????????? ????? ?????? ????????????? ?????????, ?????
???????? ???????? ??????? ???????.
14 ?????? 1
????????? Arduino IDE ? ?????????
???????, ? ????? ???????? ??????????? ?????? ????????? ???? ???????????? ???? ? ??????????
????? ?? ????? ?????????? ? ????????? ??? ?? ??-
(???. 1.4). ?? ????????? ???????? ??? ???????,
?? ??????? ?? ?? ????? ??
????????. ? ???? Installation Options (???. 1.5)
??????? ???????? ???-
??????????? Arduino ?????????? ?????? Install Arduino software
????????? (??????????
? Arduino IDE ??????????? ?? ???? ??- (?????????? ??????????? ??????????? Arduino)
?????????
???? ? ??????? ?????????? ?? ?????????????). (???? ?? ??? ?? ??????????), ? ????? ?????? ????
????? ???????????? ????? ????????? ?? ????- ?????? ????? ?? ?????????), ? ??????? ??????
???? Arduino Install (??????????).
????. ??????? ? ????? ??????????
IDE ?????? 1.8.1 ??? ????? ???????.
????? ??????????? ??? ? ????? ????????? (Applications) ?????????? ? ??????????? ? ????? RedBoard
???. 1.8. ???????? ???????????? ???? Arduino IDE ? ?????????? ??? ? ????? ????????? (Applications)
?????? 1
????????? Arduino IDE ? ?????????
????? ????????
????? Future Technology Devices International ??????? ? ?????? ? ??????? ?????? ????????-
(FTDI). ??? ??? ???? ?????????? ? ?????????? ???? ???????? ? ??????????? ?? ????????????
??????? ?????????? ???????. ??? ????? ?????- ?????? OS X: ???? ??????? ??? ?????? ???????-
?? ???????? ???-???????? ???????? ??????? ?? ????? ??????? ? Mac OS X 10.3 (Panther) no 10.8
????????? ????????? FTDI (???. 1.9) ?? ??????: (Mountain Lion) ? ?????? —
??? ? ???! ?????? ????? ????????? ????? ???- ??? ??????????? ???????????? Linux ????? ????-
???????, ??????? ??????? ??????? ?? ?????? ???? ?? ???-????????: http://playground.arduino.
Arduino ? ????? Applications. ???? ????? ???? cc/Learning/Linux.
???????? ?? ????????? ????????? FTDI, ?????
????? ??????? ??, ? ????? ????? ?????????. ??? ??- ??? ??????????? ????????????? Linux (???????
????????, ????? ????????? ???????????? ?????- Ubuntu, Debian ? Fedora) Arduino IDE ????? ????-
??????????? ?????. ?????? ?? ????????? ?????? ? ??????? ??????-
???? ??????? apt-get. ???????? ???????? ? ?????-
?? ????????? ???????:
??????????
? ?????? ?????-???? ??????? ??? ???????- sudo apt-get install arduino
????? ????? ?????????? ????????? ?????? ????- ????????? ? X Window ??? ?????? ???????? ?????
????? ?????????. ?????????? ? ???????????? ????????????????? ??????????.
????? ?????????? ????????? ????????? ? Arduino (Upload), | ????? (New), ??????? (Open)
? ????????? (Save). ?????????? ???? ????
????? ? ????????? ??????????? ????????????.
? ?????? ?? ?????????? ? ???????? ??????????
???? ?? ????? ??? ?? ???????, ???????? ?????? ???????? ? ?????.
IDE (???. 1.11). ?? ?????? ???? (???. ©), ? ??????? ???????? ???
??????????????? ???????. ??? ???????? ???? ??-
?????? ???? (???. ? ?? ???????) ???????? ??????? ?????? ?????????????? (©), ? ??? ??? —
??????? ???? (File), ?????? (Edit), ????? (Sketch), ???? ????????? (©). ? ???? ????????? ??????????
??????????? (Tools) ? ?????? (Help), ? ??- ???????????? ????????? ?????????, ????????-
????? ??????? ????? ????????? ? ????????? ?????? ? ??????. ???, ???? ????? ???????? ???-
18 ?????? 1
????????? ???????? ?? ?????????
???. 1.11. ??????? ???? ??????????????? ????? ?????????? ???. 1.12. ?????? ?????? ?????????????? ?? ??????
Arduino ? ?????? ?????????????? ? ????????? ?????????? ? ???
? ???? ?????????
????? ???????? ??????? ????????? ?? ????, ???????? (?????????), Arduino IDE ??????-
? ? ???? ????????? —
????????? ??????????
???????. ???? ? ???? ???? ??????? ?????-???? ?? ???? ?????? (???. 1.12).
?????, ???????? ???? ???, ? ????? ?????? ??????
????????? ?? ?? ?????????????? ?????????? bers) ? ????? ?????? ????????? ????? ??? ???-
???????? ??? ????????? ?????????????, ???- ????? ??? ?????????? (Save when verifying or
?? ????????? ??? ????????? ? ??????? ???? ??? uploading). ????????? ????? ????????? ???????-
???????? ????????. ??? ????????? ? ????????? ????? ? ????, ? ?????? ?? ?????????????? ?????-
????? ?????????? Arduino IDE ????????? ?????- ????? ????? ?????? ??? ?????? ??? ???????? ???
????????????? ?????? ???? ???? | ????????? ???????? ? Arduino ??????? ??????? ????????????
(File | Preferences) —
????????? ???? ????????? ????. ?????????, ??? ??? ???? ???????? ?????,
(Preferences) (???. 1.13). ????????? Arduino ???????? ????????? ????????,
?????? ?????? ?? ????????? ????? ???????? ???
???? ?? ????????????? ??? ????????? ??????- ????????? ??????????? ?????????????? ?????
????
—
?? ?????? ?????, ????? ??? ???? ?????? ?????? ?? (More preferences can be edited directly in the
??????????
???? ????? ???????????? ? ?????????? ??
????????? ????? ?????????? ? ?????????,
????? ???????????? ????????????? ???-
?????? ????? ????????? ????? ??????????- ???. 1.14. ??? ??????????? ? ?????????? ?????, ?? ?????-
?? ???????????. ????? ???????????????? ????????, ????? ?????????? ON,
?????? ????? ????????? 13
20 ?????? 1
?????? ??????????? Arduino ? ??????????
??? ?? ?????????? ????? ?????? USB, ??????? ?? ???? ??????????? (Tools), ? ????? ????????
??? ?????????? ? ????, ? ????????? ?????????, ?????? ?? ????? ????? (Board) —
????????? ???-
??????????? ??????????????. ??? ??????????? ??? ???? Arduino, ?????????????? ?????? ?????-
????? ??? ???????? ????????????????? ?????, ??- ????? (???. 1.15).
??????????? ? ??????? ??????????. ????? ?????
Arduino ?????????? ? ??????????, ? ??? ????? ???? ?? ??????????? ??????????? ????? Arduino
????????? ?????? ??????, ??????????? ? ????? Uno ??? ????? SparkFun RedBoard, ???????? ??-
Windows
????? ????????????????? ????? ???
??? ??? ??????????? ??? Windows ?????? ????? ??-
???????????? ???????.
??? ??????????? ??? ??????????? ??? ???
???. 1.16. ????? ????????????????? ????? ??? ??? Arduino ? ??????????? ??? ??????????? ?? Windows
???. 1.17. ????? ????????????????? ????? ??? ??? ??????????? ??? OS X ? Linux
22 ?????? 1
????????? «??????????, ???!» ??? Arduino
<????> ???????? ??????? ???????????? ????????, ???? ? ???? ?????????? ??????? ID ????? ????-
?????????? ??? ????? ????? Arduino. ???????? ??????? Arduino. ? ?????? ?????????? ????? ????-
???? ????, ??????? ?? ??? ?????. ?????? ????? ?? ?????, ?????????? ? ????. «????? ? ??????????
????????? ????????? ?????? (???. 1.17), ?? ?????? ???????? ??????? ? Arduino» ????? ? ???? ???????.
???? ?????? ??????????, ??????????? ??????? ???? ???? ????? | ???????? (Sketch | Upload)
??????????? ??????????????. ? ??????????? ??? ???????? ?? ?????? ???????? (Upload) (??.
?????? ???????????????? ??? ????????? ????- ????. «??????? ????????? ?? ????? ??????????
??? ??
????? ????? ??????????, ???. ?? ???????- Arduino»). ????? ?????????? ??????????? ??????-
?? ? Arduino ??? ??????, ?? ????????? ??? ????, ??- ?????? ????????? ??? ????????????? ?????????
????????, ??? ????????? ???????????, ?????? ??? ?????? ? ????? ????? ? ??????, ??????? ??-
??????? ??????????? ?????????? 13. ?????? Arduino (???? ??????? ?????????? ?????-
????????? ????? ???? ???????- sketch...), ? ? ?????? ????? ?????? ????? ??????-
?? ??????? ? ??????????? ? ???? ??????? Blink. ??? ????????? ?????????? ??????????. ?????
?????????? ?????????? ????? ?????????? ???- ????? ?????? ?????????? RX (?????) ? ?? (??????-
??? ????????? ???????????????? ????? ? ???- ??), ??????????? ???????? ?????? ? ????? Arduino.
?? Arduino, ? ? ?????? ??????????? ????????? ????????? RX ??????, ?????? ??? Arduino ?????-
???????? (Uploading). ??? ???? ?? ????? Arduino ???? ?????? ?? ??????????, ? ????????? ?? —
???????? ???.
? ?????????? ????????? ???????????? ????-
????? ????????? ??? Arduino. ? ?????????,
2. ?????????, ??? ? ?????? ????? ??????? ?????, ??????????, ?? ????????? ?? ???? ??? ???
??????? ?????????? ?????????? ? ??????- ????? Arduino ??????????????? ??????. ? ??-
????. ??? ???????? ? ???? ????? ??????????? ??? ?????? ????? ????? ??????? ????????-
????? Arduino/Genuino Uno. ?????? ????????.
3. ?????????, ??? ? ?????? ???? ??????????? | 6. ???? ????????? ?? ??????? ??????????
???? ?????? ?????????? ????. ????????? ??????????, ?????????????? ???????? ?????.
24 ?????? 1
???????? ?????? Arduino
??????????? ????? ????? ??????? ???????? ??- ????????? ???????? ? Arduino. ???? ?? ?? ????-
????? ????????? ?????? ??? ???????? ??? ??- ?? ?? ????????? ???????, ??? ?????? ????????
????? ???????? ???????????????? ??????? ???? ???? ????????, ????? ?????????? ?????
? Arduino. ???? ?? ???? ?? ???? ??????? ?? ????- ?? ??????? ?? ??????????? ?????? Arduino ??
?/*
Blink
? void setup() {
pinMode(LED_BUILTIN, OUTPUT);
??? ????????? ???? ??????? Arduino ?????????? ???????????? ??????? ????? ?????? (//) ? ??????
????? ????? ?????????? ????? ?????????????? ?? ??????????? ?*/? ?????. ???????? ????????,
????? ??????? ???????, ?? ?????? ???? ??????? ??? ?? ??? ??????????? ????????? ?? ?????????
??????? ? ?? ????????, ??????? ??? ????? ??- ???????,
—
?????? ???????? ??????? ?????: ??????????, ??- ??? ?? ????, ? ???????????? ????? ????????????
???????? ??? ????????. ?????? ??????? ??????- ????? ?????, ?????????? ? ??????????.
???? ????? ???????? ???????? ????????? ?????
26 ?????? 1
???????? ?????? Arduino
???????, ????? ??????? ?????? ????, ?????????- ?? LED_BUILTIN, ??????? ????????????? ??????-
??? ?????????? ???????, ??????? ????????? ? ???? ??????????? ???????. ??? ???????????
???????? ?????? 0. ????????? Arduino ????????? LED_BUILTIN ?????
?????? ????? Arduino ?????? ????????? ??????? ????????? ???????????? ??????? ????-????????
setup() ? 1???(). ??? ?????? ??????? ?? ????? ??? ????? ?????????? ???????. ???? ???? ????????-
??? ??????? ?????? ?????? ??????? ???? ??? ??- ??, ??? LED_BUILTIN ???????? ???????? ??????
????????? ??????? setupQ, ? ????? ???????? ?????- ? ???????????????? ?????????, ??????? ??????-
????????????? ????
??????????? ? ??????????????, ????? ???? ????- ??????? ??? ?????? ??????. ???????? ????????,
??? 1???() ???????? ?????? ?? ??????? ???????, ??? ???????? ????? OUTPUT ????? ????-????????
???? ?? ?? ????????? ???? (?. ?. Arduino). ?????. ??? ????????, ??? ??? ????? ???????? ???
????? ??????????, ???????????? ? Arduino. ?????
?????? ??????? ??????????, ??? ?????? ?????? ???? ??? ????????? ?????? ?????????, ???????
?????? ???? ? ???????? setupQ ? 1???(). ?? ???????? ?????????? ? ???????? 4 ? 9, ??
???????-
???? ????????? ???????? ???????? pinMode(). ??? ?? ?? ???????? ?????, ? ??? ????????? ?????,
????? ??????? ?????????? ??? ?????????: ???- ???????????? ??? ??????????, ??????????
??????? 1???()
?????? ??????? ?????????? ??????? 1???(), ????-
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
//???????? ?????????
//(??????? ??????? ??????????)
delay(IOOO); //???? ???? ???????
????? ????????
?????????? ??????????? ?????????? ??????. ???
??????? ????? ????????? ??? ?????????: ??????
???????? ????????? ????? (???????), ???????
?? ????? ?????????. ? ?????? ?????? ?? ???-
???-
28 ?????? 1
???????? ?????? Arduino
???????.
???. 1.20. ?????? ??????????: ??????? ?????
—
??????-
???????, ???????? —
?????????????
????????? ??? ?????? ???? ?????? ?? ??????
???: ?????? ????????? Arduino ????????? ?????-
??????????
\
???????
?????
????? ?? ?????? ???????? ???????? ? ??-
?????? ? ???, ???? ???????? ??????? delay() ???. 1.21. ??????????? ???????? ?????????? ? ?????? 13
????? Arduino
???????? 5? ?????? ???????? ????? ????-
????? ????? ????? ???? 5 ??. ?????? ?? ?? ???????????? ??????? ????? ????????, ??? ??-
??? ? ????????? ?????????? ??????? ?? ???????
?????? ??????? ????? ????? ????????????
????????? ??????. ??? ??????????? ??????????
??? ????? ????? ??????? ???????? ?? ??-
??????? ??????????: ??????? ????? ????????
???? ?????? ??????? ??????????? ????????????? (??????), ? ???????? —
??????-
??????? (???????).
??? ?????? ?????????? ????????? ?????????, ??? ????????? LEDJJUILTIN ????? ???-
? ????? ? ???????
???????? ? ??? ?????????? ??????? ?????. ???
???????????????? ????????
???????? ? ???????????
?????????? ??????????? (???. 1.21) ?? ????? ??
??????????. ?????????
?????? ?????? ??????. ???? ????????? ?? ????-
??????????? ???. ?? ?????? ????????? ????????
??, ?????? ????? ?? ?????????? ??????. ??????
???, ??? ???????? ?? ???. 1.20.
?????????, ?????? ????????? ??? ? ????? ??????-
?????.
???? ??????...
? ????? ?????????, ? ??????? ??????????????? Arduino ??? ??????? ???? ?????? ????? ? ??-
??????? ??????????? ?????????? ??????, ??- ????? ???????? ?????? ?????, ?? ???? ???????-
???????? ? ???????. ? ???? ???????? ?????????? ????????????? ???????? (?????) ? ??????? (????)
?????? ?? ????????????? ??????? ? ??? ??????? ???????. ????? ?????? ??? ? ???? ???????, ??
?????????, ??????????????????? ? ?????, ? ???- ???. 1.22 ?????????? ??? ????? ??? ???? ??????-
?? ?? ??????????????? ????? ???????. ????? ????????. ??? ?????? ?????????? ???????
??? ??? ??????? «S-O-S»: ?????, ?????, ????? —
???????????????? ? ?????
?—• ?* ?* -
V--.. 1.
? • -
I •
? •
w —.
2-
?????????? ??????? ???, ????? ????????? ?????
? • —
J Q ? ? —
?
? ? ?>• — •—
? ?
•—
G. —
N U —•
??? ??????????? ????????? ??????????, ??? ? ??? ?????????. ????????, ????? ????????? ?????-
????????????. ????????, ??????????????????, ???? ???????????? ?????-???? ???????? ? ????
??????????? ?????? ??????. ?????????????- ? ?????????, ???? ??
????. ??????? ????? ????-
??? ??????????????? ??????? ??? ????????? ???? ?????? ??? ????????? ?????-?????? ?????-
?????? Blink ?????????? ? ???????? 1.4. ??? ? ???????.
????????? ????????? ????????
??? ????? ????? ????????????? ???????? ??????
??????????, ????? ????? ???? ???????? ?????
Arduino ???-???? ? ?????? (????????, ? ???????).
?? ?????? ???? ????? ??? ????????? ? ????????
? ???? ????????? ???? ???????? ??????? ?????
void setup() {
(???. 1.23).
pinMode(LED_BUILTIN, OUTPUT);
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(200);
digitalWrite(LED_BUILTIN, LOW);
delay(200);
digitalWrite(LED_BUILTIN, HIGH);
delay(200);
digitalWrite(LED JUILTIN, LOW);
delay(800);
???. 1.23. ????????? ???? ???? ? ????????? ????????
???????
30 ?????? 1
?????????? ??????
?????????? ??????
????? ??????????????????? ? ???????? ????- ????????? ? ????? ??? ?????????. ?????? ?????
??? Blink, ????????, ?? ???????? ?????????? ???- ????????? ? ????? ?????? ?????, ?? ??????? ????-
??????????????? ? ? ??? ?????????????. ??? ???, ????? ??? ??? ???????? ? ????? ?????.
?????, ??????? ???????? ???, ??? ?????? ?????? ???? ?? ???????, ??? ????????? ??????? ?????-
?????????? ?????. ??? ????? ?????? ?? ?????? ??? ??????????? ????? Blink ? ?????????? ??????,
????????? ??????? ???????? —
???? ?? ?????? ? ?????, ????? ????????? ? ?????????? ????????? ??? ??????????? ???????????
???. 2.1. ?????? «????????» (Stoplight) ? ????? ???. 2.2. ??????????? ?????????? ??? ??????? «????????»
???
????? ????? ? ??????? ?? ?????? (PRT-
????????????.
09140)*;
????? ???????????: ????????? ??? ???????
??????????? ??????????
???????? ???? ?? (PRT-09835)* (?? ???. 2.2 ??
34 ?????? 2
??????????? ??????????, ??????????? ? ?????????
????????;
???????? ???;
????????????? ???????;
??????????? (????????);
?????????? ??? ?????? ????????;
???? (??????? ???????? ??? ???? ??? ??????-
???????);
????? ??? ????????: ????? ? ????? ? ?????????
4,75 ??;
???????).
1
??. https://ru.wikipedia.org/wiki/TpeTM_pyica.
??????????
??? ?????? ? ????????? ???? ????? ?????
?????? ??????? ????? ??????? ?????? ???-
???. ????????????? ?????????? ???????-
?????????.
???????? ???????? 35
????? ?????????: ????????
??????????,
??????, ?? ? ??????????? ??????? ????????? ?????? ? ????????? ????????. ????????? ??-
????? ?????????? ????? ????????, ????? ????- ???? ?? ????????? ?????????? ??????????? ???
?????? ??????????? ????? ???? ???. ????????? ??????????????? ???????? ?? ????????? ? ??-
(???. 2.5) ???????????? ??????????? ?? ???? ??????????. ??? ???? ?????????? ?????????
??????????? ??????????? ? ????? ??????????? ??????? ????????, ??? ?????????????? ????????
??? ? ?????, ??????? ????????? ?????????? ???? ?? ??????????? ????????, ??? ????? ??????????
(??. ????. «?????? ?????????????? ????: ???? ??? ????? ???????????.
? ?????» ?? ?. 4). ?? ???? ????????? ????????????
???? ?????????????? ????. ????????? ??????????? ??????????, ???????
????????????? ?????????? ? ???? (? ?? ?????? ??????? ??????? ???. ????? ???????? ????? ???-
??» ??????????. ?? ??? ????? ???? ????? ??? ??????????? ??? ????, ? ?????? ??????, ??????.
????? ?????????? ?????? ??? ?????? ???????? (??, ??????? ??????? ??? ????? ?????????????
??????????: 330 ?? ? 10 ???. ???????? ????????- ????????? ?????????? ????????? ??????????.)
?????? 330 ?? ???????????? ????? ??????????
36 ?????? 2
????? ?????????: ????????
???????? ???????? 3 7
??????? ???????? ?????????
330 ?? 330 ??
^
«?????» «?????» «?????»
??????????
???? ??? ?????????? ???????? ???? ??????
38 ?????? 2
??????? ???????? ?????????
???????
??? ?????.
???????? ???????? 39
??????? ???????? ?????????
???????? ???? ?????? ?????? ????????? ? ?????? ???? ????????? ?? ???????? ????? ?? ??????, ???-
GND («?????») ????? Arduino (?? ????? Arduino ???? ?? ??? ?????????? ????????? ??????, ?????????
??? ??????, ???????????? GND, —
?? ?????? ????????? ????? ?????????? ? ???????? ????? ???????? ? ?????? ?? ?????? ???? ????????
??????? ?????. ????????? ????? 13 ????? ????- ?????, ? ??? ???????? ???????? ????? ??????? ?
???? ??????? ?? ??????? ?????????, ???????? ???? ?????? ? ???? ?? ????, ? ??????
—
? ?????? ????
?????? —
?????????? ????? Arduino ? ????? USB ??????- ????????? ?? ???????? ????? ????? ??????, ?????-
????
—
?????? ?????? ??????????? ??????????? ???? ????? Arduino ?? ??????????, ????? ???-
? ??? ????? ????? Blink ?? ??????? ???????, ? ??- ?? ???? ???????????? ????????? ????? ?????.
???????? ???? ??????? ????????? ?????? ?????? ??????????? ??? ??????????? ??????? ??????-
??? ? ???????. ? ????????, ?????? ?????? ??? ??? ?????? ???????????? ????? ??? ??????????
??????????: ? ???, ??? ?? ???????? ?????, ? ???, ??- ??????? ??????????? ?? ???.
????? ??????? ? ????? Arduino, ????????? ??? ???
?????????? ? ?????? ? ???? ?? ?????? 13.
???. 2.10. ???????? ????????? ????? ????????? ??????? ???. 2.11. ??????????? ?????? ??????? «????????»:
«????????»: ?????????? ?????????? ? ??????? 11, 12 ? 13 ?? ????? ????? Arduino, ?????????? ? ?????????
????? Arduino
40 ?????? 2
????????????? ????????
??????????? ?????
????????? ?????? ? ??????? ????????? ???. ????????????
??? ????????? ? ????????? ???. ? ????????????? ???????, ????? ???????? ??????? ??????????
???? ??????? ???????? ????? ?????? ?????????, ?????????, ??? ????? ??????????? ? ???????-
???????? ?????????????? ?????, ??????????? ??????? ??? ???????, ??? ???? ??????? ????-
?? ???. 2.6, ??????????? ????? ????????? ????- ???? ?????? ????????? ?? ???????????? ?????,
????. ???????? ?????? ??????????? ??????? ?? ? ????? ????????? ??? ? ???????? ?????????,
???. 2.10. ???????? ????????, ??? ????? ??????? ? ??? ?????. ????? Arduino, ??????????, ??????-
?????????? ?? ???????? ????? ????????????? ?? ???????????? ? ?????????? ?????????? ???-
??????? ?????????? ????????????, ????? ?????- ??? ?????, ??????? ??????? ?????????????
????? ?? ?????? ????????? ??????. ??? ?????????? ???????, ??????? ??? ????-
????? ? ???? ??????? ??? ????? ?? ?? ?? ????
???? ????? ??? ??????? ?????????? ?????? ???- ???????.
???????? ??????????? ?? ???????? ?????, ??
????????????? ????????
????? ?????????? ????? Arduino ? ??????????, ???????? <????> ???????? ??????? ????????????
????? ?????? ??????????????? ????? ???????- ????????, ?????????? ??? ?????? Arduino.
??. ???????? ????? ?????????? Arduino, ?????
??????? ????? ?????.
??????? ??????????
??? ??????? ???????
????????? ?????????
??????????????? ? ???????????? ??????????
????? ?????????? ????? ??????????, ????? ?????????? ? ?????-
?????? ??? ???????? ????????? ????? ?????, ??- ??? ??????. ??? ?????????? ? ????. «????????
???????? ?????? ??????? ????????? ?????????- ?????? Arduino» ??????? 7, ??????? ????? Arduino
??? ??????????????-???????????????? ??????. ??????? ?? ???? ??????: ??????? setupQ ? ????-
????, ?????? ????? ?????????, ??? ??????????? ??? loop(). ??????????? ??????? ??????? ??????
?????????? ??? ????? (Board type) ? ???? (Port). ????? ????? ????? ??????? ?????????, ?? ?????
??? ????? ????????? ?????????????????? ?????? ??????? ?????? ???????? ????? ?????? ??????-
???? Tools | Board. ???? ?? ??????????? ????? ??????. ??? ? ? ?????? Stoplight («????????»)
SparkFun RedBoard ??? ??????????? ????? Arduino ???????????? ????? ??????, ???????????? ???-
Uno, ???????? ????? Arduino/Genuino Uno. ??????? ????????????? ????. ???? ?????? ???-
????? ????????? ?????????????????? ?????? ??????? ????? ???????? setup() ? ?? ????????? ??
???? Tools | Port. ? ?????????? ??? Windows ???- ? ????? ???????. ? ???? ???????, ????? ???????,
?? Arduino ?????? ???? ???????? ???? ??? ? ??- ???????????? ??????????, ??????? ?????? ???-
??? ??????? ?????????. ??? ??????????? ??? ????????? ??? ????????, ???????????? ??? ???-
??? Linux ???????????????? ???? ????? ??????- ????? ? ????? ????? ??????, ??? ??? ?????????.
?????? ? ??????? /dev/cu.usbserial-A<xxxx>, ??? ? ??????? Arduino ????? ???????????? ????????
???????? ???????? 41
????????????? ????????
?????
????????????. ????
???????? ???????? ?????? ??-
? ?????????? ?????? ? ????????? ??
??? ???????? ???????? ?????? ?????? ???????-
-3,4028235?+38 ?? 3,4028235 ?+38. tot ?????2.
????, ???, ??? ??? ??????????, ???????
• ???? (byte) —
????????? ? ???????,
? ????? ?????????? ????? ???????????? ??-
????????? ????????,
'?1. ??? ?????????????????? ???????? ??? ????????,
??????? ????? ?????.
? ??? ????, ??? ???????
•
?????? (string) —
?????????????????? ???-
??????????? value —
42 ?????? 2
????????????? ????????
byte redPin =
13; void setup()
byte ylwPin =
12; {
byte grnPin =
11;
//??????? ?????????
? ???? ???? ??????????? ???? ?????????? ???- ????????? ? ???? ??????? ????????????? ???
????? ?????? ???????, ? ??????? ????????- ?????? ???????? ??????, ??????? pinModeQ ??-
???? ??????????. ????????? ?????? ??????? ???????? ? ?????? ??? ????. ? ?????? ?????????
? Arduino ?????????? ?????? ??????? ? ?????- ?????? ??????? ?????????? ? ???????? ????-
???? ?? 0 ?? 13, ?? ?????????? ??? ?????? byte. ?????? ?????????? ?????? ?????? ? (redPin,
????????????? ????? ???? ?????? ???????? ?? ylwPin ? grnPin) ? ????????? ??????? ?????? ???-
??? ???????, ??? ?? ?????, ??? ????? ?????? ?? OUTPUT ?. ????????? ?????? ?????? ??????
????? ?????? ??????, ??? 255. ???????? ?????- OUTPUT ???????????? ??????, ??? ??? ????? ?????-
???, ??? ??? ?????? ?????????? ????????? ?? ???? ????????????, ??????? ???????? ??????-
??????????: redPin (????????????) ?????????? ?????? ?????? ??????. ? ???????????? ?????
????? Arduino ??? ???????? ??????????, ylwPin ?????? ?? ???????????? ? ??????? 4.
(???????????) —
?, ??? ????? ?????? ?? ???. 2.10, ????? ?????? ??????? ??????? 1???()
??? ???????? ??????????
—
12,
????? ???????? ??????? 1???(). ????????? ???-
? ??? ???????? —
????? ??????? ?????????? ? ???????? 2.2. ???? ???? ?????????. ???????, ????? ????????-
(??. ??????? setupQ ? ???????? 1.2), ? ?????? ????? ?????? ??????? ????, ?? ??????? ????-
Stoplight («????????») ??????? setupQ ????? ??- ???? ??????? digitalWrite(redPin, HIGH), ? ?????
???????? ???????? 43
????????????? ????????
digitalWrite(grnPin, HIGH);
delay(1500);
????????? ????? ? Arduino
?????? ????? ???? ?????? ??? ??????? Stoplight
//???????? ?????? ????
(«????????») ???????? ? ???????? 2.4. ?? ?? ???
digitalWrite(redPin, LOW); ??? ??????? ? ???????? ??? ?????? ??????? (??.
digitalWrite(ylwPin, HIGH); ???????? 2.1-2.3). ?????? ??????????? ?????????,
digitalWrite(grnPin, LOW); ??? ?? ????????????? ???? ? ???????? 2.4, ???????-
?? ?????, ? ????? ????????? ??? ? Arduino, ?????-
delay(500);
??? ?????????????????? ?????? ???? Sketch |
Upload (????? | ?????????) ??? ????? ???????-
??? ?????? <Ctrl>+<U>. ? ?????? ?????? ??????
?????????? ?????-???? ????????? ?? ???????,
????????? ????? redPin (????? 13) ????? ? ??- ????? ????????? ???? ??? ? ?????????, ??? ??
????? ????????? ??????????, ??????? ??????- ? ???????? ????????????? ???? ? ???????? 2.4. ???
?????? ? ???? ??????? ?????????, ? ???????? ????????, ??? ?? ????-?-???? ????????? ?????????
LOW ? ???? ??????????? ??????? ????????? ??- ??????? ?????, ????????????? ????????? ????
???? ylwPin ? grnPin (?????? ????? 12 ? 11 ????- ? ?????? ??????????, ?? ???????? ? ? ????? ? ??-
?? ????? ????? ????????? ?????????? ??????? ???????, ?? ??? ???????, ? ????? ?????? ?? ??-
?????????? ???????????. ?? ???? ??? ??????? ?????? ?????, ????? ???? ??????? loop() ????????
??????????? ????????? ??????, ??? ??? ???? ????- ??????????? ????????, ????? ??????? ???????
???????? ????? ????? ???????, ??? ??? ???????- ????????? ? ?. ?. ????? ?????? ???????? ?????
44 ?????? 2
????????????? ????????
void
???????? ??? ????? ??? ??????????? ??????????
setup() ????
???????? ???????, ? ?????? ???????????
{ ?????????, Arduino
????????. ??? ????? ????????
pinMode(redPin, OUTPUT); ?????????????? ????????? ???????? ???????,
pinMode(ylwPin, OUTPUT);
? ????? ?????????? ?????????????? ???????-
???. ??? ?????? ????????? ??????????? ?????
pinMode(grnPin, OUTPUT); ? ???????
???????? ????????? ???????????
? ????????? ?? ? ?? 18 ?. ?? ????? ????????????
????????????? ????????? ????????, ?? ???????
???????? ?????????? ?? ???. 2.12 ????????? ???
void loop()
??????? ???????? ??????????? ??, ??????? ??
{ ?? ?????? ?????
?????????? ????????.
//???????? ??????? ????
digitalWrite(redPin, HIGH);
digitalWrite(ylwPin, LOW);
digitalWrite(grnPin, LOW);
delay(2000);
digitalWrite(redPin, LOW);
digitalWrite(ylwPin, LOW);
digitalWrite(gmPin, HIGH);
delay(1500);
???????? ???????? 45
??????? ?????? ??? ?????????
????? ??????????? ?????? ?? ??? ?????? ????? ??????????. ???????, ???? ?? ?????? ??????????-
???????? ? ?????????? ??????. ??? ???????? ???- ?? ?????? ?? ????????? ?????, ?????? ? ????? ??-
??????? ?? ???????? ????? ???? ?
?????? ????? ???? ?? ???????????, ?? ?? ??? ?? ???????????
??????????? ? ???? ?????????. ??? ??????? ???- ??? ?????????? ????? ???? ???????????? ?????-
??????????? ???? ???????? ????? ??????? ? ??- ??? ??? ????? ????????.
????????????? ?????? ? ????????? ??????????
????? ?? ??????? ???, ??? ??????? ???????????
?????????? ?????? ????????? ?? ????????????-
?? ??? ???????????? ???????, ?? ????? ??????-
46 ?????? 2
??????? ?????? ??? ?????????
??????????
???????? ???????? 47
??????? ?????? ??? ?????????
???. 2.18. ??????????, ??????????? ? ????????? ??????? ?????????? ?????????, ????????? ?????????? ??
48 ?????? 2
??????? ?????? ??? ?????????
????????? ? ??????? ??????? ????????? ?????- ????. ?????????, ??? ??? ?????????? ???? ???-
?? ?????? ?????????, ??? ???????? ?? ???. 2.18. ??????? ? ???????? ?????, ????????? ???? ?????
???????, ??? ? ????????? ????????? ????? ???? ?? ????? ????? ????? ? ??? ??????????,
? ???????: ???????, ??????, ??????? —
??????
???????? ???????? 49
??????? ?????? ??? ?????????
?????? ??????? ????????? ??????? ?????? ?????- ??????? ???????????? ????. ??????? ????????
???? ????? ??????????? ?????, ??? ???????? ?? ????? ????????????????, ????????? ??? ?????
???. 2.20: ??????? ??????? ?????? ???????????? ?????? —
?????????? ????????.
???. 2.21. ????? ? ??????? ?????????? ??????? ?????? ???. 2.22. ?????????? ?????? ???????? ?????? ??? ???????-
50 ?????? 2
??????? ?????? ??? ?????????
???. 2.23. ???????????? ????????? ????????? ??????? ???. 2.24. ?????????? ???????????
? ??????? ?????????
?????? ??????????
???????, ?????? ? ????????? ? ???????? ??????- ???. 2.25. ???????? ?????????? ? ????
????. ????? ???????? ???????, ?????????? ??-
???????? ???????? 51
??????? ?????? ??? ?????????
????????? ??????????
? ?????????? Arduino
???, ??? ??? ???????? ???????,
—
??? ??????????
????? ??????????? ? ?????? ????????? ????????-
?? ? Arduino. ????? ?????????? ?? ???? ???????,
?????????? ???????? ?????? ???????????. ???
????? ?? ????????????? ???????????? ????-
??????? ? ????????? ???????? ?? ????? ?????
? ???????? ?? ?????? (SparkFun PRT-09385 ???
??? ?????????????
52 ?????? 2
???? ??????...
???? ??????...
????????????, ? ???????? ?? ????????????? ? ????? ?????? ??????? ????????? ???????? ????-
? ???????? ?????????? ??????? «????????» ??????, ???? ???? ??? ?????, ?????? ??????-
(Stoplight), —
????? ??? ????????????? (???????- ????, ????? ??? ????? ??????, ? ??????? —
?????
?????) ????????? ??????? ??? ?????????? ?????- ????????? ???????.
???????, ????? ????? ????????????? ???????-
??? ??? ? ???? ? ?????????, ??? ? ? ????? ? ?????. ?????????????????????????????????????????
????? ?????????? ????????? ???????????? ?? ????? ????? ?????????? ?????, ? ??????????? ??
???????????????? ? ????? ??? ??? ?????, ?????????? ???? ? ???, ? ????? ???-
??? ????. ??? ?????? ???????? ???????????, ???
???????? ????????????, ?????????????? ????? ?? ??? ?? ????????.
???????
??????????, ???????? ?????? ??????? ? ???????
???????. ??? ??? ????? ????????? ??????? ???
??? ???????? ???????? ? ???? ???? ????? ??-
?????? ??????????????? ????, ????? ?????? ? ?????????? ??????? ?????, ????????? ????????
?????????? ????????? ??????? ??? ????? ???? ??? ? ?????????????. ????????, ??? 1 ???????
???????? ???????? 53
???? ??????...
?????????? 1000 ??, ? ? ?????? ????? ?????? 60. ?????? ?? ???????? ? ??????????, ?? ?????? ???
???????? 1000 ?? 60 ? ????????, ??? 1 ?????? ??????? ?? ??? ??????, ?????????? ????. «?????? ?
??? ?????? ?????????? ????? ????? ? ????????? ?? ??????? ?????????? ??? ??? ?????. ??????
?? 0 ?? 4 294 967 295, ??? ??? ???????????? ??- ?????????? ????? ????? ????????, ??? ?????-
?????? ????? ????? 1193 ?????. ?????? ?????- ????? ????????, ? ????????? ? ?????????? ??-
????? ??? ????? ???????????? ?????, ?? ??? ??? ????????? ????? ????? ???????????? ? ??????
??????????? ????? ????????, ?????? ?? ?? ???- ????????, ????????? ?????? ????? ??????? ?????
??????????? ??????????? ? ????????, ?????? ???- ????? ?????????????????, ???????? ???? ?????
54 ?????? 2
????????????????
????????????
???????
?? ?????????? ???????? ??????
????: ? ?????????, ? ??????????-
??, ??????????, ???????????? ? ?. ?.
?????. ?????? —
?? ???. 3.1.
58 ?????? 3
??????????? ??????????, ??????????? ? ?????????
•
????????;
• ???????? ???;
• ????????????? ???????;
•
??????????? (????????);
• ??????
?????????? ??? ????????;
• ???? (??????? ???????? ??? ???? ???
?????????????);
•
????????????? ?????? (?? ????????);
• ?
????? ???????????: ????? ?????? ?????????
4,75 ??;
• ????? ????????;
???????????:
• ????? ???????????: ??????;
• ????? ???????????: ????????? «?????? ????»1
(?? ????????);
•
????? ??????? 20x30 ?? (?? ???????);
• ?????? ??????? (??. ???. 3.13 ????? ? ????
???????).
???. 3.3. ???????????, ????????????? ??? ??????? ??????-
1
??. https://ru.wikipedia.org/wiki/TpeTbfl_pyKa. ??????????? ???????
????? ??????, ????????? ????????? ????? ???? ?????? ?? ?????????? ???????? ????? ?????, ??-
????? ????????? ??????????. ??????? ?? ??????? ???????? ?? ???. 3.5. ???? ?? ??????? ?????? ??-
??
—
?????????????? ????? ?????? ??????? ?? ???- ??? («?????»), ???????????? ?????? ????? «-» ?
??? ?????? ?? ?????, ??????????? ?? ???. 2.6. ????? ??????? ???????? ?????, ? ?????? ?? ??-
??? ??????????? ???, ??? ??? ???????? ?? ??? ?? ????? GND ????? Arduino. ?? ???. 3.5 ??? ??????
????? ??????????? ???????????, ? ??? ???? ???- ?????????. ????? ?????????? ? ???? ???? ????-
?????, ??? ?????? ?????? ??? ???? ??????????? ?????????? ??????? ????????????? (????????)
? ??? ???????????? ??????, ?????? ?? ??????? ????? ??????? ?????????? ????? ?????????????-
??????????? ????????? ??????? ????? Arduino. ??? ???????? ?????????????? 330 ??. ?? ???. 3.5
330 ??
60 ?????? 3
??????? ???????? ????????????????? ???????
;\
???. 3.5. ??????????? ? Arduino ?????? ???????????: ????? ???. 3.6. ???????? ?????? ????? ? ??????? ????????????,
????, ???????????? ? ?????? 13, ????????? ??????, ? ???- ????????????? ? Arduino: ?????????, ???????????? ? ????-
????????? ? ?????? 5 —
?????
??????? ????? ??????? ?????????? ???????? ? ???? «?????» ???????? ????? ??????? ????? ??-
? ?????? ?? ?????? ????. ???????, ??????? ????? ?????? ????????? ???????? ???,
?????????? ??????? ????? ??????? ?????????? ??? ?? ???. 3.6.
? ?????? 13 Arduino. ??? ????? ????????? ???-
???????? ?????????? ?????? ?????? 13 ????? ????????? ??? ?????? ???????????, ?????????
Arduino ? ????? ??????? ??????? ???? ??????- ????? ?????????? Arduino ? ?????????? ?????
??? ???????? ?????. ????? ?? ??????? ??????- Arduino ? ????? USB ??????????. ???? ? ?????
???? ????????? ?????????? ? ??????? ? 12-?? ?? Arduino ???????? ????? ?? ??????????? ???????,
5-?. ??? ???? ?? ?????????, ??? ???????? ????? ?? ?????? ??????????? ? ????????? ??????????
?????????? ????? ????????????? ??????????. ?????? ??????. ?????? ??????? ??????????, ??? ??-
? ???????? ???????? ???? ????? ?? ?????????, ??????????????? ??? ?????? ???????????, ?????
??? ?????????? ???????? ?????? ??????????? ? ??? ??????????, ??? ??? ?????????.
pinMode(l3, OUTPUT);
???????????????? ???????
???? Arduino ???????? ????? 60 ?????????? (???
????????????????) ???????, ??? ???????? ??? void loop()
????????????? ?????????????? ? ???????????
{
????????????, ???????? ???????????? ????-
???????? ??????????. ????????? ????? ?????- digitalWrite(13, HIGH);
??????????? ??????? ???????? ???? ???????? delay(IOOO);
??????? digitalWriteQ ? delay(). ? ???????????????? digitalWrite(13, LOW);
??????? digitalWrite() ???????? ????? 20 ?????
???? ? ??????? ?????
delay(IOOO);
???? ??? ????????????-
—
?????? ?? ????????????.
?? ???? ???? ?????????? ??? ??????? ???? ?? ???? ??? ????? ?? ??? ??????? Blink ?? ??????-
???????? ?????, ??????? 20 ??? ?????? ????? ?? 1.1. ?? ?????? ????????????? ????????? ???-
???? ?????? ???, ????? ?????????? ?????? ????- ?????? LEDJBUILTIN, ? ??? ????? 13 ???????????
???? ??? ????????? ?????????, ????? ?????????- ????. ???? ??? ???????? ?????????, ??????????-
??, ? ? ???? ?? ??????? ?????????? ????????? ???????? ?? ???????, ????????? ?????????, ?????
?????? ??? ?????. ?????????? ??????? Arduino ?????????????????? ?? ???????, ????? ???? ????
?????????? ?????????? ???????????????? ??- ???????????. ??? ???????? ????? ????????? ???-
???, ?? ????? ? ?????? ????????? ??????? ???-??, ????? ??????? ??????????? ? ?????????? ???-
???????? ?????? ??????? ??????, ?? ?????????? ?????, ??????? ?? ??????? ??? ? ????????????-
? ???????? ?????, ????????????????, ???????. ???? ??????? blink(). ????? ??? ??????? ???? ???
????????? ???? ??? ??????-???? ?????? ??????- ????? ????? ????????, ?? ??????? ?????????
?????????? ??????? ????? ????? ???????????? ????????? ??? ??? ????? ????? ? ????? ?????
? ? ?????? ??????? ??? ?????????? ?????? ?? ????????.
????, ? ?????????? ???? ??????? 1???() ? ??? ?????
????? ????????????. ??? ?????? ???????? ????? ?????, ??????????
? ???? ??? ?? ???????? 3.1 ? ????????? ???. ?????
?? ????????? setup() ? loop() ?????????? ???????
??????? ???????????????? ??????? blink(), ??? ???????? ? ???????? 3.2.
? ??????? ???????????????? ??????? ?????
62 ?????? 3
????????????? ???????????????? ???????
//???? ??????????? ??? ???????????????? ??????? void blink(int pinNumber, int delayTime)
digitalWrite(pinNumber, HIGH);
??????? 3.2 ???????? ???? ????????? ????????- delay(delayTime);
???????? ???????. ? ???????????? ??????? ???-
digitalWrite(pinNumber, LOW);
???? ?????? ??????????? ??? ??????, ?????????-
???????? ?. ????????? delay(delayTime);
??? ??????? blink() ????-
?? ???????? ???????????
???????????! ?? ?????? ??? ??????? Arduino ??-
?????????? ??????? ??? ??????????? ?? ?????
??????, ??? ???????? blink(), ? ????? ?????? ????-
???????????????? ???????.
?? ???? ? ???? ??????????.
13 12 11
? ? ?
10 9 8
? ? ?
7 6 5
? ? ?
64 ?????? 3
????????????? ???????????????? ???????
13 12 11 13 12 11 13 12 11
• • • ? ? ? ? ? ?
10 9 8 10 9 8 10 9 8
? ? ? • • • ? ? ?
7 6 5 7 6 5 7 6 5
? ? ? ? ? ? • • •
6 —-
5
???????? ????????? ????????, ????? ???? ???
????????? ??????.
void setup()
??????????????? ????????? ??? ?????, ?????
{
????????? ????????. ??????? ?? ??????????, ???
???????????? ???????.
66 ?????? 3
????????????? ???????????????? ???????
??????? ????????? ??? xChar(), ????????? ??? ??? ????? ??????? ???????? ????????, ??? ?? ??-
?????????? ?????? X. ??? ??? ??????? ?? ???- ???, ??????????? ??????. ???? ?????? ?????-
??????? ??????? ??????, ?? ????????????? ??? ???? ????? ???? ???????????????? ???????, ??
?????? void. ????????? ???? ??????? ??????? ??? ??????? ?? ??????????, ? ?????? X ?? ?????
digitalWriteO (??. ??????? 3.6) ? ??? ???? ????????- ?????????? ?? ???????.
???????? ??????? ???????????? ????????? ????
? ??????? 1???(). ????? ???????????????? ????- ?????? ????????? ??????? ????? ? Arduino. ????
??? xChar() ?? ??????? 1???() ?????????????? ???, ???? ?????????? ??????????? ? ???? ?????-
??? ???????? ? ???????? 3.8. ??????? ?????, ?? ??? ????? ????? ??????????-
???? ???????????? ?????? ??????? ? ?????????.
?????? ??????????? ?????? X ????? ??????
????????? ????? ????, ??????? ? ????????, ???
13 12 11
• • •
10 9 8
• ? •
7 6 5
• • •
???. 3.10. ?????????? ?????? ??? ??????????? ?????? X ?? ???. 3.11. ?????? ?????????? ?????? ?
????????? ????? ???????
???????????????? ?????
??????? ????????? ???? ?????, ???????? ????????? ?????????? ??? ??????????? ??????.
? ?????????, ?????????? ??? ???????????????? ??????? xChar(), ???????? ?? ? ???? ????? ?????
??????????? ???????? ?????? ??????? xChar(), ? ????? ?????? ??????????????? ??, ????? ???
?????????? ?????? X ? ?
void oChar() ????? ????????? ??????? ????? ?????????? ??-
{ ???? X ? ??????? ?????????? ???????, ????? ??-
digitalWrite(13, HIGH); ???? ?, ? ????? ????? ?????? X ? ??? ????? ? ?????.
digitalWrite(7, HIGH);
digitalWrite(6, HIGH); //?????? ??????????? ??????????????? ????? ???????:
digitalWrite(5, HIGH); //13—-12—-11
//10-— 9-— 8
void loop()
{
//??????????? ?????????? ?????? X ? 0
xChar();
68 ?????? 3
????????????? ???????????????? ???????
delay(500);
oChar();
delay(500);
void xChar()
{
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
digitalWrite(1O, LOW);
digitalWrite(9, HIGH);
digitalWrite(8, LOW);
digitalWrite(7, HIGH);
digitalWrite(6, LOW);
digitalWrite(5, HIGH);
void oChar()
digitalWrite(13, HIGH);
digitalWrite(12, HIGH);
digitalWrite(11, HIGH); ???. 3.12. X
???????????? ??????????? ????? (??????)
? ? (?????) ?? ???????????????? ???????
digitalWrite(1O, HIGH);
digitalWrite(9, LOW); ? ??????
??????), ? ??? ??????????? ?????? ??-
digitalWrite(8, HIGH); ???? ??? ??????????, ?? ??????????? ????????
(???. 3.12, ?????).
digitalWrite(7, HIGH);
digitalWrite(6, HIGH); ????????? ?????, ????????? ?? ????? ????????-
??????? loop() ????? ?????? ?????? ?? ??????? ???????? ????? ????????????????? ??????? ??-
loop() ?????? Blink, ?? ?????? ??????? digitalWriteQ ??? ???, ??? ?? ????????? ?????? ????????? ??-
? ??? ???????????? ??????? xChar() ? oChar(). ? ??- ???? ??????. ?? ????? ????????? ???????????? ??
???????? ??????? ?????????? ?????? X ? ??????? ??? ??????, ?????????? ???????? ????????????
500 ??, ? ????? ?????? ? ????? ? ??????? 500 ??. ???????????. ??????? ????? ????????? ???????
????????? ??????????? ????? ? ????? Arduino ? ?????? ???????? ?????????? ?????????????????
????????? ??? ??????. ??? ??????????? ?????? X ???????, ?? ??????? ????? ?????????? ??? ??-
?????????? ?????? ?????? ????? ???? (???. 3.12, ??????? ??????, ??? ? ?????????????? ????????.
???????? ??? ????? ??????? ????? ??????? ???- ???????? ???????????? ?? ?????? ??????. ???
???? ???? ??????? ? ??????????? ? ??? ??? ?????- ????? ???????????? ????????????? ????????????
??????. ??? ????? ????? ????? ????????? ???- ?????? ???????? ??? ? ????????????? ???????,
???????? ???????????, ????? ???? ??????? ????? ????? ?????? ????? ???????? ? ?????? ????. ??
????? ??? ??????????? ????????????? ???????- ????????? ? ???????? ?????????? ?????? ? ??-
???. ?? ????? ???????????? ????????????? ???- ???????? ? ??????? ????? ???????. ?? ?????
??? ???????? ????? 3 ??, ?? ????? ???????????? ???????????, ??? ???????? ?? ???. 3.14, ??????? ?
????? ???????? ?????????? ??????? ????????. ??????? ???????? ??? ?????? ????????? ?????
????????? ????????? ????? ????? ????????? ??- ?????????? ??????????. ??? ???? ??????? ?????
???????, ??? ??????, ??????? ??????? ????? ????- ??? ????? ???? ?? ??????????? ????????? ? ???-
?????, ?????? ?? ????????? ? ??? ????????????. ??? ??????? ?????????, ????? ????????? ????? ?
???????????
?????????
???????????
?????????
70 ?????? 3
??????? ?????? ??? ????????????????? ???????
???. 3.14. ????????? ????????? ??? ??????????. ?????? ???. 3.15. ?????? ??????? ???????
????????? ??? ????????? ??? ?????????? ? ???????? ??
???????
????????? ??????????
?? ????????? ???? ?? ????????? ?????????? ?
???? ????????? ????????? ??????? ???????, ???- ??????????, ??? ???????????? ????????? ???????
?????? ????? ????????? ? ??? ?????? ???? (?? ????????? ? ?????????, ?????????? ? ???????-
?????? ? ????, ??? ????? ????????? ?????? ????? ????? ??????? ??????. ?????? ??????? ??????
?????? ??? ?????? ??? ?????? ??????? ? ?????? ??- ????? ????????? ??????? ????? ????? ??????? ??-
??? (??? ????????? ?????? ???? ????????????? ???? ? ?????????? ? ? ?????????????? ?????????.
????????» ??????????.
??? 3.19. ???????????? ????????????? ????????? ? ????- ????????????, ????? ?? ????? ???? ?????????
????? ? ????? ????????????. ????? ????? ??????????
72 ?????? 3
??????? ?????? ??? ????????????????? ???????
? ????.
?? ???????
??????? ?? ?????? ????? ????????? ? ?????? ??
???. 3.21. ??????????? ??????????? ??????? ?????? ??????? ? ???????? ????? ? ??????? ??????????? ????????? ? ???????
?? ????? ????? ? ???????? ?? ??????
???????????? ?????? X
???????? ??????????? ???????????. ?????????
??????????? ??????????? ????? ?? ???????,
?????????, ???????????? ? ????????????? ????? ????? ??????????? ??????? ? ??????????-
??????? ??????????? (??????? ??????? ?????), ?? ?? ????? ?????? ?????. ?? ?? ??????????????,
?????????????? ?????? ?????? ? ?????? ????- ?????? ??? ? ??? ??????? ???? ??? ????????????
?????, ?????? ????? ???????? ????????? ? ???? ??????. ????? ?? ?????? ?????? ?????????? ?? ??-
???
????????? ??????????????????
???????????, ??????? ????? ??????????? ?
13 12 11 13 12 11 13 12 11 13 12 11
? • ? • ? ? ? ? ? ? ? •
10 9 8 10 9 8 10 9 8 10 9 8
? • ? ? • ? • • • ? • ?
7 6 5 7 6 5 7 6 5 7 6 5
? • ? ? ? • ? ? ? • ? ?
???. 3.23. ???????? ???????? ????? ??????????? ??????????? ?????????????????? ?????, ????????? ?? ???? ? 45°
74 ?????? 3
??????? ?????????? ????????
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
void setup() dJgitalWrite(11, LOW);
digitalWrite(13, HIGH);
void loop() digitalWrite(12, LOW);
digitalWrite(11,L0W);
//???? ??????????? ????? ??????? ????????
digitaiWrite(10, LOW);
digitalWrite(9, HIGH);
//???? ??????????? ??? ???????????????? ??????? digitalWrite(8, LOW);
??? ??????????? ??????
digitalWrite(7, LOW);
????????? ?? ????? ???????????? ?? ?? ?????? digitalWrite(6, LOW);
Arduino, ??? ? ? ?????? ??? ??????????? ????? X digitalWrite(5, HIGH);
? ?, ?????? ?????????? ??? ????????????? ????-
>
void horizontalLine()
digitalWrite(7, LOW);
digitalWrite(6, LOW);
digitalWrite(5, LOW); void spinningl_ine(int delayTime)
verticalLineQ;
? void topRightDiagonalQ delay(delayTime);
{
topLeftDiagonalQ;
digita!Write(13, LOW);
delay (delayTime);
digitalWrite(12, LOW);
digitalWhte(11, HIGH); horizontalLine();
delay(delayTime);
digitalWrite(1O, LOW);
topRightDiagonalQ;
digitalWrite(9, HIGH);
delay(delayTime);
digitalWrite(8, LOW);
digitalWrite(6, LOW);
?????? ?????????? ???????????? ?????, ?????-
??????? ?????, ?????????????? ????? ? ?????
digitalWrite(5, LOW);
???????????? ?????, ?? ? ??????????????? ??-
??????? verticalLineQ ? ?????????? ?????? ????? ???????? ? ???????? 3.14. ?? ?????????, ??? ???
?????????? ??? ? ???????? ? ????? ????? ???????- ?????? ?????? ? Arduino ?? ??????? ?????? ??????-
???? ???????? ?????? ??????? topRightDiagonalQ. ?????? ???????? ??????????? ?????.
76 ?????? 3
???? ??????...
??????, ??????????? ???????? ???????? ???- ?????????? ?????, ?? ?????? ???? ????????? ??-
????? ???????????????? ??????? ? ?? ?????- ?????????????? ????????.
????? ??? ??????????? ??????????????????
???? ??????...
???????????????? ??????? ??????? ???, ??? ?????? ??????? ??????? ???????????? ????? ???-
??? ????????? ??????????? ??? ?/??? ???????? ??????, ??????? ????? ?????????. ????? ???????
???????????? ???. ?????????? ????????? ???? ???????? ???? ????????? ????????? ??? ??????-
??????, ???????????? ????? ??????? ????????. ????? ???? ??????????????
? ??????? ??? ???-
????????, ????? ??????? ???? ??????? ? ???- ???????? ?????????? ????? (???. 3.25). ???????
??????? ? ??? ??????? ?? ??????? ????????? ??- ? ???????? ?????? ?????????? ?????????, ?? ???-
???????. ???? ????? ?????????? ??? ????? ?????????? ??-
???????????? ?????
?? ?????? ??? ????????? ????????? ?????????-
????????, ????? ?????????? ????????? ???????- ???. 3.24. ?????????????? ???????????? ??????? {?????)
3.24). ???????? {??????)
??????? ???????????? ???????? (???. ? ??????? ??? ????????? ?? ?????
D DP A
???. 3.25. ????????????? ??????????? ???? ????????? ????????? ? ?????????? ????? ??????????????? ?????????????
??????? {?????) ? ??????????????? ?????????????? ????? (??????)
????????, ??
????????? ?????,
—
? ??????? ??????-
???????? 215 ???????????. ??? ?????,
????????? ?? ??, ????? ??????????-
???????? ?????? ?????? ????? ?? ???-
??, ??? ????????? ??????, ????? ????
?????????? ??-
? ???? ??????? ?? ??????, ??? ??????? ????? ?????????? ???????? ???????, ????????? ????? Arduino.
?????? ? ??? ??????????? ???? ??????? ?? ???. 4.1.
????????? ??????? ????? ???????: Arduino ????- ???????? ??? ? ?????????. ??????? ???????? ?????-
???? ?????????, ????????? ?????? ? ????, ???? ?? Arduino ? 16 ??? ????????, ??? ?? ????? ??????-
???????????? ?? ?????? ?? ??????. ???????????? ?????? 16 ????????? ?????????? ? ???????. ?????
???????? ?? ??????, ??? ?????? ????? ???????- ???????? ????????? ?????????? ?????? Arduino
????? ?????????, Arduino ???????????? ????? ????????? ?????????? ??? ?????? ???????.
?? ????????? ?????????? ?? ??????? ?????? ?
???????, ?????????, ????????? ??????? ? ????? ?????????? ???????? ????? (PRT-12002), 1 ??.;
Arduino. ?? ?????? ???????? ???? ?????????? ??-
?????????? (???-12062): ??????? (1 ??.),
?????? ? ??? ??????, ???????? ??? ??????????- ?????? ???????
(1 ??.), (1 ??.);
???. ????? ????, ????? ??????? ???? ????? ????-
????????? 330 ?? (???-08377 ??? ???-
?????????, ????????????? ???????? ?????? ???-
11507 ??? ??????, ??????????? 20 ??.), 3 ??.;
???? ????? ???????.
???????? 10 ??? (???-08374 ??? ???-11508
??? ??????, ??????????? 20 ??.), 1 ??.;
?? ??
??? ?????????? ????? ??????? ??? ??????????? ??????????? ????????? ?????????
????????? ?????????? (???. 4.2): ????? ?????? (PRT-11026);
??????????? ????????? ?? ???????? ??
• ????? RedBoard ???????? SparkFun (DEV-13975), ????? ????? ? ??????? ?? ?????? (PRT-
??? ????? Arduino Uno (DEV-11021), ??? ????? 09140)*.
?????? ??????????? ? Arduino ?????, 1 ??.;
80 ?????? 4
??????????? ??????????, ??????????? ? ?????????
???????);
????? ???????????: ????? ??? ???????????
???????.
???. 4.2. ??????????? ?????????? ??? ??????? ?????????? ???. 4.3. ???????????, ????????????? ??? ??????? ??????-
??????? ???? ???????? ???????
????? ???? ???????????: ?????????? ? ??????. ???????? ?????? ???????? ??? ???????? —
????-
????? ??????????? ?? ????????? ?????? ?????- ?????? ??? ????????, ?? ? ?????? ?????? ???? ??
????? ?? ???? ??????. ????? ???????, ?????? ??????????, ? ??????????? ?????? ? ??????? ???-
????? ????????? ????????? ?????, ?????? ???- ????, ???? ?????? ???????????? ???????. ????-
???????? ?????????????? ? ??????. ???? ????????? ????????????? ??? ????? ?????-
?? ? ??????????? ??????????? ???. ???? ? ?????-
??? ??-
????????? ????????? ?????? ?????????? ???????-
??????? ?????????????? ??????????, ???????
?????? (?????) ? ????????, ??? ????? ?????????
??????? ????????????? ??????? ? ??????? ?????
????? ??????????? ?
?????????????, ????????
??????? ?? ???????, ??????? ??????? ???????
????? (??????). ???????? ???????? —
?????????
??????????. ?????? ???????????? ???????????
????????????? ??????????? ?? ?????????? ??-
?????: ? ??????? ?????????????? ??????????, ??-
?????? ????? ???, ????? ?? ????? ??? ???????????
????????, ???????????????, ??????? ????????
? ?????.
??????
? ?. ?. ????? ???????????, ??? ??? ?? ????????-
????. ? ????????????????, ?????? —
??? ???????
????????? ????????????? ????????? ????????
?????????????? ?????????????. ?? ???. 4.5 ????-
????????
? ???????? ????????? ????? ??? ????????, ??-
???? ??????? ??? ?????????? {?????) ?
??????? ??? ?????, ??? ??? ????????. ????? ????,
(??????) ??????????????.
????????? ????????????? ?????? ????? ????-
?????? ??????
??????
/\ ?
?
??????
\/ ?
?????? ??????
???. 4.6. ????? ??????????? ?????????? ?????????? ????-
????????? ????????????? ??????? ????????????? ???????-
????????? (?????) ? ??? ?????????? ????????? ??
???. 4.5. ????????????? ?????? ?????????? (?????) ? ????- ??? ???????? ????? (??????) —
82 ?????? 4
??????? ???????? ?????????? ???????? ???????
????????????? ??????????
? ????????
? ??????-
???? ????? (? ?????? ??????
—
? ?????????? ??-
?????, ?? 5 ?. ???? ??????? ?????????? ???????- ?????? ???????? ???? ??????????? ??????????-
?? ??????? (HIGH). ??????? ?????? ???????? ???? ???: ??? ?????????? ?????? ??? ????? ?????????
????? ??????? Arduino ? «??????», ? ?????????? ?????? ????? ???????? ?? ????? Arduino, ?? ???
???? ?? ????? Arduino ???????? ?????????? ???- ??????? ?????? ????????? ???? ? ?????????? ??-
???? (LOW) ??????. ??? ??????????? ???, ??? ??? ????? ??????????????.
?????????????????? ????????
??????????? ????????
???. 4.9. ????????? ????? ????????? ?????????? ???????? ??????? ? ????? ??????? ? ????? ???????????
? ?????????
??????? 5 ?. ?? ????????? ???? ????? ?? ?????
84 ?????? 4
????????????? ?????????? ???????? ???????
2. ???????? ?????????.
3. ?????????? ?????????.
??????????
?????
?????????? ???? int ????? ????????? ??-
4. ????????? ?????? ? ??????? ???????
??????????? ???????? ? ????????? ?? ?
??????.
??65 535(216-1).
5. ??? ??????? ?????? ????????? ????? ????-
??? ??? ??????? ????? ??????? ????? ?????
??????? ???????. ??????? ? ?????????? ???????????? ???? ?
???????????? ??? ??????????? ?????????? ????
6. ?????????? ?????????? ?????????.
int ??? ???????? ???????? waitTime (????? ??-
??????????? ?????.
????? ??????? ??????????? ??????? setup(), ???????
???????? ????? ??????????: Serial.begin(9600) ©.
???????? ????????, ??? ?????????? Serial ?????-
??????? ??????? setup() ????????? ???
?? ? ?????, ????? ????? ?? ???????
???????? ????? ????? ? ????? ?????????? Arduino ???? ?????, ? ????? ????? ??? ??????? ???? begin.
? ???????? ? ???? ??????? setupQ ?? ???????? 4.1. ??? ?????????? ????????? ?????????? ?? ????? ??-
??? ????????????
? ???????????????? ????????? ????????? ???-
????? ??????????????? ??? ?????? ?????? ????- digitalWrite(13, LOW); //????????? ?????????
???? pinMode(13, OUTPUT). ????? ????? 3 ???????-
???????? ???????? © pinMode(3, INPUT) ??? ?????? //?????????? ????????? ?? ???????? ????? (Serial Monitor)
? ?????? ????? ??????. ????? ????? ?????? ??- ? ????
Serial.print("0T7iM4HO ??????????! ????? ???????: ");
??????? ??????, ??? Arduino ????????? ???????? ? Serial.print(reactTime);
?????? ?? ?????? (? ???? ??????? ?????? ?????- © Serial.?????(?????????????);
????? ??? ?? ???????), ? ?? ?????????? ??????
delay(1000); //??????????? ???????? ?????
?? ??????.
//?????? ??? ???????? ?????
//?????????? ?? 2000
//?? 4000 ??
???. 4.11. ???????? ???? ???????? ????? (Serial Monitor)
© delay(waitTime); //??????????? ???????? ????? ? ?????? ????????????
86 ?????? 4
????????????? ?????????? ???????? ???????
??? ????? ?????????? ?????? ???????? ?????? ??? ???, ???? ??????????? ???????, ?????????
<Ctrl>+<Shift>+<M>. ?? ?????????? ???? ??- ? ??????? ???????. ? ?????? ?????? ??????? ???-
waitTime, ??????? ???????????? ? ??????? ????- ???????????? ??????? (HIGH) ???????. ??? ????-
??? random()©. ??????? random() ????? ? ????- ??? ?????? ????? 3 ????? ???????????? ? «???-
??? ????? ?????, ??????? ??????? ??????- ???? ????????. (???? ? ?????? ????????? ??????-
???, ?? ? ???????????????? ??????? ?? ????????. ??? ??????????????? ?? ?????? «?????????? ???-
??? ??????????. ??? ????????? ?????????? ??- ???????? ?????? ??????? ????. ? ?????????? ??-
???????? ??????? mil is() ®* ??????? ???????????? ????? ?????? ??????? ?????? ?? ?????????????-
????? ?????????. ??????? mil is() ????????? ???-
??, ? ????? ???????? ????????? ???, ????????? ??
?? ????????? ???? while()0, ? ??????? ????????? ?????? ?????. ????? ??? ?????????? ???? ?????
??????? ??????. ??????? ?????? ?????? ???- ????????, ??? ???????????? ? ???????????? ???-
??? ????????????????, ? ????? Arduino ???? ????: ??????? ??????????! ???? ????? ????-
whileQ ????????? ??? ?????? ???????? ?????? ?? ???: ??????????? ?????? print() ? ??????? Serial.
??????? ?????? println()# ????? print() ?????????? ???????? ????????, ??? ?????????? ???? ?????-
????? ? ??????? ?? ?????????, ?? ?? ????????? ???? ??? ????????? ?? ????? ???????, ???????
?????? ?? ????? ??????. ? ?????????? ? ??????- ?????????? ???????? ????? ??????? ??? ???-
??????? ?????? ????? ???????? ?????????????? ????. ? ??????? ??????? printQ ? println() ?????
?????????? —
??? ???????? ??????????? ? ??????? ????????? ?????? ???? ? ??????? 1???() ????????
88 ?????? 4
????????????? ?????????? ???????? ???????
?????????????????? ?????? ???? Tools | Serial ????? ?????, ????? ?????????? ????? ???????
Monitor (??????????? | ??????? ?????) ??? ???????? ????????.
??????? ?? ?????? ??????????????? ?????? ? ???-
??? ???? ?????? ???????????? ????? ????????-
?? Arduino (??. ???. 4.11).
?????? ????? ????? ????? ??????? ? ???????- ??????? ?????? ?????????? ???-
???????
??????, ??? ???????? ? ??????? ?? ???. 4.12. ?????
?????? ?????????? ?? ???????? ????????
???? ???????? ???????? ???????? ?? ?????????-
?????? ? ?????????? ??? ???????? ? ??????.
??? ????-???? ?? ????? ??????. ??????? ????????
??????? ?????????? 215 ???????????. ? ??????
???? ???????? ?? ????????? ?? ????????
????????? ?????
????? ??????????? ???????? ????
??? ??????
???? ????
????????? ????????
???????
???. 4.13. ????????? ?????? ?????? ???????? ?????? ??????
????? ??????? ????? ??????? ????-
??? ???????? ????, ? ???? ?????
?? ???. 4.15.
???. 4.14. ????????? ????? ??????????? ?????????????? ???????????
90 ?????? 4
????????????? ?????????? ???????? ???????
void setupQ
???
?????????? ??????? ?????????? ??????
?????? ?? ?????. ????? ???????? ? ????? ???,
? ??????? ????????? ????????? if ...else
????? ???????? ??????? ????????? ??? ?????-
?? ??????? ????? ???????, ??? ???????, ? ????- ????? ??? ????? ???????? ? ???????? ????? ??-
??? —
??????? setup() ???????? ? ???????? 4.3, ??? ?????- ????????? ??? ????????
? ??????? ????? ????? if.
?????? ??? ??????? ?????????? ???????. ? ????????? ?????? (????????? ????? ????????
92 ?????? 4
????????????? ?????????? ???????? ???????
??, ??????????????? ?? ?????? «?????????? ???- ?????? ??? ???????? ?????????? ? ????? ? ? ??-
?????? ?????????» ????? ? ???? ???????. ???? ????? ????????? if...else. ?????? ?????????
????????? ????? ???????? ??????, ?????????- reactTime <= 215 ? ????????? ???????? ???????-
?? ???, ??????????? ? ???????? ?????? ®. ???? ??? reactTime —
????????.
??? ????????. ??????????????? ??? ?????????? ? ? ????? ???????? ????????, ??? ???????????-
? ???????? 4.5. ??? ? ??????????? ???? ???? ??????? ???
?????????.)
while(digitalRead(3) ==
HIGH)
reactTime =
mil is() -
else
{
dlgltalWritefl 2, LOW); //????????? ???????
//?????????
digitalWrite(11, HIGH); //???????? ??????? ??????? ????? ??? ? ?????, ????????? ??? ? ?????
//????????? Arduino. ???????? ???? ???????? ????? ? ??????-
?? ????????? ???, ????? ?????????, ??? ??? ????-
//?????????? ????????? ?? ???????? ?????
???? ??????? ???????. ??????? ?? ??? ??????
???????, ????? ?????????? ? ???????? ??? ???? ?????? ? ???? ??????????? ???????? ???? ? ??-
??????????? ???????. ????? ??????? ???? ?????? ????????? ?? ???? ??????????, ?? ?? ??????
??? ????? ?????, ?? ????????? ?????????? ??- ???????? ???? ??????, ??? ??? ?????????. ??
???????? ???????? ??????? ? ????????? ???- ???. 4.16 ??????? ?????? ??? ??????? ????. ? ???
?????? ??????? ? ???????? ??????????? ????? ??????? ????????? ??? ??????, ??? ??????????-
100x130 ??. ?? ?? ?????? ???????? ?? ? ????? ?? ?????????? ? ??? ???????????-???????????
?????????? ??????, ??????? ? ??? ??????? ??? ???????? ???????. ?????? ????? ????????? ???-
?????, —
?????? ??????? ??-??? ??????? ??? ??? ? ?????????? ????????? ????? ?? ??????:
??????? ??? ? ????? ?????? ??????? ?? ???????? https://www.nostarch.com/arduinoinventoi7,
???????. ???????, ?? ?????? ??????? ????????? ??? ?????-
94 ?????? 4
??????? ?????? ??? ?????????? ???????? ???????
????? ???-
?????- ?????????? ?????
??????? ?????? ?????????: ??? ??? ?????? ?????, ???????
—
???????, ? ?????????? ?? ????? ? ??? ??????, ?? ???. 4.17. ????????? ????????? ? ??????? ? ???????
????? ????????? ?????? ???? ?? ???????? ?????- ????????? ????
?? ?????????
???? ?? ?????-???? ??????? ?????????? ?????-
????? ??????? ?????????? ?? ?? ????? ??
?????-
??????????
??, ??? ????? ??????? ?? ????? ?? ???????????
?????? ????????? ??? ??????????? ??????? ????? ??????????. ? ?????????, ?? ??????? ????-
? ???? ?? ????- ?? ? ?????? ????? ????? ?????????? ?????? ???-
??????? ??????? ????????
???? ??????? ????? ?? ??????? ??????????????
???? ?????????. ??????? ???? ?? ??? Hashi-
??????. ?????? ????? ?????? ?????????, ?? ???
sh ?????? ???????! ??????? ???????????? ?? ????? ???????.
??????????? ? ???????.
96 ?????? 4
??????? ?????? ??? ?????????? ???????? ???????
?? ???????? ??????
?? ??????????? ???-
????, ?, ?????????
? ??? ???????? ??-
??????? ??????
????? ??????? 2,
?? ???????? ??
????????? ???????-
???, ??? ????????
?? ???. 4.23.
???? ??????...
?? ????????? ???? ?????????? ?????????? ???- © else if (reactTime <= 250)
???, ?????????? ? ?????????? ?????????? ?????? {
???? ????????, ?? ???????? ? ????? ???????, ???-
//???????? ??? ???????????? ??????????
?? ??????? ??? ????? ??????????. ????????, ??-
?????? ??? ?????? ??????????? ??? ?????????
digitalWrlte(12, LOW);
???? ??? ???? ???????. digitalWrite( 11, HIGH);
digitalWrite(10, HIGH);
digitalWrite(9, HIGH);
???????????????? ? ?????
}
???????? ? ???? ??? ??? ??????????, ????? ???- © else if (reactTime <= 300)
???? ??????????????????? ????????? ??? ?????
{
??????? ??????????? ???????? ???????,
—
???
98 ?????? 4
???? ??????...
?????????? ????????.
??? ????????????? ??????? ?????? ????-
???, ??? ????? ??????????? ???? ?????? ?????? ?????????????? ????? ??????????? ? ????? ???
????????? ????? ??????????? ??????, ???? ? ??? ???? ???????? ? ?????? ????????, ???????????-
????????, ??? ?????? ????? ?????? ????????? ? ??? ?????, ?? ??????: https://www.nostarch.com/
?????? 2 ????? Arduino. arduinoinventor/.
?????
?? ????????????????.
??????????? ??????????, ??????????? ? ?????????
? ??????? ???????? ???????? ????? ??????? ?????????? ? ????? ???????????? ? ??????? ????-
??????????? ??????????? ?? ??????? ???? ?????- ????????, ?????? ?? ??? ?????? ??????, ?????-
?????? ??????????? ???? ???????????, ?????, ?????? ?? ?????? ?????? ????????????. ??????
???????? ???????? ? ?. ?. ?? ?? ?????? ???? ? ??? ??????????? ???? ??????? ?? ???. 5.1.
????????????, ?????????????? ????? ?????? ??? ?????????? ????? ??????? ??? ???????????
??????? ????????? ?????????? (???. 5.2):
??? ?????????, ????????????? ????????
?? ?????? ??? ????????????. ????? ????????
??????????? ????? ???????, ????????????? ???- ????? RedBoard ???????? SparkFun (DEV-
?? ??????? ??? ???? ? ??????, ???????????? ??- 13975), ??? ????? Arduino Uno (DEV-11021),
?????? ???? ????? ?????? ???????? ????? ?????- ??? ????? ?????? ??????????? ? Arduino
??????? ????????????. ???????, ???? ?? ??????- ?????, 1 ??.;
????? ?????????? ??? ???????????, ?????? ?????- ?????? Mini-B USB (CAB-1101) ??? ?????? USB,
???? ?? ??????????. ??????, ???? ?? ?? ???-????
?????? ? ????????? ? ????? ??????, 1 ??.
?????? ???????? ???????? ??? ???????, ? ?????? (?? ???. 5.2 ?? ???????);
????????, ?????????????? ??? ?????, ?? ??????? ?????????? 1 ??.;
???????? ????? (PRT-12002),
??????, ??????? ????? ???????????? ? ????????
??????????? ?????????? ???????? ?????
????????? ????? ??? ??? ????????????.
(PRT-12043)*, 1 ??. (?? ???. 5.2 ?? ????????);
102 ?????? 5
??????????? ??????????, ??????????? ? ?????????
•
??????????? ????????? (???????, ???????,
?????) ? ????? ??????? (???-9264), 1 ??.;
•
????????? 330 ?? (???-08377 ??? ???-
11507 ??? ??????, ??????????? 20 ??.), 3 ??.;
•
???????? 10 ??? (???-08374 ??? ???-11508
??? ??????, ??????????? 20 ??.), 1 ??.;
•
???????????? (SEN-09088), 1 ??.;
• ?? ??
??????????? ????????? ?????????
????? ?????? (PRT-11026);
•
???????? (10 ??) ??????????? ????????? ??
?????? (PRT-09140)*;
• ????? ???????????: ????????? ??? ???????
???????? ???? ?? (PRT-09835)* (?? ???. 5.2 ??
???????).
??????????
??????????, ???????????? ?????????? «*»,
?? ?????? ? ?????? ???????????? ???????-
???????? ???;
????????????? ???????;
???? (??????? ???????? ??? ???? ??? ??????-
???????);
???? ???????????? ??????? (?? ??????????-
????) ???????? ???????? 22x28 ??;
?????? ??????? (??. ???. 5.20 ????? ? ???? ???. 5.3. ??????????? ? ?????????, ????????????? ???
???????). ??????? ???????
??????????? ??????????: ??????????? ???????- ???????? ?? ???. 5.4, ?? ????? ???????, ??? ???
?? ? ????????????. ??????? ???????????? ? ???- ??? ??? ?????? ????? ?????? ?????. ? ??????? ??
????,
?????????, ??? ???????? ?? ???. 5.5, ?????. ? ?????
?? ??? ??? ?????????? ???? ????? ??????????-
????????? ????? ????? ???? ??????????? ????-
??? ?????
—
???????.
?
??????? ? ????? ????? ???????? ??????????
??????? ?????????? (??? RGB) ??????? ?????-
???????????????, ? ? ??????? ???????????? ???-
104 ?????? 5
??? ????? ??????????
???????
??????????
? ?????? ??????? ????????????????????
—
?????????.
/ \
???, ???? ???????????? ???????? ????? ? ??????? ????? ???????
??????????, ?? ??????? ???? ?????????? ?????. ???????
? ????????????? ????????? ???????? ? ????????
???. 5.6. ?????????? ???????? ????
?????????? ???? ???? ??????? ?????. ???? ?? ????-
???????? ???-
?????? ??????
—
???????????? R,
??????????? ? ???? ??????? ?????? ??????????,
???. 5.7. ????????????
????? ? ??????? ?????????? ?????, ? ???????????, ??
????? ? ??? ????????. ??? ????????, ??? ??? ????-
?????? ???-?? ??????????, ????? ? ??????? ?????,
? ????? ??????. ??? ??????? ???? ?????? ??????
??????????????????? ??????, ??????? ? ??????-
???? ??????? ???????????? ? ???? ???????. ??
????? ???????????? ?????? ???? ????????????-
??????? ????????, ?? ?? ?????????? ??????? ??-
«?????»
??????????, ?????? ???????? ??????? ?? ???. 5.7.
???. 5.8. ?????????????? ????? ???????? ??????????
????? ?????? ?????? ????? ????????, ????????- ????? ???????????? ????? ???? ????????????
???? ?????? ???????? ???????? ? ?????????? ??? ????????? ?????? ????????????, ??? ??????-
??????????????. ???? ???????? ? ?????, ???????????? ??????-
??? ?????????? (???. 5.8). ???????? ??????????
? ??????????? ?? ????????????? ???????????- ???????????? ????? ??? ??????????? ???????-
???? ?? ???? ?????????, ????????????? ??????- ???????? ?????????, ? ??????? ????????? ?????
? «?????». ? ??????????
?????? ? «??????»
???????????? ????? ?????? ????????????? ??? ????? ?????????? ??????????
????????? ??????????? ?????? ? ??????? —
????????? ????? ?????????? ????????? ????? ???????? ????????? ???????? ?????????? 1/???
????? ????? ???????????. ??????????????? ???????????.
????? ??????????? (???? ? ???????????????
?????????? /?1 ?
/?2 ????? ???????? ????????? ????? ???????, ? ??????? ???? ????? ?????
?? ? ??????????? ?????? ?????? ????. ?? ??? ?? ???????? ?????? ????? Arduino. ? ??????? ??
????????, ??? ??? ?????? ???? ???????. ?? ??? ??????, ???????? ?????? ??????? ????? ??????
?????????? ? ??????? ? ?? ?????, ????? ???? ??? ??? ?????????, ???????? ?????? ?????????????
????? ???????. ??? ??????? ????????? ???????? ????? ????? ???????? ???????? ? ??????????? ??
??????? ??? ?????? ? ?????????????? ??? ????- ????????????? ????????? ? ????????????? ?????
??????? ???????? ?????? ??????? ????. ???, ???? ???????? ??????????. ? ???? ??????????? ?????-
? ????? ???????? ?????????? ???????? ???????? ?? ????? ????????? ? ??????????? ?????????.
??? ?? ???. 5.9. ????????????? ????????????? ??? ???, ??? ??? ? ???????????????? ????? ?????,
????? ?????????? ?? ???? ??????? ??????????- ????? ???????? ?? ?????? ???????? ??????????.
??? ??? ?????????. ?? ???? ?? ?????? ????? ????? ????????? ??-
R, (????????????)
«?????»
???. 5.9. ????? ???????? ?????????? ? ??????????????
106 ?????? 5
??????? ???????? ???????
RGB-????????? ????????????
???. 5.12. ???????? ? ?????????????? 10 ??? (??????????, ???. 5.13. ????????? ????? ???????? ?????????? ? ??????-
??????????? ???????????? (?? ?????? ????????? ??????? ?????????? ?????? 5 V ?? ????? Arduino
???????? ???, ??? ???????? ?? ???. 5.7) ? ????- ? ????????????? ????? ??????? ???????? ?????,
???? ? ?????????????? 10 ???. ?????????, ??? ? ?????? GND —
? ?????????????.
???????? ?????????????? 10 ??? ??????????-
?? ??????????, ?????? ? ????????? ????????? ????? ???????? ???????????? ? ?????? ????? ??-
(???. 5.12). ????? ????????? ?????????? ? ???, ?????? ?????, ?????? ???????? ????????, ??? ??-
??? ?????????????? ??????????? ???????? ??- ???? ????????????? ??????????? ? ?????? ????
??????? ?? ??? ???????????? ????????, ?? ???- ?????. ???????? ???? ????? ????????? ?????-
???? ? ????. «????????? ?????????» ??????????. ????????? 10 ??? ? ?????? ? ??? ?? ???? ?????-
?????? ??????????, ?????????? ?? ???. 5.13. ??? ????????). ?????? ????? ????????? ???????????
?????????? ???????? ????? ??? ?????? ???? ??- ? ?????? ? ???? ???????? ?????, ? ???????? ????
108 ?????? 5
??????? ???????? ???????
?????????? ?????????? ???, ? ??????? ????- ????? ????? ???????, ????? ??????? ????? ???-
????? ????????? ????? ????????????? (?? ???? ????? ? ??????? (?????????) ????, ? ????? ????-
?????, ?? ??????????? ? ??????????), ? ????- ??? ????? (????? ?????) —
? ????????? ??????
????? ????????? ?????????????? 10 ??? ? ???? ???? ?????????? ?? ????? ??????????, ?????????
????? ?????????????. ???? ????????? ????? ??- ???? ??????????????? ?????? ???????? ?????
Arduino —
? ?? ?? ?5 —
?????????? ???????????
?????????
??????? ????? ????????? ?? ??????? 21? ??? ??-
(????????????? ?????) ?????????? ? ???? ????- ??????? ????????????? ????? ????????, ????????
?????????? ??????? («?????») ?? ????? ??????? ??- ? ?????? ??????? ??????????.
?????? ?????. ???????, ? ??????? ???????????
????????? ?????????? ????? 11 ????? Arduino ? ? ???????????? ???????
????? ??????????? ???-
? ???? ??????? ??? ????? ??????????? ? ???????- ??? pinModeQ ? ????????? ?????? ?? ??? ???????-
???? ?????? ?????????, ??????? ? ??????? ? ???, ???????? ????? ?????? ? ???????? ?????????.
??? ????????? ????? ? ??????????? ??????????. ? ?????????? ???????? ?? ????????? ??????????
????????? ??????????? ?????????, ?? ????, ????- ???????????? ? ??????? ??????? digitalWrite() —
???? ????? ???????????? ? ????? ????????, ? ???? ??? ?? ??????? ???????????? ? ??? ??????????
??? ????? ?????????? ? ???, ??? ? ????? ??????- ?????????? ??????? ???????????? ??????????.
???? ????????????. ???????? ????? ????? ? ???- ??????? ???? ?? ????????? ?????? ?? ????????
?? ?????????? Arduino ? ???????? ? ???? ??????? ????? (??. ???. 5.6). ????? ??? ????? ??????? ????,
setupQ ? loop() ?? ???????? 5.1. ?????????? ????????? ???????? ? ?????? ???-
?????? ??????. ????? ???????, ? ??????? ????-
??? digitalWrite() ??? ????? ???????? ??????? ©
? ?????? ??????????. ??? ???? ??????? ???????-
?? ?????? ???? ????????, ??? ?? ? ?????? ? ??-
void setup() ©.
????? ??????????????? ??????? digitalWrite()
{
????????? ???? ????? ? Arduino, ? ???? ?? ?? ??-
>
pinMode(11, OUTPUT); //???????
??????? ??????? ?????? ??? ??????? ?????
pinMode(10, OUTPUT); //???????
? ? ????, ??????????? ????????? ?????? ???-
????? ?? ??????? ????????????? ?????? Arduino, ?????? ??????? pinMode(), ? ?????????? ???????
??????????? ??????????? ???????????, ??? ?????????????? ?????, ??? ? ?????????? ???????-
???????????
(OUTPUT) ?, ????????? ??? ????? ??? ?????? ????- ??????? ??????? digitalWriteQ.
110 ?????? 5
????????????? ??????
????????????? ??????
? ?? ??
?5 —
50)
?????????? ????????? ??? ????????????, ? ??-
{
???????? ???? ????? ?????????? ???????? ?????-
????? ???????? ??????????, ??????? ???????? digitalWrite(11, LOW); //???????
?? ?????????? ???? ?????. ??????? ?????????, digitalWrite(10, HIGH); //???????
??? ??? ??? ???????? ? ???? ??? Arduino. ?????
digitalWrite(9, HIGH); //?????
??????????, ???????? ??? ????????? ??????,
}
??? ????? ??????? ?????????? ?? ?????????????
? ???????? ??? ?? ?????????, ???-
• else
???????????
???? ???????????? ? ???????. ? ??? ??? ???? ??- {
????? ????? ??? ????? ? ??????????? ???????????
digitalWrite(11, LOW); //???????
? ??????????????, ???????????? ?
???????????
?????? ?? ????? Arduino. ? ? ???????? 5.2 ???-
digitalWrite(10, LOW);//???????
??????? ???? ??????????? ??? ??? ?????????? digitalWrite(9, LOW); //?????
???? ??????. ?????? ??? ???????? ???? ??? ? ?????
????????? ???? ??? ? Arduino ? ???????? ? ??????? ????????? ????? ????? ?????????? ???????????
????? ?????????. ????????? ?? ?????? ??????. ?????? ????????????, ????? ??????, ????????
?????????? ??????? ??? ??????, ????? ?? ???? ??????? ??????? ???????????? ? ????????? ???
?????? ?? ???????? ?????. ??????, ???? ?????? ??- ? ?????????? lightValue ©. ???????? ??????????
??????? ? ???????? ????????????, ??????????? lightValue ??????????? ??? ?????? ???????????
????????? ????? ?????? ???????????. ???????? ?????????? ????? 1???().
????????????, ?? ??? ??? ??????? ??????????, ??-
?? ?????? ????????????
?????????? ? ???????? ??????
Arduino ?????????? ????????????? ????????
????????????
????????????, ??????????? ? ?????????? cali-
??????? ? ?????? ????????? ?????????? ????- brationValue, ? ??????? ????????? ????????????
?????? calibrationValue ? lightValue, ?? ???????? ? ?????????? lightValue, ????? ??????, ????????
?? ?? ?????????????. ?????, ??????? ???? ??? ????????? ??????, ?? ???? ?????? ??? ??-
?? ???????? ???????
5.1, setupQ ? ?????????? ?????? ??? ????? ???????????? ??????????. ???
??????? pinModeQ ????????? ???
??????? 9, 10 ????? ???????????? ???????? ???????? if. .else, ??-
? 11 Arduino ?? ?????? ? ?????? ?????? ???- ????????? Arduino ??????? ??????? ?? ??????
??? (OUTPUT). ????? ?????????? calibrationValue ?????????? ??????????? ?????????, ??????? ??-
????????????? ????????????? ????????, ??- ??? ????? ?????? ??? ????????: true (??????) ???
???????? ???????? analogReadQ ? ? ?????????? false (????). ?? ???. 5.15 ???????? ????? ?????????
?????????? ?????????? ?????????????. ? ???? ???????? ??????? ? ????????? if...else.
< ??????-
112 ?????? 5
????????????? ??????
??? ????????-
???? ??????? ????? Arduino, ? ?????????? ????
???? ??? ????? ????? ???? ?????????, ????- ? ?????????? ? ??????????? ????????? ????-
????? ?? ??????? ????????????, ????? ????? ??- ??? ?????, ?? ??? ????????-???? ???????? ? ?????.
?????? 50 ?? ???????? calibrationValue ? ???????? ?????? ?????? ????? ?????????. ??? ? ? ??????? 4,
?????????? ??? ???????? ??? ????, ????? ????- ????? ????? ?????????????, ?????? ????? ??????
???? ????? ???????????? ??????. ???? ??????- ?????? ????? Arduino (???. 5.16). ??? ?????? ????-
?????? ?????? ??????? lightValue < calibrationValue, ???? ??? ??, ??? ? ?????? ?????? ?????????? ???
????????? ????? ?????????? ? ??????????? ??? ??????? ???????. ??? ?????? ??????? ???? ????-
?? 50 ?????? ?????? ?????????????? (??????- ?????? ??????. ??? ???? ?????????? ??????? ??
????) ???????? ?????? ????????????. ???, ????? ?????? ????????????? ??????? ?????-
?????? ???????????? ?????????, ?? ???? ?????
?? ?? ??? ???????? ?????-???? ??????? ???????.
??? ????? ?????? ?? ????? ????????? ??????. ????? ??????????? ?????? ?????? ?????????.
??????? ????? ??????????? ? ????????? ?????-
??, ??? ??? ??????????, ??? ????? ???????????? ???? ??????????????? ? ????? «?????? ???????-
?????? ???????? ?? ??? ???? ?????????? ???- ????» ? ?????? ?????. ???????? ??????, ???????
?????? ??????, ? ????? ???????? ??? ????? ? ???- ???????? ???????????, ????? ????? ?????? ???
??? ??????????????. ?????????: ?????????? ??? ???????????. ? ???-
? ? ? ?????????.
J U U ??????
?????? (HIGH)
?????????????
???????
?????????????????
????????????
???????-
?????-
??-
114 ?????? 5
??????? ?????? ?????
????? ??? ????? ????????? ?????-???? ??????- ???????, ??? ? ??? ?????? ??????? ??????, ???
?????? 9, 10 ? 11, ??? ? ????? ?????? ???????? ??? ? ????????? ?? 0 ?? 255. ? ?????? ??????
?? ????????, ? ???? ????? ?????? ?????? ??????- ??? ?????? 9 (???????????? ????? ????????-
???????????? ??????? (?????? ???????) ?? ????- ???? ?? ??? ???????? ??????. ? ???????? 5.4 ???-
??, ? 255 ????????? ??????????????? (???????
—
??????-??????? ©, ? ?????? —
????-?????? ?.
analogWrite(9,204);
delay (1000); ?????????? ?????????????????? ? ??????? ???-
???????? ????????? ????????? ????? ??????? ??????? ? ????? ?????? (???. 5.19).
???????, ???????????? ??? ????? ?????? ????????
?? ??????? Arduino, ??????????? ?????????? ?????? ??? ???? ???????? ?????? ??????????
???????. ??? ?? ?????? ????????????? ??????? R, G ? ?, ??? ????????????? ???????? (red), ????-
?????????? ?????, ??? ?????????? ??? ???? ? ??- ???? (green) ? ?????? (blue) ??????. ???????????
??????? ?????. ????, ???????????? ?, S ? ?, —
? ??? ?????????
?????? 5
??????? ?????? ??? ???????
50)
??? ?? ??? ???????, ????? ? ??? ???? ?????? ???-
???????, Saturation —
????????????,
???? ??????????? ? ??????? ??? ?????? ???????
Brightness —
???????. ??????.
??? ?????????? ????? ???????????. ????????? ???????????? ? ?????? ???????? ??????? ??????
??? ????? ????? ??????? ?????-???? ???????- ??????? ???????, ?? ?????? ???????????? ????-
??? ??????????, ???????? ???????. ????????? ???????, ???????? ???? ??????, ???? ???? ????-
? ????? ?????, ?? ?????? ?????? ?? ???????????? ???????? ????????, ??? ? ????????? ???????
????? ????????, ? ?????????????? ??????????? ??????? ??????? ?????????? ????? ??? ???????
?????? ??? ??????? ? ????. ? ????????. ?????? ????? ??????????, ??? ????-
?? ?? ????????? ???? ?? ?????? ???????, ?????
???? ????? ?????????? ??????? ? ??????? ???-
???????? ?????? ??????? ???????? ?????. ?? ?? ???? ???????,
?????? ???????? ??? ???????: ???? ??? ?????- ????????????? ?? ????????? ?????? ??? ???.
?????????? ???????? ????????? ??????? ????- ?????? ??? ? ????????????? ??????? (???. 5.21),
?? ??? ??????. ??????? ??? ??????? ? ??????? ????? ?????? ????? ???????? ? ?????? ????. ??
???????? ?? ???. 5.20 (??? ????????? ? ???????- ????????? ??????? ?????????? ?????? ? ?????-
???????? ????? ?????? ???????? ??? ???? ?????). ??? ?????: ?????? ?????? ?????? ?? ????, ? ??
???? ? ??? ???? ???????, ????? ??????????? ?? ???????? ??? ? ?????-???? ???????, ? ??????? ???
? ?????????
????? ?? ?????????, ? ??????? ????? ????????. ????????.
?????????
118 ?????? 5
??????? ?????? ??? ???????
???????? ??????
??????????
???????? ??? ?????????? ?????? ??????? ?????
?????. ? ??? ?????? ???? ????? ??????? ??? ???- ? ??????????? ?? ??????? ?????????????
???? ? ?????? ??????, ??? ???????? ?? ???. 5.22. ???????, ????? ????, ??????? ??????? ?????-
?????
????? ?????????? ???????.
? ??????? ???? ?? ??????????? ? ????
??? ?????? ????? ? ?????????. ??????? ??????
???. 5.21. ????????? ??????? ?? ???????? ?? ?? ??????? ???. 5.23. ?????? ????????? ??????? ???????
???. 5.22. ?????? ??????? ??????? {?????) ? ?????? {??????) ? ???????? ??????
????? ??????? ????? ??? ?????? ??????? ?????? ??????? ???????? ??????? ???? ?? ??????????
??? ????? 90 ????????. ???? ?? ??????????? ??- ??????? ??????? ????? ? ????????? ? ??? ???-
????, ????? ?????? ????? ?????????? ???????- ??????? ??????, ??? ???????? ?? ???. 5.26. ??? ???
??? ??????. ????????? ????????? ? ?????? ? ??- ???????????, ????? ????? ???????????? ??????
?????? ??????? ?????? ?????? ????????? ???, ??? ??? ??????, ????? ???? ????? ?????? ?????????
???????? ?? ???. 5.24. ??????? ? ???????? ?????.
???????, ????????? ??? ??????? ?????? ? ??????- ?????? ?????????? ??????? ?? ??????. ??????
???, ??? ???????? ?? ???. 5.25. ???????? ???????? ???? ?????? ?????? ???????
?????? ? ???????? ?? ??? ????, ??? ???????? ??
???. 5.24. ?????? ???????, ?????????????? ? ???????? ???. 5.26. ??????????? ??????, ?????? ??? ??????????? ????
??????
???. 5.25. ???????????? ??????? ????? ? ????????? ???. 5.27. ????????????? ???? ???????
120 ?????? 5
??????? ?????? ??? ???????
???????? ? ??????-
??? ??? ?? ??????????? ???????? ?????.
??, ? ??????? ?????? ??? ???????? ????????????- ???. 5.29. ????????? ? ??????????? ??????????
????????????
??? ????? ???????????? ?????????? (???. 5.30). ?? ??????????? ???????? ????? ??? ????????? ??? ??????
???. 5.30. ??????????? ???????????? ??????????, ?????????????? ?? ??????????? ???????? ?????, ? ????? ?? ???????
???????? ?????
???? ???????
?? ???????? ???? ?? ?????? ?????- ?? ????? ????!
???, ?????? ???????? ??????????? ???????? ???-
?? ? ?????? ????? ??? ?????????, ??? ???????? ?? ?????????? ????? Arduino ? ???????? ???????-
???. 5.31. ? ????????? ?????? ????????? ?????- ?? ??????? ?? ?????????? ? ????????? ? ???????
????? ?? ????? ?????, ??? ?????????? ??????? ????? ?????? (???. 5.32).
?????? ??????????? ????????? ? ?????, ??? ??
???. 5.31. ?????? ? ????????????? ? ???? ??????????? ???. 5.32. ??????????? ?????? ???????: ????? ? ???? ???
???? ??????...
??? ????? ??????? ????????????? ?????????? ????? ????? ??? ?????? ??????? ????????????
?????? ????? ??????? ? ??????, ?? ?? ??? ??? ???????? ????????? ?????, ????????? ??? ?????
????? ??????? ????????? ??? ??????????? ???- ???????? if...else if ?????? ???????? ????????? if. .
?????. ? ????? ??? ????? ??? ?????????, ??? else. ??????? ??? ??? ?????????? ????? ???????
? ????? ??????????, ??? ? ?? ????? ????, ?? ???? ????? ????????? ??? (??????? 5.6):
????????? ???? ?????? ????????? Arduino.
???????????????? ? ?????
if (lightValue < calibrationValue -
200)
? ???????? ?????? ?? ????????? ??????????? {
??????????????????? ????? ?????????? ??-
//????????? ???? ??? ??? ?????? ???????
??????????? ????? ????? ??????????? ???????.
50)
122 ?????? 5
???? ??????...
//????????? ???? ??? ??? ????????? ???????? ??????? ???????????? ??????? ????? ??????-
?? ????????? ???????? ? ?????????? ??????? ????? ?? ?????? ???????????? ??? ???? ????-
?????? ???????, ??? ??? ?????? ????????????? ???. ?? ???. 5.33 ?????????? ?????? ?????????
????? ??????? ?????? ??????? ?????? ????????? ??????????? ?????? ?? ????? ????????.
???. 5.33. ???????? ??????????? ??????? ???????, ??????????? ?? ?????????????? ???????? ?? ?????? ???????? ??? ????
?????
?????? ?????? ? ??? ?????: ?????????????? ? ??- ??? ?????????? ????? ??????? ??? ???????????
????????? ?????????? (???. 6.2):
??????????.
126 ?????? 6
??????????? ??????????, ??????????? ? ?????????
• ????????????? ???????;
•
??????????? (?????????? ???????????);
•
???????;
• ???? (??????? ???????? ??? ???? ??? ??????-
???????);
• ????????? ????????;
•
??????? (?? ????????);
• ?
????? ???????????: ????? ?????? ??????-
??? 1,6 ??, 3 ?? ? 6,4 ??;
• ?????
??? ??????? ???????? ????????
22x28 ??;
•
??????? ??? ????? ???????? ???????, 1 ??.
????
?
???. 6.4. ?????????, ????????????? ??? ??????? ????????- ???. 6.5. ???????? ??????????? ?????????????
??? ?????
????? ??????????
? ?????????? ???????? ?? ???????????? ????? ?????????? ????????, ?? ???? ????????, ??? ??-
??? ?????. ???????????? ???????????? ????? ???? ?????????????, ??? ??? ????? ??????????
128 ???????
????? ??????????
??????? ??????. ? ?? ????????? ???????? ??- ??? ?????????????, ?? ????? ??????????? ??-
?????????????
—
?????
?????? ??????? ?? ?????????? ???????????? ??-
10 ???.
???????????? ?????????? ????????????????
???????????? ??? ???????? ????? ???
? ???? ?? ??-
???????????? ????????. ???????
??????????? ????????, ??????, ??????????, ??-
???????? ??????????? ?????????????? ??? ????-
??? ????????????? (?? ???????? ????????? ?),
????????? ? ??????? ?????????? 180 ????????
??????? ?????????? ???????, ????????????
(?? ?????? ???????? ??????????????). ??????
????? ??? ??????????? ?????, ?????????? ????
6.8.
???????? ???????????? ??????? ?? ???.
????????????? ????? ???????? ? ? ? ????????.
???????? +5 ?, ????? ? —
? «?????», ? ????? ? —
???. 6.7. ?????? ??????? ?????? ????????????? ??? 6.8. ??????????? ???????????? ??? ?????????????
??? —
??????????. ????? ?? ???????????????? ??????- ???? ????? Arduino ??? ??????? ???????????, ??
?? ??????????, ??? ????? ???????? ?????????, ?
????? ????????? ? ?? ???????? ?????????????-
??? ???????? ?????????? ????? ???????? ?? ???
????? ????????? ????????????? 1 ?? ? ????????
? ????????. ???? ???????? ???? ???????????? 20 20
?? (?? ???? ?????? ?? ????????? ???????
?????? ??????????. ???? ?? ???????? ????????? ?????
????????????? 1 ??), ?????????? ??? ?????-
???????? ?? ??? ?????????????, ?????????? ????
??????? ?? ???? 0°.
??? ???????? ???? ???????????????? ?? ?????
?????????? ? ????????. ????????, ??? ????????- ????? ???????, ?????????? ???? ???????? ?????-
???? ???????????? ????? ??????? ?????????, ??- ??????? ? 0° ????? ? ??????? ????, ?????????-
????????? ????
????????????
???????????
void setup()
????????????
; ???????????? ???????? 1 ??
pinMode(9, OUTPUT);
}
void loop()
???????
???????????? ; ; ???????????? ???????? 1,5 ??
digitalWrite(9, HIGH);
delay(1);
????????????
'
digitalWrite(9, LOW);
????????????
| ; ???????????? ???????? 2 ?? delay(19);
???. 6.10. ???????????? ??????? ??? ??? ?????? ????????? ????????????
130 ?????? 6
??????? ???????? ????? ?????????? ??????????? ??????
???? ??? ?????????? ??????? ??????? ??????? ?? ? ???? ??????? ? ??????? Arduino ?? ?????
?????? 9 ? ??????? 1 ??, ????? ???? ?????????- ????????? ????????? ??????????? ????? ? ??-
?? ?????? ?? ?????? ??????? ? ?????????? ??? ? ??? ?? ???????? ??????? ???????, ??????? ? ??-
??????? 19 ??, ???????? ??? ?????????????????? ??? ?????? ?????? ????????????. ??? ????? ???
??????? ? ??????????? ?????. ?? ???, ??????? ??? ?????? ????????? ????????? ??????? ? ??
??, ? ????? ????????????. ??????? ????? ???????? ????????? ????????? ?? ????? ??????. ????????
?? ???. 6.11. ??? ????? ????????? ? ???????? ?? ? ?????? ???-
?????????, ??? ???????? ?? ???. 6.12.
??? ???-
??????? ?????.
??????? —
???. 6.13. ????????? ????? ??????????? ???????????? ???. 6.14. ????????? ????????????? ??????? ?? ????????
? ????? Arduino ????????????
132 ?????? 6
????????? ??? ?????????? ??????????? ??????
???? ????? ??????????? ???????????? ?? ??? ????????????? ????? ???????? ? ????????? ???
?????? ???????????? ?????????, ?????? ????- ????????? ???????? ?????. ?????????? ???????
??????? ?????? ?????? ?? ????????????? ???? ?????? ????????????? ? ????? ??????? ?????-
???????, ????? ?????????? ???. ??????, ????- ??? ?????, ? ??????? ?????
—
? ??????????? ??-
????????? ?? ?????????? ?? ????? ??????????- ???? ?? ????? Arduino, ??? ???????? ?? ???. 6.15.
??? ??????? ?? ??? ???, ???? ? Arduino ?? ?????
???. 6.15. ????????? ????????? ????????? ????? ??? ?????????? ??????????? ??????
??????? 6.2 ???????? ??????? ????? ??? ???????- Sketch | Include Library, ? ????? ??????? ? ??????-
??? ?????????????. ???????? ????? ????? ? ???- ????? ?????? ????????? ?????????? (? ??????
??????? ? ???? ??? ?? ????? ????????. ?????? Servo). ??? ????????????? ??????? ? ?????
????? Servo ???? ????? ???????? ??????? ???????. ????? ??? ???-
?????????? ????? ????????-
????? ? ??????? ? ????? ???? ??? ????? ????? ???? ?????????? ????????? ??????
??????????
—
????????? ?? ??? ??? ???????? ?????????? ???- ???????????, ????????, ??? ??? ?????????
??????????. ??? ??????????? ???, ??????? ??- ????????? ?????? (shoulder), ?????? (elbow)
???????? ??????????, ?????? ??? ???????????? ? ?????? (wrist) ???????????????? ????, ??????-
????????? ??? ??????. ??? ?????????????? ????- ??? ????????? ????????????, ?????????? ? ??-
?? ??????? ??????????? ????????????, ??????? ????????????? ???????. ??? ????? ????? ???????
???? ? ???? ??????, ???????????? ???????? # ??? ??????? ???? Servo, ?????? ??, ??????????????,
? ?? ??????????????? ?????? ? ???????, ? ?????- shoulderServo, elbowServo ? wristServo, ??????? ? ??-
?? ????????? ??? ???????. ????????? #include ???? ??? ?????????? ????????? ?????? ????????????-
???????? ????????????? ???????? ? ????? ???? ??? ?????????????. ??? ??????? ?? ???? ???-
??? ?? ?????????? ?????, ?????? ??? ????????? ????? Servo ?? ?????? ????? ????? ????????????
134 ???????
????????? ??? ?????????? ??????????? ??????
myServo.write(IO);
??????????
delay(IOOO);
???? ?????? ???????? ???????? ???? ???-
myServo.write(170);
????????? ?????????? 0°-180?, ???????-
delay(IOOO);
?????? ???????????? ??? ?????? write() ???-
??? ?????. ??? ???????????? ?????? ??????- ????????? ????? ? Arduino ? ???????????? ?? ???
?????? ?? ???? 90°. ?????? ????? ???????? ????- ???????. ???? ?? ???????? ??????? ???????,
???? ??????? ???????????? ????????????. ????? ?????????? ? ?????????? ?????
—
?????-
????????? ?????????? ?????????????, ??? ??-
????? ?????????? ??? ?? ?????? ???? ? ???????? ??????????? ??????????????????? Arduino ???-
???????? ????????? ???????????? (10°-170°), ??? ??? ??? ????? ??????? ????. ??? ????? ???
????? ?? ?????? ???? (??????? 6.3). ???????????. ????????????? ?????, ??? ??????-
?? ? ???????? 6.4.
void setup()
?????? ?????????. ?????????? ??????? Arduino
{
map() ????????? ??????????????? ????? ? ?????
myServo.attach(9); ????????? ?
??????????????? ????? ? ?????? ??-
???????. ???????? ????, ??????????? ???? ????-
???? ??? ???????? potVal, ??????????? ? ???????-
??? anglePosition ?. ??????? ???() ????????? ????
void loop()
??????????: ???(????????, ?????????, ??????????,
{ ???????, ????????). ? ?????? ?????? ??? ???????-
potVal =
analogRead(AO); ???????? ???????? ?????????? potVal ? ???????-
?? ???????? 0-1023 ? ???????? ???????? 10-170.
anglePosition =
map(potVal, 0,1023,10,170);
??? ????? ??????? ???????, ??????? ????????? ?
myServo.write(anglePosition); ??????? ????????? ????????? ???????????????
delay(20); ? ?????????????? ?? ?????? ????????? ????????
? ??????.
??????? ????? ???????, ??????? ?? ?????????? ???, ????????? ?????????????. ?????????, ???
myServo. ????? ??????????? ??? ?????????? ????- ???????????. ??? ???????????? ?????? ????-
??? ???????????? ??? ???????? ???????? ??????- ?????? ???? ?????????????. ???? ??? ????????
??? ?????????????, ? ??????
—
136 ?????? 6
???????? ???? ? ??????????? ?????
???????? ??????? ?????????? ????. ? ?????? ???????????? ?????? ??? ???? (???. 6.16) ? ????-
??????????? ?????, ????????? ??????? ?????- ?????? ??? ?? ??????. ????????, ??? ??? ????????-
?????? ?????????????, ??????? ? ???? ??????? ??? ??? ???????? ???????, ??????? ?????? ? ???-
??????????? ??????????????, ??????? ? ???? ?? ????????, ???????? ??? ???????? ?? ??????:
??????? ??????????? ???????. ???? ???? ??????- https://www.nostarch.com/arduinoinventor/.
???
—
????????? ??? ??? ????? ????? ? ????? ?????, ?? ????? ???????? ???????.
??? ??? ?????? ? ???.
????????? ????—-S ?
?????
???
???
?????????????? ?????????
(??? ???????)
?????????
??? ????????
???. 6.1 ?. ??????? ??????? (??????? ????? ? ?????????? ?????) ??? ???? ? ??????????? ????? (? ??????????? ????)
???? ?? ??????? ???????? ?? ?????????? ????- ? ?????????? ? ??? ?????? ?????????? ????? ????-
?? —
??? ????? ????? ??????? ?????, ? ???????? ??? ??????? (???. 6.18).
??????. ??? ??????, ?????????? ??????? ???????-
????? ??? ????????? ????????. ? ?????????, ??-
138 ?????? ?
???????? ???? ? ??????????? ?????
???. 6.19. ?????????????? ????????? ??? ????: ?????? ?????? {?????) ? ??????? ?? ??????? {??????)
???. 6.20. ??????????? ????????? ??? ????? ?? ?????? ????? ???. 6.21. ???????????? ? ????? ????????? ??? ????
???. 6.22. ????????? ??????? ?? ????????, ????? ??????? ??????? ??? ??????
? ??????????? ????????????
?? ????????? ????? ?? ??????? ????????? ???
? ??????? ??????? ???????? ?? ?????????? ??- ??????????? ?????. ???????? ?????????? ?????-
????? ??????? ?????? ????? 85 ??. ???????? ??- ?? ?? ?????????? ?????? ????? ?? ??????? ???-
???????? ??????? ? ????????? ??? ?????, ????? ??, ??? ???????? ?? ???. 6.25, ? ??????? ?? ?????
???????? ??? ??? ??????????? ????? (???. 6.24). ????????, ????? ??? ????????? ?-????????
???. 6.23. ??????????? ?????????? ????? ???. 6.25. ?????????? ??????? ?????
???. 6.24. ??? ??????? ?? ?????????? ???????: ????? ?????- ???. 6.26. ??????? ??????? ?????? ?????? «?»
?????? ?????? ??? ?????????? ? ????? ??????
140 ???????
???????? ???? ? ??????????? ?????
???. 6.29.
????????? ??????
??????? ????? ???????? ????????? ???????
????. ??????? ?????? ?????? ??? ??????? ????-
??. ??? ????? ??????? ??????????????? ???????-
??? ???????, ??????? ?? ???????, ???????? ???,
?? ??????? ??????????? ???????????? (???. 6.33
? 6.34). ????? ??????? ? ??? ????????? ????? ???
??? ?????? ?????????, ????? ???????????? ????.
???. 6.32. ??????? ??????? ???? ?? ?? ???????? ??????, ??????? ??? ??? ?? ???
142 ?????? 6
???????? ???? ? ??????????? ?????
???. 6.33. ??? ?????????? ??????? ????????? ???????? ?? ???. 6.34. ??????? ??????? ???????, ??????? ?????? ?? ???-
???? ?? ??? ???? ???????? ?????????
???. 6.35. ????????? ???? ? ??????? ????????????: ???????? ????? ???? {?????) ?????? ? ????????? ????????? ? ??????? {??????)
?? ????????? ? ?????? ??????? ??????, ??????? ??? ?37. ????????? ?????? ????? ???? ? ????????? ???? ??
?? ???? ????????? ???????? (???. 6.39). ??????????? ?????
? ?????????? ?????????? ???????????? ?????- ??????? ???????. ???? ???-?? ?? ???, ?????????,
?? ? ????? ?? ???????? ????? (???. 6.40). ??? ??? ???????????? ??????? ??????? ? ???
??? ???-
????????? ?????? ????? ? ???????? ?????????. ?? ??????????? ??? ??????? ????? ???????-
?????????? ??? ?????????????, ????? ?????- ??????? ?????????, ??????????????? ? ??????
????, ??? ??? ????????? ???????? ???????? ????? ??????? ????. ?? ?????????? ???????
144 ???????
???????? ???? ? ??????????? ?????
???. 6.38. ????????? ??????????? ????? ? ?????? ???. 6.39. ?????? ??????????? ????? ? ?????
(??. ???. 6.1 ?) ??? ???????? ???????? «??? ????- ??????? ??? ????????? ????? ? ????????? ????
???». ?????? ????? ????????? ?????? ???? ????? ???????? ? ???????. ?????? ? ??? ???? ? ??? ??-
5x9,5 ??. ???????? ??? ? ??????, ????? ?????????? ??????, ????? ??? ?? ????? ?????? ???-???? ??-
??? ?????????????? ?????????. ??? ????????. ??????? ??? ?? ??????? ?????????
????? ???? ? ???????, ?? ??? ??? ?????? ? ??????
??? ?????? ??? ?????? ????????? ?????! ????- ???????? ?? ???????????? ????-?????? ?? ?????
???? ? ??????? ?? ????? ????? ??? ??????????? ?????? ? ????????, ??? ?? ??? ????? ? ???? ????.
???? ??????...
? ???? ??????? ?? ????????? ?
??? ??????????- ????? ????? ? ??? ?????? ??????, ? ???????
??? ? ????????? Arduino. ??? ??? ??????? ?????- ????? ????? ????? ???? ?????????. ????? ???-
?? ?????? ???? ??? ????????? ??????? ?? ?????- ???, ? ?????? ???????????? ?????? ??????????-
?????????????? ? ??????????????. ?? ????? ?????, ? ????? ? ?????? ????????? —
?????? ?????.
?? ? ????????????
—
? ?????????????.
??????????? ????? ????????????? ??????????
???????????? ?????? ? ?????? ?????? 12 ????? Arduino. ?????? ?????-
??????? ??????? ??????? ?? ???. 6.43.
? ???? ?????? ????? ???????? ????? «??????-
??????? ????????, ??? ????????????? ????? ???? P6_AutoBalanceBeam.ino ? ????????? ??? ? Arduino.
????????? ????????? ????? ?? ????????????
146 ?????? 6
???? ??????..
???. 6.42. ????????? ????? ???????? ??????? ??????????? ????? ? ??????????? ? ??? ?????????????? ?????? ??????
???. 6.43. ?????? ???????? ??????? ??????????? ?????, ?????????? ????????????? ? ????? «??????????»
? ??????? ???????? ???????? ??????? ????????? ???? ???????? ?? ????? ????????? ????????
?????? ????? ?????????? ?????????? ??? ??????- ??????? —
????? ??????, ????????? ???????????? ??? ???- ??????????? ??????????? ?????? ???????? ?,
???. ?? ??? ???????????? ???????? ??????????? ??? ?? ????????? ???? ????????????? ??????,
? ??????? ????? ????????? ???? ??????????. ??????????? ???? ? ?????????? ??????????
????? ? ???? ????????, ?????? ??????? ???????- ??? ????????????? ? ?????????? ????????.
150 ?????? 7
??????????? ??????????, ??????????? ? ?????????
•
NPN-?????????? 2N2222 ??? ??337 (???-
13689), 1 ??.;
•
??????????????? (R0B-11696), 1 ??.;
•
??????????? ?????????????? (ROB-09065),
1 ??.;
•
??????????? ????????? ?? ????????? ??
152 ?????? 7
????? ??????????
????? ??????????
??? ??-
??? ??????????? ??? ? ????????? ??????? ?? ??????, ? ????? ??????? ?????????? ??????????
???????? ????????? ? ???? ???????, ? ??? ????? ??????????, ???????? ?????????? ????????????-
?????????? ??????? —
?????????, ?? ???????????-
????? ?? ???????????? ?? ??????? 6, ???????- ?? ????????????? ???.
?????? ???? ? ????????? 3-6 ?, ??? ??? ?? ??????- ???? ?????, ??????????? ???????? ??? Arduino.
?? ???????? ??? ???????? ? Arduino. ??? ?????? ???????????????? ????????? ??? ??-
???????? ?????????? ???? ???????? ?????????. ??????? ??????, ??????? ??????? ??? ????????-
????????, ??????????????? Arduino ? ???- ???? ?????? ??? ? ?????? Arduino ??? ??????????
????????????? ??????? ?? ????????? ??????- ????????????, ??????? ? ????? ????????????? ???
???, ???????????? ??????????, ????? ????????? ??????). ?? ???. 7.6 ???????? ??????????????
??????? ??????? ?? ??????????? ?????, ?????? ????? ???? ???? ??????, ? ?? ???. 7.7 ?????????
—
^? ??????
???????????
???36
ARDUINO
1??????0|
???????????????
«?????»
? ???????????
NPN-??????????
???????? 330 ??
(?????????,
?????????,
???????) ?1
?????????? ^
«?????»
154 ?????? 7
???????? ??????? ?????????? ????????????
?? ?????? ??????
??????????, ??????????????? ?? 0,75 ? ??? 25 °?.
??? ?????????? ?????????? ??????????? ??
??? ????? ???????????? ? ???? ???????. ???????, ??????? ?????? ??????? ?????? ??? ?????? ??
?????? ??? ??????????? ??? ? ?????, ????????? ???? ???????, ? ??????????? ????? ?????? ???-
? ???, ??? ??? ?????? ???????????, ? ?? ??????- ??????? ??????????. ????? ???????????? ?????-
????. ??? ????? ????????? ??????? ?????????? ?????? ?????, ?? ?????? ??????? ?? ?????? ??-
??? ?? ????? ??????????, ???????? ???, ???? ??- ?????, ? ?????????? ????? ?????????? ? ??????
?????????, ??????? ???????, ????? ???????? ??????????? ?????? Arduino. ?? ??????? ???????
??????????? ????????? ?????. ???? ?? ????? ????? ?????????? ?????????, ????????? ??????
??????? ?????????? ????? ?????? ??????????.
?????????
?????. ? ????? ????????? ????? ????? ??????-
?????? ? ?????????????? ??????? (+5 ?), ? ???-
??? —
156 ?????? 7
???????? ??????? ?????????? ????????????
???????? ?????, ??????? ? ??????? ??????? ????? ????????????? ??????? ?? ??????? ? ??????? ??
Arduino ?????????? ???? ??????? ????? ?????? ??????????. ????? ?? ???????????? ??? ??? ???-
???? ???????. ????? ???????? ??????????? ???36 ?? ????? ????????????????, ?? ??????? ?????-
? ?????? ? ?????? ????? ???????? ????? ???, ???- ??? ???????????????? ??????? ??? ?????????-
?? ??????? ???? ??????? ??????? ??? ????????? ????? ???????????? ???????? analogReadQ ?????
?????. ????? ? ??????????????? ??????????.
???????
—
????????????!
??????? ???????????. ? ?????????, ??? ??????? ??????? ??? ???????? 3, ?? ??????, ??? ?????-
??????????, ??? ???????? ?????????? ??????- ???? ???????????????? ???????, ????? ?????????
???? ?? ???????? 0,010 ? ?? ?????? 1 °? ??????- ????? ???? ?????? ? ?? ???????????? ???????
??? ???????????, ? ??? ??? ??????????? 25 °? ??- loop(). ? ??? ???????? ??? ???????????????? ????-
?????? ?????????? ??????? ?????????? 0,750 ?. ??? ?????? ????????? ??? ?????? void, ?????????
???? ?????????? ??????????, ????? ??????????? ??? ?? ?????????? ??????? ????????. ?? ? ?????
???????? ?????????? ??????? ??? ????? ?????- ??????
—
?????? ? ????????? ??????????? ? ???????? ?? ?? ?????, ????? ??? ?????????? ???????? ?????,
???????. ?????????? ?? ?????????????? ??????????????
????????????? ??????????, ??????? ??? ?????
???????? ?? ??????? 5, ??? ??????? analogRead() ??????? ??? ??? ???? ??? ???????????? ??????.
?????????? ????? ????? 1023 ??? ???????????? ??? ??? ?????? ??? ??????? voltsQ ??? ??????
?????????? ????????? 5 ? ? ????? ????? 0 ??? float ?, ????????? ?? ?????, ????? ?????????-
?????????? 0 ?. ??? ????? ????? ??? ????? ??- ??? ???????? ???????? ?????????? ?????????
??? ????????????? ???????????? ???????? ???- ??? ????? ?????? ?????????? ??????? —
???
?? ? ??????????, ????? ????????????? ???????- ????????? ??????? ????????. ??????? ???????
??? ?????????? ? ??????? ?? ??????? ?, ???????, volts ?, ????? ??? ???? ? ????????????, ?, ? ??
?? ????? ?????, ????????. ????? ????????? ??- voltsQ ? ???????????? ? ?????, ?? ??????? ???
?????? ©, ??????? ????? ???????????? ???????. ??????????? ????? ???? ???????. ???? ????? ??-
? ????? ???????
—
????????????? ??????????, ???????????? ????- ???? ??????????, ??? ?????, ??????? ??????????
???? analogRead(). ??? ???????? ??? ??????????? ?????????? ? ???-
analogRead() ?????????? ????????????? ???????? ????????, ??? ??????????? ?? ????? ?????? void.
1023 ??? ???????? ?????????? 5 ? ? ???????? 0 ? ????? ?? ??????? ?? ??????????? return ???-
??? ?????????? 0 ?. ??? ????????, ??? ??????????- ???? ?????????? calculatedVolts ©. ????? ???????,
??? ????????????? ?????????? 1023 ????? ????? ??? ??????????? ?????????? ??????????? ????-
????????, ???????????? ???????? analogReadQ, ??????? ????????, ??? ?????????? return ????? ??-
???? ??????????, ??????? ????? 5,0 ?. ????????? ??????. ?????? ?????? ????????????? ???????-
??? ???????? ?? ????? ?????????? ????? ? ????, ??? return ??????? ? ???????? 7.2.
??? ????? ???? ?? ??????????, ? ?????????, ?? ???
??????????
void blink()
?? ???????????? ???????? ????? ????????
{
??????????? ????????? ??????????
digitalWrite(13, HIGH);
???????.
delay(500);
digitalWrite(13, LOW);
????? ?????????? ?????????? ??? ?????-
??? ??????????? ??????????????, ?????? ?? delay(500);
calculatedVolts ?. ???????? ????????, ??? ??? ???? return;
?????????? ????? ?????? ??? ?????? float. ??? ??-
?????? ? ???, ????? ?????????? ????? ??????????-
?? ????????? AREF (5,0 ?) ? 1023 ©. ???? ??????? volts() ? ??????????? ??????. ???
????? ???????? ??? ?? ???????? 7.1 ?????????
??????? return © ? ?????????? ???????? ?? ??- setup() ? loop() ? ????? ??? ?????????? ??????????
????????????. ????? ?? ? ???, ??? ????? ???????- ?? ?????? ?? ? ?????? ?????????? ?????? ? ????
??? ?????? ??????? ?? ?????????? return, ?????- ???????? ?????. ?????? ??? ?????? ????????????
????? ??????????? ?????? ??????? ?? ??????? ?????????? ? ???????? 7.3.
158 ?????? 7
???????? ??????? ?????????? ????????????
void ???????!
setup()
{
??? ????????????? ??????? delay() ? ??????? loop()
Serial.begin(9600); //?????????????? Arduino ????????? ????????? ??????? ????????
//???????????????? ?????
80-90 ? ??????
???
???????, ????????? ??????????
Serial.print("raw"); ?? ?????????. ??? ????????? ????? ????????????
Serial.print(T); //?????? ????????? ?????? ????????? ?????? ?????? ????????? ?????
Serlal.print(-voltsM); ?????-???? ???????? ???????. ????? ?????????
Serial.println(); //?????? ????? ?????? ???????? ?????? ?????? ?? ?????, ?????? ??????-
?? ?????????? delay(IOOO); ? ????? ???? ? ???????
1???(), ????? ?? ????? ????????? ?????????? Serial.
println();. ??? ???????? ????? ?????? ?? ?????? ????
void loop() ???
? ???????, ??? ??????? ??????????. ????????-
{ ??? ????? ????????? ? ??? ?????.
rawSensorValue =
analogRead(AO); //?????????
//????????? ??????? ? ???? ??? ????? ??????? ??? ???? ???, ?????
rawVolts =
volts(rawSensorValue); //??????????????? ?????????? ???????????, ? ?? ??????.
//?????????? ?????????????
//???????? ?????????? ? ??????
Serial.print(T);
Serial.print(rawVolts); //??????? ?? ?????
//??????????????? ???????? ? ???????
•,
float volts(int rawCount)
float AREF =
5.0;
float calculatedVolts;
*
calculatedVolts = rawCount AREF/1023;
return calculatedVolts;
???. 7.10. ????? ?????????????? ????????????? ??????????
? ???????????????? ???????? ? ??????? ? ???? ???????? ?????
??????????????? ?????? ? ??????? ???? ???????? ??? mv\b, ???????? ?????? ????-
????? ????? ??????????? ? ????????? ????:
?????? ??? ????????? ??????? ??? ???????????-
??? ????? ? ???????. ?? ?????, ??? ???????? ??-
100°? ????.
???????? ???????????? ???36 ?????????? ???- ??????????? = ? ?????????? -50 ?
?? ??????????????? ?????????? ???????????.
??????? ??? ???????? ??????? ????????? ?? ??- ????? ?????? ????? ????????? ? ?????? ?????-
???????? ????????? ?????? ? ??????? ??????- ???, ??? ???????? ?????????? ???????? ???????
???????: ??? ?????????? ?????????? ????????. ??? ???-
???????? ?????????? ???????? ????? ??????? //????????? ???????????? ???36 ?? ?????? ??,
?????????, ?? ???? ??? ???????? ?? ??????? ? ? ? //????????? ?? ???? ??????????? ? ???????
???????????????? ???????????, ??????? ???- //????????????? ????????????? ?????????? ? ???
? void setupQ
??????? ???????? —
160 ?????? 7
???????? ??????? ?????????? ????????????
50; //???????????????
????? ??????.
//?????? ? °?
*
? tempF = 1.8 tempC + 32; //??????????????? °? ? °F
????????? ???????????????? ??? ? Arduino ? ??-
© Serial.print("\t");
??? ????? ??????, ? ?????????? ? ?????? ? ??-
Serial.print(tempC); ??????????? ????????????? ????????? ?????-
Serial.print("\f); ????? ???????????? (raw) ? ??????????????? ??
??????
??????? ????? ????? ???????.
-????????? ??? ?????????-
??? ???????? ? ???????? ???? ???????? ?? ???- ??????????? ??????????? ???????????? ?????
????? ???????????? ????????? ???, ??????? ?????????????? ????????? ??????. ???????, ???-
???????? ?????????? (?????? ??? ?????). ???. 7.12. ?? ???? ??????????? ???????????? ??-
? ???? ??????-
???????? ??????? («?????»).
162 ?????? 7
????????????? ??? ??? ?????????? ?????????????
????????? ??????????
Servo, ???????? ?? ????? ????????? ???myServo
//????????? ???????????? ???36 ?? ?????? ??, ?. ????? ??????? ??? ?????????? ©, ?????????-
//????????? ?? ???? ??????????? ? ???????
??? ??????????? ????? ??? ??????? ??????????.
//????????????? ????????????? ?????????? ? ???
???????????????? ?????????????????????, ???
//??????????????? ???????? ??????????
? ????.
??????? ??????? ????????? ?????????
//? ??????????? ? ???? ???????? ?????.
?????-
void ??? ??? ?????????????? ?????????, ? ?? ????,
loopQ
{ ??? ? ??????? ?. ???? ?????? ???????????? ??-
-????????? ??? ?????????- ???, ?? ?????? «??????? ?????? ?????????????
Serial.println(); //?????? ????? ?????? ? ????????????».
????????? ???????????????? ??? ?? ???????? 7.5 ? ?????????? ???? ??? ? ??????? 180 ????????,
? Arduino ? ???????? ???? ???????? ????? (Serial ?????? ????? ??????? ??????. ??? ?????? ?????-
Monitor). ????????? ?????? ?????, ?????? ???? ?????? ????????? ???? 83 °F (???????? returnPoint),
??????????? ???????? ??? ??????? ??? ??????- ???????????? ?????? ?????????? ????? ? ???-
?? ? ??????? ?? ????, ????? ???????? ??? ???? ??????? ??? ? ???????? ??????? 0 ????????.
85 °F. ?????????? ??? ???? ?? ???????? ?????, ???? ??? ???????? ??????? ???????, ????? ???-
??? ??????????? ???????????. ??? ?????? ??? ??- ??????? ? ?????? ??? ????????? ????????????
??????? 85 °F, ???????????? ?????? ?????????? ??????? —
????????????.
164 ?????? 7
???????? ????? ??? ?????????? ????????????????? ???????????
???????? ?????
??? ?????????? ????????????????? ???????????
?????????? ??? ????????????? ???????? ?????? ??????????? ?????????? ? ????? ??????? ???-
??????????? ? ???????? ????????? ???????- ???? ?????????, ? ????? ?? ????? ??????????-
?????????? ??????????? ???? —
???, ???????? ?????? ??????? ????????????? ???, ??? ?????? ?? ??? ???? ??????? ???????? ????-
????????, ??? ????????? ?? ????????? ?????? ??- ?? ??? ?? «????????» ??????????, ? ?????????? ????
???????????. ?????????, ??? ??? ???????????? ????????? ???. ???, ?? ????, ??????????? ???????-
????? ?????????????? ?????? ? ???????? 180 ???- ??? ???? ??????? ?????????? ???????????.
???????? ??????? ????????? 3-6 ? ? ??? ????- ??????? (+5 ?) ???????? ?????, ? ?????? —
? ??-
?? ?? ?????????? ????? 200-300 ?? ????. ?????? ???? ?????????? ???????????. ????? ??????????
?????? ????? Arduino ????? ???????? ??? ????? «???????», ??? ????????? ????????? ???????????
?????? ??????? 40 ??. ???????, ????? ?????????? ? ??? ?????????, ??????? ???? ??????? ???????-
??? ??????? ???????????????? ??? ??????????? ????????? ? ??????? ??? ????????. ????? ?????
????, ?? ??????? ?????????????? ?????, ????- ?????? ??????????? ???????? ???????? ????-
???????? ????????????? ??????????, ??????? ????????? ??????????? ????? ???????? ????-
? ??????????? ?????? ????? ???????? ??? ???????- ????? ? ?????????. ??? ???? ?????????????? ??
?????????? ????? ??? ??????: ????????? (?), ???? ?? ????? ???????????? ????? ??? ?? ???????
(?) ? ??????? (?). ???, ???????? ? ????, ?????- Arduino ??? ?????????? ????????????, ??????-
?????? ?? ??????????. ???? ??????????? ????? ???? ??? ??????? ??????? ????.
??????????? ???????? ? ??? ?????? ???? ????? ??? ????? (???. 7.14).
??????? ?? ?????????? ? ????????. ???????????
???????????? ???, ??? ????????? ??? ?? ???? ??- ??????? ????????? ?????????? ? ????? ??????
?????? ?????????? ???????? ???? ?? ?????????? ??????????? ???????????. ??? ????? ??????
? ????????. ?? ?????? ??????? ???????? ???? ?? ?? ???. 7.15, ?????????? ???????? ??????? ???-
???? ????? ????? ??????????, ???????, ??????? ???? ???????????. ???????? ??????? ? ???, ???
???????? ??? ? ?????? ??????? ????? ???????? ???- ??? ???????? ? ?????? ? ??????????????? ????
?? ???, ????? ??? ??????? ????? ????? ????????- ?? ?????? ??????? ????? —
????? ?????????? ? ??
???, ??????? —
?????, ? ?????? —
166 ?????? 7
???????? ????? ??? ?????????? ????????????????? ???????????
? ?????????? ???????) _
????????? «?????»
???????????, ??????? ??? ?????
???. 7.16. ?????????????? ????? ???????????
?????????? ? ?????, ???????? ????, ??????? ??????????-
?????? ? ??????????? ??? ?????????? ??
? ?????? ???????? ?????????? ?????? ???????-
?? ???? ????. ??????????? ????? ????? ????????
??? ????? ?????????????. ???? ? ???, ??? ???- ?????, ????? ???????????? ???????? ????? ???
??? ???????????????? ????????? ??????????? ??????????? ? ??????? ?????????????? ????-
???????, ? ??? ?????????? ???? ????? ??? ?????- ??? ????????????????, ??? ???????? ?? ???. 7.16.
?? ??? ????? ???? ??? ??????????????, ??????? ?????? ????? ????? ???????????? ?? ???????,
???????????? ?? ?????????? ??????? ?????? ??????????????, ?????? ??????? ????????????-
?????????, ????????? ??? ??? ?????????. ??????? ???? —
???? ????????? ???? ???? ??????? ??? ????? ??- ????? ???? ??? ?????????? ?????????????????.
???????? ???? ???????????, ??????? ??? ????
??? ?????????
????????????? ??? ??? ??????????
????? ??????, ????? ??? ?????
? ??????? setupQ.
????????????????? ??????????? ??? ??????? ????????????? ????? 11, ? ??????-
??? ??? ?????????? ????????????????? ?? ?????- ?? ?????????? ???? ??????????? ??????????
??? ?????? ????????, ?????? ????? ???? ??????? ?????????????????, ?? ?????? ? ?????? ????-
???? ??? ????????? ? ?????????? ??????????. ?? OUTPUT ?. ????????? ??? ??????? ???????-
???????? ? ???? ????? ???, ?????????? ?????? ?? ? ???? if...else if. ??? ??????? ?? ????????? ©
??????? ? ???????? 7.6. ? ?????????? © ????????????????. ?? ?????????,
??? ???????????????? ????? ????????? ? ????????
-????????? ??? ?????????— ???, ??, ? ???????, ??? ???? ???????? ???? ????
Serial.println(); //?????? ????? ?????? ??????? ???????.
if(tempF > setPoint)
{
myServo.write(180); ????????? ??????? ????????????????
digitalWnte(11, HIGH); //???????? ??????????
} ??? ????????? ???????????????? ??????????
else
??????? ?? ????? Arduino ????? ?????? ?? ??????-
if(tempF < returnPoint)
???????? 4,1-4,5 ? ?????????? ????????????? ??-
{
???????????? ???????? ?? ???????, ???????????
myServo.write(O);
digitalWrite(11,LOW); //????????? ?????????? ?????????????????. ??? ???? ????? ???????????
} ????????? ??????: ?? ???? ???? ??? ??????????-
delay(1000); ?????? ???????? ???????, ????????? ?????????-
?? ???????? ????????????, ? ????????????????
????? ??????????? ? ?????????? ?????????
168 ?????? 7
???????? ?????? ????????
?? 1023 ? ????? ???????????? ??? 4,1 ?. ??? ??????- ?????? Arduino ????? ????????? ????????????-
???????? ????????? ???????????? ????????????? ???? ?? 1 ?? ?? ?????????? ?????????? ? ???????
??????????? ?? ??????????? Arduino ????????? ???????????. ??? ????????? ??????? ???????-
?????? ?????????. ??? ?? ???????????????? ?? ??????? analogRead(),
?? ?????? ?????????? ??????? ???????? ??????
????? ????????? ???? ??????????, ??????? ??? ????.
?????? ???? ? ????? ?????? ????? loop(), ?????
?? ????? ?????? ???????? ??????. ???? ??? ???? ????????? ???????????????? ????? ???????
???????? Arduino ????????? ???????????????? ????? ? Arduino ? ????? ???????? ???????????.
????? ???, ??? ????????? ????????? ??????? ???- ?????? ??????? ?????? ???????? ??????? ???-
//???????????
delay(1); //??????????? ????? ? 1 ??
??????? ????? ?????????? ???????? ????????- ???????? ???? ?????????? ??????? ?????? ? ????
?? ?????????????? 11,5x11,5 ?? ? ????????? ? ???????????? ???????? (??? ??????) ?????? ?
15 ?? ? ????? ??????? ?????. ? ?????? ???????? ???????? ?? ????? ???? ? ??????, ?????????? ???-
??? ?????, ????????? ?? ?????? https://www. ????? ?????. ? ??????? ????? ??????? ???????
nostarch.com/arduinoinventor, ???????????? ??- ????? ???????? ??? ??? ???????, ??? ???????? ??
???? ??? ??????? ???????? (???. 7.18), ??????? ???. 7.19. ???????? ????? ?? ??????? ??? ??????
?????? ??????? ?? ???????, ?? ?? ?????? ??????- ?????? ???????? ?? ??????????? ?????????? ???-
???? ???????????? ????????? ???????? ??????, ? ????????, ??? ??????????? ?????? ??????????
??????? ????? ????? ?????????????? ??? ??- ????? ???????? 11x11 ?? ? ??? ?????????? ???-
??????????? ? ???? ????????. ?????????? ???????? 11x6,5 ??. ??? ????? ????-
????? ???????? ??? ??? ?????. ? ??? ?????? ????- ?? ??????, ????? ????????? ?? ????????????.
???????
???????
???????
???????
?????
???. 7.18. ?????? ??? ??????? ?????????? ???????? (? ??????????? ????)
170 ?????? 7
???????? ?????? ????????
?????? ????????????
??? ?????????? ?????
???
????????????? ????
??? ? ? ??????? 6, ??? ??????????? ????, ???-
????????????? ?????
???. 7.22. ????????? ??????? ?? ??? ? ??????? 180 ????????
????? ???????????? ????? ????????????? ????
???. 7.24. ????????????? ???? ?? ???????????? ??????? ???. 7.25. ????? ????????
172 ?????? 7
???????? ?????? ????????
???. 7.26. ??????????? ???? ??????? ?????, ???????? ???- ???. 7.27. ???????? ???????????? ????, ??????? ???????-
??? ?????????, ????? ??? ????? ??????????? ? ??????????? ????? ? ????
???? ??-
???? ????????
????? ???????? —
???????, ????? ?? ?????? ???? ????????? ? ??- ????????? ????????? ??? ???????? ???????? ??-
??????? ????. ???????? ????????? ??? ???? ????? ???????????????? (???. 7.30).
?????? —
???. 7.30. ????????? ?????????? ??? ???????????????? ???. 7.32. ????? ??????? ???????????
???. 7.31. ????????? ????????? ??? ???????????????? ???. 7.33. ??????? ???? ?? ??? ????????????????
? ????????????? ? ???? ?????????????????
174 ?????? 7
???????? ?????? ????????
?????????? ???????????
????, ?????? ???????? ?? ???????, ??????? ???-
?? ?????????? ???????????. ????????? ??????
??????????? ?? ???????? ?????, ???????? ???
??????????? ????????? ?? ???????? ????????
?? ????? ????? ? ????????? ?? ?????? ? ??????-
?? ????????? ??????? ?? ?????? ????????????
???. 7.34. ??????? ??????????
(???. 7.35). ??? ?? ?????? ???????, ?? ????????-
??? ???????????
?????? ? ???????
—
?????????? ?
?????? —
??????? ???????, ??????????? ?????? ???? ???. 7.36. ??????????? ??????????? ???????????????
?????? (???. 7.37). ? ???????? ? ?????????
???? ??????...
? ????????? ? ??? ??????? ?????????? ????????, ????????, ???????? ??????????? ???????? ???
?????????? ??????? ? ?????????? ???? ???????- ?????? ???????????? ???? ????????, ? ????????-
???? ? ???????? ? ??? ????? ? ?????????? ?????- ??????? ??? ??? ??? ????? ??????????? ?????.
?????? IKEA. ? ???? ????????? ??? ????? ????? ???????? ????. ????? ?????? ? 1 ??????? ?????
?????????, ??? ?????????? ????????????, ????? ???????? ??????? ????????. ???? ???????????
????????? ? ????????? ???? ? ???????? ???????? ? ????? ????????? ?????-???? ??????????, ????
176 ?????? 7
?????-???????????
???? ???????? ?? ???????? ???? ???-
????? ??????? «????????? ????»,
?????? ??????-????????????, ????-
???????? fd 10,
????? ???????? ?????? 10 ??????1. ???????????, ? ???? ??????? ?? ????????????? ???? ??????
????????? ???????? ?? ???? ????? ??????????- ????????? ??? ??????????? Arduino —
??????-
??? ? ??? ???????????. ??? ?????? ????????? ???????????? ??????? (???. 8.2), ???? ????????
???? ??????? ??????? ??????? ??? ??????????? ???????? ???? ??????????? ??????? ???????
???????? ????????????????. ??????? ? ??? ???????.
1
fd —
??????.
• ?? ??
??????????? ????????? ?????????
??????????? ??????????
????? ?????? (PRT-11026);
??? ?????????? ????? ??????? ??? ??????????? • ??
??????????? ????????? ???????? ??
????????? ?????????? (???. 8.3):
????? ????? ? ??????? ?? ?????? (PRT-
RedBoard (DEV-13975), 09140)*;
• ????? ???????? SparkFun
??? ????? Arduino Uno (DEV-11021), ??? ????? •
????????? ??? ??????? ???????? ???? ??
?????? ??????????? ? Arduino ?????, 1 ??.; (PRT-09835)*, 1 ??.
180 ?????? 8
??????????? ??????????, ??????????? ? ?????????
• ????? ????????;
???????????:
•
????????????? ?????? (??????????????
30x30 ??) ??? ????????? ???????;
• ????? ??????????? ???????;
???
• ?????? ??????? (??. ???. 8.12 ????? ? ????
???????).
?????-??????????? 181
??? ????? ??????????
?????????? ATmega328.
182 ?????? 8
??? ????? ??????????
?? ????????????
??????? ? ????????
? ???????? ?????????????)
???????? ?????? ???????-
?????? (A-D), ????? ????????? ????????????
?????????? ???? ????? ??????? ??????????????-
??, ???, ? ???? ???????, ?????????? ???????????
??? ????????. ????? ????????????? (?) ?????? ????????????????. ??? ????? ????? ??????? ???-
??? ?????????? ????????? ???????? ???????- ?? ??????????????????
—
?????????? ?????
????? ??? (??. ????. «???????? ?????????? ?????- ??????????? ?????????? 2,54 ??, ??? ????????
??? ??????????? ???» ? ??????? 5). ?????????? ???????? ??? ????????? ?????????? ????? ? ??-
?????-??????????? 183
??? ????? ??????????
??????? ?????
—
????????.
???????????????? ????????
184 ?????? 8
??????? ???????? ????? ?????????? ?????????
? ?????????? ?????.
?????????????? ??????? (5 ?) —
? ?????????????
???? ??????? ???????? ????? (????? ????? VM
???????? ??????? ??? ?????????????????, ? ?????
????? VCC —
??? GND ?????????? ????? ? ???? ????????????- ?????????? ?-????????? ???????? ? Arduino ? ??????????-
?? ??????? ???????? ?????. ??? ????? ?????? ?? ?????? —
? ?????????? ?????
?????????????????, ???? ??? ??? ???? ????? ?-????????? ????????, ???????????? AIN2 ?
«?????» GND, ?? ?? ?????? ????? ?? ?? ?????- AIN1, ????????????? ??? ?????????? ????????-
???????? ?? ??????. ??????? ?????? ? ?????? ???- ???? ???????? ???????????????? ?. ??? ????? ??
???? ?????????? ????? ?-????????? ???????? ??? ???????? ????????? ?????????? ????????
?????-??????????? 185
????????????? ??? ??? ?????????? ?????????
???????? ? ??????? ??????. ?????? ???? ???????- ????????? ????? ??????? ?????? ????????????
??? ???????? ? ????. 8.1. ?????????? ????? AIN2 ?????? STBY. ???? ????? ?????? ??? ??????????
?????????? ????? ? ?????? 12 ????? Arduino, ??????? ?????????? ?-????? ? ?????? ?????-
? ????? AIN1 —
??????????
?????? ??????? ???????? ?????? ?? ??? ?????? ???????????? ??????????? ?????????? ????-
????????????. ??? ??????? ??????? ????????????????, ?? ????, ??? ???? ?????????? ???? ??
??????? ?????? ?? ??? ?????? ?????? ?????????? ???????? ???????? ?????????, ? ??????????
???? ?? ????? ????????? ?? ??????? ?? ?????? ?????????.
void loopQ
186 ?????? 8
????????????? ??? ??? ?????????? ?????????
? ??? ????????, ??? ?? ???????? ???????? ?????- ? ????????? ????? ??????????, ??????? ? ????
????? ?? ?????????? ????? ?????????? ???- ?????????? digitalWrite() ?. ??? ?????????? ??????
??????. ????????? ??????????? ? ??????? ???- ?????? ???????? ?? ??????? ?????????? ??????-
?????? ????? const. ????????? ??????? ??? ???- ?????? ???????? ????????? ?? ????????, ? ??-
???????? ???????, ??????? ?? ????? ?????????? ???????? ???? ????????? ?????? ????????? ? ???-
? ???? ?????????? ?????????,
—
?-???????? ?????????. ????????? ?????? ??- ?????, ??? ???????? ????????? ??????????? ?????
?????? ???????. ??????, ???? ??? ? ?? ????- ??? ????????? ????????? ? ???????????? ???-
????? ???????????????? ? ??????? ????? ????
?? ????????????? ???????, ????? ????????
????? ????. ?? ??? ????? ????????? ??? ??????,
?????? ??????? ?????????? ???????.
?????? ???????????????? ???????.
?????-??????????? 187
????????????? ??? ??? ?????????? ?????????
???? ? ?????,
??????? ???????????????? ????????????? ????????? ????????,
?????? ??? ??? ?????? ????. ???? ????? motorSpeed
??????? ????????????? ©, ??????????? ???? ??????????
?? ?????? ?????? ?????? ???, ????? ?? ????? ??- ????? if, ??????? ?????? ???????? ????????????-
?????? ????? ?????? ????????????????, ??? ???- ???? ?? ??????? ???????. ???? ????? ??????????-
?????? ??? ?????? ????: ???
—
??? ?????????? ??- ??? ?, ??????????? ???? ?????????? ????? else if,
?????????? ???????? ? ????
—
?????????? ???????, ?????????? ??? ????????- ???, ?? ????????????? (?? ???? ????? 0), ???????-
???, ??? ???????? ? ???????? ????????????????, ???? ???? ?????????? ????? else ©, ??????? ??????
??? ???????? ?? ????? ???? ?????? ?????????. ??????????? ?????????? ????????????????.
???? ???????? ????? ???? ????? ?????? ? ???-
?????? ?? -255 ?? 255: ?????????? ???????? ???- ?????, ? ??????? ?????????????? ??????? abs(),
?? ????? ?????????? ???????? ???????? ???????- ? ????? © ???????????? ?????????? ????????
????, ???????? ? ????? ????? ?????? ?????? ??? ?? ??? ???????? ?????? ?? ?????????? ? ?????????
???????? 8.2. ?? 0 ?? 255. ??????? abs() ????????????, ??? ????-
© analogWrite(PWMA, abs(motorSpeed));
void loop()
????? ?. {
???????? ??????? ??? setMotorA()
???????? //?????? ???????? ?? ??????? ???????
??????? ????????? ???? ????????: mo-
188 ?????? 8
?????????? ?????? ????????????????
//?????? ???????? ?????? ??????? ??????? ? ???? ???? ???????? ???????? ????????? ????-
setMotorA(-255); ??? setMotorA() ? ???????? ???????? ??? ???????
delay(IOOO); ????????? ??????????? ? ???????? ????????.
?????? ? ??? ???? ????????? ????? ?????? ???
/???????? ?????????? ?????????. ????????? ?????? ???
setMotorA(O); ???, ????????? ?????? ????????????????.
delay(IOOO);
? ???????
BIN1 ? BIN2 ?????????? ?????, ??????????????,
??? ?????????? ???????????? ????????.
?????? ??? ????? ???????? ? ??? ????? ???????- ???. 8.10. ????????? ????? ??????????? ?-????????? ????-
??? ?????????? ??? ?? ???????? 8.4 ??? ?????- ???? ? ???? ????????????????? (??????????? ??????????
void setup()
{
pinMode(AIN1, OUTPUT);
const byte AIN1 =13; pinMode(AIN2, OUTPUT);
const byte AIN2 =
12; pinMode(PWMA, OUTPUT);
const byte PWMA =
11; e pinMode(BIN1, OUTPUT);
? const byte BIN1 =
8; plnMode(BIN2, OUTPUT);
const byte BIN2 =
9; pinMode(PWMB, OUTPUT);
const byte PWMB =
10;
?????-??????????? 189
????????? ?????? ????? ?????????????????
2
analogWrite(PWMB, abs(motorSpeed));
??? ???? ?????????? ???????? ????????, ??? ???????-
??????. ? ??????? ??????? ??? ??????? ???? ?????????? ???????? ??????, ? ??????-
??????????, ?? ??????? ???????? ?? ????????? ?? —
???????? ?????.
?????? i ??????
? I <
I
???. 8.11. ??? ????? ?? ??? ??????? ????????? ??????: ??? ??????????????? ???????? ????????? ?????? ?????? ??????
????????? ?? ??????? ???????, ? ????? —
??????
190 ?????? 8
??????? ????????? ??? ????????
???-
????? ???? ????? void loopQ
??? ???. ?????? ????????? ??-
setMotorA(O);
??????, ? ??????? ?????????? ????? ????? ??
setMotorB(O);
????? ????????? ?????? ???????? ????????? ???-
??- delay(1000);
????, ?????????, ???? ??? ?????.
?? ? ????? Arduino ?? ????????? ???????????? ??, ??????? ????? ????????? ?? ??????: https://
SparkFun Inventor's Kit, ????????? ??? ???????? www.nostarch.com/arduinoinventor/.
?????? ????, ?? ??????? ????, ?????? ?? ?????-
??, ??? ? ????????? (??????? ????????? ??????- ? ??????? ??????? ????? ??? ???????? ?????-
?????
?????? ??????. ?????? ??????? ????????? ???????????????? ? ??????? ?????? ????? ????-
? ??????? ?? ????????
??????? ??????? ???????? 15x20 ?? (???. 8.12). ?????. (??????? ???????? —
?????-??????????? 191
??????? ????????? ??? ????????
'????? ?? ??????1,
\??? ???????????,1
\ ??????? /
????????????? ?????
?
?????????
??????????
???. 8.12. ?????? ????????? ????????: ??? ????? (? ??????????? ????)
?????? ????? ?????? ?????, ????????? ? ??? ???? ?? ???? ????????? ??????? ????????? ??? ???-
? ???????????? ? ?????? ???????.) ?????????? ??????? ??? ???????
—
????? ???-
?? ???. 8.10, ? ???????? ? ???. ?????? ???? ????? ??????? (???. 8.14, ??????????).
192 ???????
??????? ????????? ??? ????????
???. 8.13. ??????????? ???????????????? ? ?????????: ????????? ???? {?????) ? ?????????? ???????????? ????????? {??????)
???. 8.14. ???????? ????????? ????????? ??????????: ????????? ???? ?? ????????? ????????? {?????), ?????????? ???????-
??? {??????????) ? ???????????? ????????? ? ????????? {??????)
?????-??????????? 193
??????? ????????? ??? ????????
?????? ??? ??????????? ??????? ?? ?????????- ???????, ?????????? ????????? ? ?????? Arduino
?????? ????? ????????? ????????? ??? ?????- ? ???????? ?????? ? ????????? ???????? ??
???????. ????? ????? ?????????? ?????????? ????????? ????????, ??? ???????? ?? ???. 8.17.
????????????????. ? ?????? ???????? ??? ??- ?????????? ?? ? ????????? ? ??????? ????-
?????? ?????? —
???????, ? ?????? ??????? ??- ??? ?????, ????? ??? ?? ????????? ? ?? ???????
?????
?????????
—
??? ??
194 ???????
??????? ????????? ??? ????????
???? ???????? ? ???????????? ????????, ????? ????????????? ???????? ? ??????? ????? loop(),
????????? ???? ????? ?????????. ???? ????? ??- ?? ???? ???? ??????????? ??????????, ? ??? ???-
??????????? ????????? ?????? ???? ?????????? ?? ?????????? ?????? ????? ??????? ?????????.
???????, ????? ????? ???????????? ????????? ??? ???????? ???????? ? ??????? ????? ???????
???????? ? ???????? ??????? ????????. ????, ???????????? ????????? ????? ????????
???????? ?????????? ???
—
????? for().
????? ?????? —
? ?????? ?????
??????, ????? ?? ????????? ????????? ?????-
???? ?????? ?????? ? ?????, ????????? ????- for(© int count =
0; ? count < 4; © count++)
???? ?? ????????? ?????. ?? ?????? ??? ?????? {
???????? ?????????, ??? ????? ??????? ??? ??-
? //????? ???? ???? ????, ?????????? ???????? ?????
???? ????????.
//?????????.
????? ??????? ?????? ???????, ??? ??????????-
?????? ?????? ????????? ?????? ??????? ?????-
??, ? ????? ??????? ????? —
[???????^
[???????^ [???????^ ?????? 0???????'?????010 ?????? On°BOP°7i
?
? !????????
«HanpaBOi «???????^
???????. ???????!????????
???????!???????^ *| ???????!
?????-??????????? 195
??????? ????????? ??? ????????
??????????. ????? ??????? ???????? ??????? ® ?????? ? ??? ???? ??? ?????? ??? ????, ????? ??-
count < 4;, ??????? ????????? ??????????? ?????- ??????? ???????? ?????????? ???????. ????????
????? ?????. ? ?????? ?????? ???? ??????????? ???? loop() ? ?????? ?????? loop(), ????????-
?? ??? ???, ???? ??????????????? ??????? count < 4. ??? ? ???????? 8.8. ??? ????????? ????? ??????
?????? ????????
—
© count++ —
???????????? ??-
196 ?????? 8
??????? ????????? ??? ????????
?????? ??????????? }
?????????????????? ?? ????????? ????????. ???
?????????? ????? ????? ?????? ???????????? void setMotorA(int motorSpeed)
???? ??????? ?????????! {
if (motorSpeed > 0)
? ???????? 8.9 ?????????? ?????? ??? ??? ????-
{
????? ???????? ?????????.
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
}
else if (motorSpeed < 0)
{
const byte AIN1 =13; digitalWrite(AIN1, LOW);
const byte AIN2 =
12; digitalWrite(AIN2, HIGH);
}
constbytePWMA =
11;
else
const byte BIN1 =
8;
{
const byte BIN2 =
9;
digita!Write(AIN1, LOW);
const byte PWMB =
10; digitalWrite(AIN2, LOW);
?????-??????????? 197
??????? ????????? ??? ????????
else
analogWrite(PWMA, abs(motorSpeed)); {
} digitalWrite(BIN1, LOW);
digitalWrite(BIN2, LOW);
void setMotorB(int motorSpeed)
analogWrite(PWMB, abs(motorSpeed));
if (motorSpeed > 0)
????? ??? ????????? ???? ?????????? ???????? ???????, ??????? ??????? ? ??????????? ??? ????????? ??
????? ?? ??????????? ???? ???
???.
?????? ?? ??????????
???. 8.20. ????????-???: ????? Arduino ? ???????? ????? ????????-??? ? ?????????? ?? ?????, ?????????
?????? ?????? ??????? ??????? ?????????? ?????????? (???. 8.20).
198 ???????
???? ??????..
???? ??????.
?????? ??????-???????????? —
?????? ???????? ????? ???? ?????????? ? ??? ????????? ??? ?????????? ? ???????? ??????
????????????????, ? ??? ??? ??? ??, ?? ???? ?????- ??????????? ???????? ?????. Arduino ???????-
?? ??? ??????. ????? ?????????? ????????? ????, ?? ??????, ????????? ? ??????? ?????, ? ???-
????????????, ??? ???????? ??? ???????. ???????? ?? ???????? ?????????? speedA, speedB
? delayTime, ??????? ???????????? ? ??? ????????
?????-??????????? 199
???? ??????...
????? ??????????? ??????? ????? ???? ???? ???, ?????? ???????? ?????, ? ??????? ???????? ???
? ????? ?? ??????? ?????? ?????? ?????????? ????????? ????? ????????? ????
??????????.
?? ???????? ??????? ???????,—????????^ 10 ???
??? ?????, ???? ?????? ????? ?????,
—
?????-
100 -100 500 -100 -100 250? bk 10, ????? ???????? 10 ????? ?????? ??? ?????
???: ?????????? ??????
??????????????. ????? ?????????? P8_BonusTurtle.
???????? ????, ?????????????? ?????????????-
?????? ?????. ino. ???????? ????? ?????????? Arduino ? ???????-
?? ???? ????? ? ???? ????????? ???????. ????? ??-
?????? ?? 10 ?????,
????? ?????? ?????? ????? ????????????????? bk 10 —
????? ?? 10 ?????, rt 90 —
??????? ??-
??????? ?????? ??
??? ????? for() ? ?????????? ?????????????? ??? 90 ????????. ?????????? ?????????? ?????????
??? ????????? ???????????? ??? ??????. ?????? ???????, ???????? ?? ? ??????? ???? ??????.
?????, ??? ???????? ??????? ????????????????-
????, ????? ?????????? ?????????? ???????? ???
???????? ? ????. ? ??? ?????, ???? ????????????
??????? ?????? ???? ?????? ???????
200 ?????? 8
????????????
?????????
• ?????? Mini-B USB (CAB-1101) ??? ?????? USB, ????? ?????? (PRT-11026);
?????? ? ????????? ? ????? ??????, 1 ??.; • ?? ??
??????????? ????????? ????????
• ?????????? ???????? ????? (PRT-12002), 1 ??.; ????? ????? ? ??????? ?? ?????? (PRT-
09140)*.
204 ?????? 9
??????????? ??????????, ??????????? ? ?????????
1 ?????????? ??????????
| ??????????, ???????????? ?????????? «*», ? ????. «???? ??????...» ? ????? ????? ???- |
| ?? ?????? ? ?????? ???????????? ???????- ????????????, ??? ????????? ?????? ?? ???? |
?? ???????????? SparkFun Inventor's Kit, ?? ????? ??????????
? ???????? ????? ????- |
???????????? ? ????????? ?????????????? ??????. ??????????? ????? ???????????? j
????????? ??? ????? ???? ??????????? ????????* SparkFun ???????? ????? ????
•
?????????? ???????? ???????, ??
?????? ??????????? ? ????????? ????????,
????? Hot Wheels1 (?? ???. 9.3 ?? ????????);
??? ?????????? ????? ??????? ??? ??????????? • ????? ????????
???????????: ??????????
????????? ??????????? ? ????????? (???. 9.3): 9.3
?????? (?? ???. ?? ????????).
206 ?????? 9
????? ?????????: ???????????????????? ???????
?? ??????? ?????
11-14. ?????? ?????? (D4-D7)
????????? ??????? ?????????,
15. ??????? ????????? (+)
?????????
??? ???????
??
????????
??? ?????????
??????????
???????????.
32 ???????2 —
?- 16. ??????? ?????????
?? ?????? ? 1 ?? 1 ? ????? ???????. ? ????. 9.1 ???- ??????? 9.1. ?????????? ??????? ???
??????? ???????? ?????????? ??????? ???. ? ??- ?? 16x2 ???????
?????? ??? ?????????? ? ??????? ??????????? ??????? ? ????? ?? ????? ????????????, ??? ? ?
???????????, ??????? ??????????, ??? ??? ???- ??????? 5. ????? ???????????? ?????????????
????????? ?????????????: ??????? ?????? ???- ??????????? ??? ??? ????????, Arduino ????-
????? ? ???????? ????????????, ??????? ?????- ?????? ??????? ?????????, ?????????? ????????
???? ????????? ??????, ??? ????????? ?????????? ????? ? ????????? ????? ??????????? ??????,
??????? ???????? ???? ?? ??????. ???????????? ??????? ???????? ????? ?? ??????????. ???? ???
Arduino ?????????? ????? ?????? ? ???????, ???? ????? ???????? ??????? ?? ?????????? ???????
??????? ?? ??????? ????????????, ???????????- ?? ??????? 4 —
??????????? ???. ???? ??? ????? 16 ???????, ??????? ??????????? ??????? +5 ? ? GND ?????
??, ??? ??? ?????????? ?????, ??????????? ????- Arduino ? ?????? ?????????????? ? ??????????-
?? 12 ?? ???. ?? ???. 9.6 ???????? ?????????????? ???? ??????? ? ????? ??????? ???????? ?????.
?? ?????? 16-? ???????? ??? ?????? 16 ????? ???? ??? ?? ?????????? ???????????. ? ??????-
???????? ?????, ??????? ??? ????? ???? ????- ?? ???????????? ??? ??????????? ?? ????? ???-
??????? ?
??????????? ??????????? ????? ???- ?????? ?? ?????? ??? ?? ?? ???????, ???????
208 ?????? 9
???????? ????? ? ???
5?
????? 12 13. D6
????? 11 12.D5 q
????? 10 11.D4 U
10. D3
??
9.D2 ?
5? 8.D1 ?>
^~
7. DO
«?????»
???. 9.6. ?????????????? ????? ??????????? ??? ???. 9.7. ??????????? ??????? ??? ????? ?????????? ? ???
????? ????????? ???
????????? ????????? ???????? ??????? (? ?????? ?????????????, ??????? ????, ??? ??? ????????
??? ??????? ????????? ??? ??? ?????????). ? ??????? 6. ????????, ??? ???????????? ????-
?????????????? ???????. ??? ????????? ??????? ????????? ???????? ????????. ???? ??????????
??? ????? ?????????? ??? ? ?????????? ????- ??????? ? ?????? ?????? ????????????? ? ??-
???? ??? HD44780. ????? ?????????? ????? 16 ???????????? ? ?????????????? («?????») ????-
?????. ??? ????????? ??????? ??? ????? ???????- ?? ???????? ???????? ????, ?????????? ?? ???-
?? ???. ????????? ????? ??????????? ??????? ???????? ?????? ????????????? ????? ???????-
???????? ?? ???. 9.7. ?????? ? ????????? ?? 5 ?? 0 ? (???. 9.8).
???. 9.9. ???????????? ??? ?? ??????: ?????????? ????? 5 ???. 9.10. ????????? ????????? ????? ??????????? ???
? ???? ?????????????? ???????
210 ?????? 9
???????? ????? ? ???
???????????
Arduino.
?????? ????????? ?? ??????????
Arduino
????????? ?????? ???
??? ? ??? ?????? ?????? ? ?????
?????????????? ?????? 11-14 ???. ?????????? ?????? ??? ?????????? ?????? ???????, ?????-
??? ?????? ??? ? ??????? 10,11,12 ? 13 ????? ??? ?????? ??? ????????????? ???.
Arduino, ??? ???????? ?? ???. 9.10. ??????? ????
????, ?????????? Arduino ? ??????????. ????? ??
??????????? ?????? ???? ???????? ? ?????
?????????? ??? ????? ?????????? ????? ? ??? ???? ????? ?? ??????? ?????? ?? ????????????,
??????? ?????????? ??? ? ????? 4 ??? ?????-
?????? ??????????? ????????? ?????????: ??
?? ???.
??????? 9.2. ??????????? ??????? ???
? ??????? ? ??????? Arduino ? #include<LiquidCrystal.h>
??????????? ? LiquidCrystal lcd(8,9,10,11,12,13);
«?????» (0 ?)
5? void setup()
????? 13 Arduino {
????? 12 Arduino © lcd.begin(16,2); //????????????? ??????????
????? 11 Arduino //? ???
5? //??????
«?????» (0 ?)
??????? ??????????, ??? ?????????? ? ???? ? ???? ??????? ?? ?????????? ????????? ????-
????. ??????? ? ????? ?????????? ?????????? ??? ?????? ??? ????????? ??????? ??????, ?????-
????: lcd.begin(16,2); © —
?????-
OpenGLCD, ??????? ???????????? ??????- ?? ????? ??? ??????????? ?????? ??????. ???
????? ??????????? ?????????: ?????, ???- ???? ?????? ??????????????? ?? ?????? ???????
? ????? ??????. ?????? ?????? ??????. ??? ??????? ?????????
????????????, ??????,
?????? ? ??????? ???, ??? ???? ?? ??? ??????????
?????.
????? ? ???? ????????? ?????? ? ?????? led, ??-
???????? ????????, ??? ??? ???????? ??????? ??? ?? ????? ?????: SparkFun Arduino. ??? ??? ?????
? ???????? ?????????? ??? ?????????? ????? ??- ???? ?? ???????? ????? ? ??????? ??????? led.
????? Arduino, ??????????????? ??????? ???: clear(), ???? ????? ????????? ?? ?????? ?????? ???-
????? ????????, ??????????? ?????? ? ?????? ??- ????. ????????? ?? ???????? ????? 16 ????????,
???? ????? ??????. ????? ??????? ??????????? ?? ? ?????? ????????? ??? ?????? ?????? ???.
???????????????? ??????? Arduino ??? ?????- ??????? lcd.print() ?????? ?? Serial.print(), ?? ??
????? ????????? ???. ? ????????? ?????????? ??????? ??????????? Arduino ? ?????????? ? ??-
?????????? ??? ??????? ?????? ? ????: LiquidCrystal ?????? ???? ???????? ????? ??? ???????????
lcd(RS, Enable, d4, d5, d6, d7). ?????????? ? Arduino.
????????, ?? ????????? ????????, ?????? ?? ??- ???? loop() ????????? ?????, ????????? ?? ????
???????? ?????? ?????? ?????? ?????? ???, ? ?? ????? ?????????? ??? ?????? ??????????.
??? ??????. ?????????? ??? ??? ????? ?????- ??????? ?????? ??????????? ?? ?????? ??????
???? ????? ???????, ????????? ??? ??????, ??? ??? ? ??????? ??????? lcd.setCursor(0, 1); ® —
? ?????? ????? ??????. ???????? ?????????????- ????? ?? ???????? ????? SparkFun Arduino ? ???-
??? ???????????? ?? ???, ??? ????????????? ??? ??????. ?????????, ???????????? ??????
??????? ????? ?????? ????????????? ??????? ??- setCursor(), ????????? ??????? ??????? ? ????-
???? ?????? ???, ???????????? D4, D5, D6 ? D7. ?? (0) ? ????? ?????? (1). ??? ? ? ?????? ? ???????-
???? ??? ?????? ? ????? ?????? ???????? ???- ????? ???? ????????????????, Arduino ????????
???????, ??? Arduino ???????? ?? ??????? 16 ???. ???????, ? ??????? ?????? ?????????? Icd.printQ
? ??? ????? ??????? ???????? ??????! ?? ????? ????????? ???????? ???????? ?.
??????
????? ?????? ??????????? ???????? ?? 1000 ???-
?????????? LiquidCrystal ???????? ????? 20 ???- ????? ???????????, ????????? ? ??????? ??????
??? ??????, ?????????? ?????????? ???. ??????? ?? Arduino, ????? ??????? ????????????
212 ?????? 9
????????? ????????? ??????????
? ??????? ??????? mil isQ. ???????? ????? ????? ? ????? ??????? ??????????? ?????? ?????-
?????????????? ? ?????? ?????? ?????????????. ??? ????? ???????????? ?????????? ??????????
LiquidCrystal ??? Arduino. ?????????? ? ??????
? ???????? ?????????? ????? ?? ???????? ????- ????????? ???????? ????? ????? ? ???????-
????? ?????????? ???????????????? ?????, ????? ???? ?? ???? ?????????? ?? ??????: https://www.
???????? ???? ??? ? ?????? ?????? ???. ????? arduino.cc/en/Reference/LiquidCrystal/.
?????????? ???????? ???????? ????? ? ???????,
? ?? ? ????????. ????????? ??????? ? ????? ???- ??????, ????? ? ??? ???? ?????????? ???, ?????
? ???? ??????? ???????????? ????????? ?????- ??????????? ???? ??????? ????????? ?? ??????
?????, ? ???????? ?? ??? ????????????? ? ???- ???????? ??????????. ?????????? ???? ?? ?????-
??????? ????????: ?????? ??? ?????? ?????, ???- ?????? ??????? ?? ????? ??????? ???????? ?????
? ???? ??-
? ???????????? ??? ??????????? ??????? ????- ???????????? ??????? («?????»). ?????????? ???
??. ?? ???. 9.11 ???????? ?????????????? ????? ????? ??????? ?????? ???????? ????? ????????
??????????? ???? ???? ??????????? ? Arduino. ?????, ??????? ??????????? ??????? ?? ??????-
???????? ??????????? ????? ???????, ????? ??? ?????, ?? ?? ?????????? ????????? ? ???????
5? 5?
?
ARDUINO
?????
?????? {????? 4
???????
+U
???????????
??????
? (??????????????????? ????????) |«3????» (? ?)
«?????»
<
^—-|????? ?0| ARDUINO
I |????? 5| ARDUINO
???????? 10 ???
(??????????, ??????
? ????????? ???????) | ????????? ?????????????
?????????? ?????
? ???? ??????????-
??? ? Arduino. ???? ??????? («?????»). ????? ????, ????? ????-
?????????, ? ???????? ????????? ???????? ??-
??????? ??????
—
???. 9.12. ????????? ????????? ????? ????????????? ?????????, ?????????? ?????? ?????? ? ???????????? ??? ??????????
?????????? ????????
214 ?????? 9
????????? ??? ????????????? ?????????
?????? ??? ????? ????????? ??? ?????????? ? ?????? ???????? ??? ?????, ??????? ????? ??-
lcd.setCursor(0,1);
lcd.print("Push to start!"); // ??????? ??????
//??? ??????
? #include<LiquidCrystal.h>
#include<Servo.h>
while (digitalRead(buttonPin) ==
HIGH)
LlquldCrystal lcd(8,9,10,11,12,13);
? Servo startingGate;
lcd.clear();
© const byte buttonPin =
5;
Icd.printfGo!"); //????!
const byte servoPin =
4;
const byte finishSensori Pin =
??;
startingGate. write(180);
const int darkThreshold =
500; startTime =
mil isQ;
OintfinishSensoM;
boolean finishFlag =
false; void loop()
long startTime; {
long stopTime; ? finishSensoM =
analogRead(finishSensor1 Pin);
float raceTime; ? if &&
((finishFlag ==
false) (finishSensoM <
darkThreshold))
void setupQ {
{ finishFlag =
true;
startTime;
startingGate.attach(servoPin, 1000,2000);
startingGate.write(O); Icd.clearQ;
lcd.print("Finish Time:"); //???????? ?????
? lcd.setCursor(0,1);
lcd.begin(16,2);
© lcd.print(raceTime /1000,3);
Icd.clearQ;
Icd.printfDrag Race Timer"); // ????????????
//?????????
??????? ??????????, ??? ??? ??? ????????. ?????? ????? ????? ?????????????? ???????????? ?
? ?????? startingGate ?.
????? ????? ?????????? ?? ??? ??????? ?????-
????? ??????????? ????? ???????? ??? ????- ????? © ??? ???????????? ? ???, ??? ????????
??? ??????? Arduino, ???????????? ?? ?????- ??????? ?????. ??? ????????? ????? ???? ??????-
?? ??????, ???????????? ? ????????????? ©. ???????? ???, ??????? ????? ? ?????????? ???
????????????? ???????? ?????? ????????????- ?????? ??????. ??????? ?? ???, ????? ????? ? ???-
??? ??????? ??????? ?????? ???, ??? ???? ? ??- ??? ?????? ?? ???????? 1 ? ????????, —
???????-
????? ?? ???????? ????? Arduino, ???????? ??? ??????? ????? «???????» ? ?????? ? ??????
??? ?????????? ?????-???? ???????????, ??? ???????. ????? ??????????? ??????????? ????
????? ????? ??????? ??????????????? ????????- whileQ ?, ??????? ???????????????? ??????????
????? ?????? ? ?????????? ????????? ??? ????? ??????, ???? ?? ????? ?????? ?????? ??????. ??? ??-
??????, ? ?? ?????? ????? ?????? ?? ????? ????, ????? ?????? ?????? ??????? digitalRead(buttonPin)
??? ??????? ????????. ????????? ?????????, dark- ????????? ?????? ??????? ?????? ?? ?????? 5
Threshold, ?????? ??? ??????? ?????????? ?????? (????????? buttonPin) Arduino, ??? ?????????? ???
?????????, ??????? ??????????, ????? ????? ??- ???????????? ? ??????? ????????? ? ???????-
???????? ????????? ???????????. ? ?????? ?????? ???? ???????? ?????????? startTime.
???? ??????? ?????????? ?????? 500 ????? ??- —
????????? 0-1023, ?? ??? ????? ? ????? loop() ????? ????????? ???????? ????????-
???????? ?????-
???????? ???????? ??? ???????? ? ???????????? ???? ? ????????? ??????? ????????? ? ???????-
? ???????????? ????? ???????. ??? finishSensoM ©. ??? ??????????? ????????
?????????
????? ?????????? ????????? ??? ?????????????,
????? ? ?????? ??????????? ????????? ???????- ?????????? ? ??????????? ?????? ? ?? ?????, ??-
??? ?. ?????????? finishSensort ???????????? ??? ???????? ??? ?????????. ??????? ????, ??? ???
??????????, finishFlag, ???????? ?????????? ??- ??????? ? ????????? ????????? ????????? dark-
??????? ? ?????? ??? ???????? ???????? ??- Treshold.
??????? ??????. ???? ?????????? ?????????????
???????? ???????? false (????), ??????? ??????-
??????????
?? ?? true (??????), ????? ?????????? ??????????
???????? ?????, ???????? ????? ??????? ????- ?????????? ?????????? ?????? ??????? ? ??-
????? ???????
?????????????? ????? ?? ?????? ???????? ?????- ????? ?????????? ? ?????????? ????????
???????. ????????? ??? ?????????? ?????? ??? ???? ???????? ??????? ??? ????????????.
?????????? ??????? ?????, ????????? ???????- ?????? ? ??? ??-
????, ??????? ?????????
??? ? Arduino ?????? mil isQ. ??? ???????? ?????? ???????????? ??? ??-
216 ?????? 9
????????? ??? ????????????? ?????????
????????? ??? ????? ??????? ?????? ??? ?????? ?????????? raceTime ??????????? ? ????? ??????
??????, ????? ?????????? ?????????? ???????? float (? ????????? ???????), ????? ??? ????? ?????-
?????, ????? ?????????? ???????? if() ? ????????? ???? ????? ? ??????????? ???????. ?? ?????????
???????? © —
?????????? finishFlag ????? ???????? false (????) ? ????????? ?? ???? ???? ????? ???????, ?? ????-
???????????? ??????? ???????????? (?? ???? ???- ?????? ???????????? ???? ????? ?????????
?? ???????? ?????????? ????????????? ??????, ??? ?????????, ????????? ????? ?????? ??????
??? ????????? ???????? darkThreshold). ??????? ????????. ? ????? © ????? ??????????????? ?????
?????? && ?????????? ?????????? ???????? ? ??????????? ?????? ? ???????, ???????? ?? 1000
(??. ?????? «????????? ?????????? ?????????» ????? ??????????? ? ?????????????. ?????? ??-
?????). ????? ??????????? ??????? ?? ??????- ?????? ? ?????????? lcd.print(raceTime /1000,3); ????
????? ?????? ????????? if(), ????????? ?????? ???????? Arduino ?????????? ????? ???????????
?????????? ??????? ?????????? ???????? ? ? ????? ??????? ????? ???????, ??? ??? ??? ?????
?????????? ??????. ????? ????????????? ??????- ????? ???????????? ? ????????? ?? ???????????.
???? ????????? if() ????????? ???????
—
?????
???????? ?????????? ????????? finishFlag ??????- ?? ???????? ? ? ???? ???????? ??????? ? ?????
?? ?? true (??????) —
?????? ?????? ??????? ????- ????. ????????? ?????????, ??? ??? ??? ? ?????-
??????? ??????????? ???????. ??? ????????? ? ????? ? ???????? 9.2, ? ????? ??-
??????? ????????
???? ?? ????????? ?????? ??? ??????, ? ??? ????- ???? ?????????? ?? ??????????? ???, ??? ?? ???-
?? ????? ?? ???????? ??????, ?? ???????? ?????? ? ?? ?? ???? ????????, ?????????? ???????? ??-
Arduino ??? ???????????? ?????? ???????????? ??????? ???????? darkThreshold: ???? ??????????
? ????????? 0, ? ?? ?????? ??? ?????? ??????- ??????? ?????????????? ??? ???????????? ???-
?????? ?????????, ??? ???????? ?? ???. 9.13. ???? ???????????, ????????? ????????? ????????
????? ????????? ? ??????????? ??? ?????? ??- darkThreshold, ? ???? ????????? ??????????? ??
??????? ???????????, ????????? ???????????? ? ???????? ??????? ???????, ?????????? ??? ???-
?????????? ??????? ???, ?????? ? ???????????. ????? ?????????. ??????????????? ?????, ?????
???. 9.13. ?????????? ??? ????? ??????? ????? ???. 9.14. ??????????? ?? ??? ????????? ???????
???????? ???????? ???????? ????????? ????? ??? ?????, ??????? ????? ????????? ?? ??????
? ???????????? ?????????? ????????, ??????? https://www.nostarch.com/arduinoinventor/.
????????? ???????? ?????????? ?? ??????, ? ???- ?????? ??? ??????????? ????????? ????? ????-
218 ?????? 9
???????? ???????? ????????
?????
??? ????????????
??????? ??????
?????????
'
??? ???
???????? ?????????
????????? ??????
?????? ??????. ? ????? ?? ??????? ????? ????? ?????????? ???????????? ? ??????????????? ??-
????? ???????? ????????? ??? ????????? ?????- ??????? ??? ??? ? ??????? ?????? (??. ???. 9.15).
???????, ? ?? ?????? —
???????????? ? ????????? ????? ??? ? ??????? ?????? ???????? ? ????????? ???????? ?????????,
??????, ???????? ? ???????? ????????????, ??? ?????? ???????? ??????????? ? ???????? ???????
? ??????? ???????? ?????????, ??? ???????? ?? ? ??????? ???????, ? ???????
—
? ?????? ? ????-
???. 9.17. ??????? ?? ???????????? ?????? ?? ??? ?????? ?????? ??????? ??????. ?????????
??????????????, ??? ??? ??? ????? ????? ??????- ???????? ????????? ????????? ?????? ????,
???? ?? ? ????????? ???????, ??? ?? ??????? ???? ????????? ????????? ????? ?????? ?????????,
?????. ??? ???????? ?? ???. 9.18.
???. 9.17. ?????????? ???????????? ? ??????? ???????? ???. 9.18. ??????? (?????) ????????? ?????
?????????
220 ?????? 9
???????? ???????? ????????
???????? ?????? ??????? ???? ?? ?????? ????- ?????? ?????? ?????, ????? ?????????? ?????-
????? ????? (9.19, ?????) ? ????????? ??????? ??????? ? ???????? ?????????. ????????, ???
???????????? ????? ???????, ????? ?? ??????? ?????????? ???? ??????????, ????? ??? ???????-
?????? ????????? ?? ???? ?????, ??? ???????? ?? ????? ????????? ? ????????? 0 ????????. ??? ?
???. 9.19. ??????? ??????? ???? ?? ?????? ????????? ????? {?????) ? ??????????? ??????? ???????????? ? ?????????
??????? {??????)
???. 9.20. ??????????? ??? ? ??????? ????????? ????? {?????), ???????? ?? ?? ???????? {??????)
?????? ??????? ?????? ? ?????. ??? ????? ??????? ?????? ??? ????? ???????? ??????. ??? ??? ???-
???????? ??? ? ????????? ? ?????? ?????, ???????- ?? ???????????? ??????? ?????? ?? ??????????
???????? ?????? ? ????????????? ??????????- ????????????? ????? Hot Wheels ??? ?? ???????
??? (???. 9.21). ?????? ? ????, ??? ??? ???????? ?? ?????. ? ?????? ?????? ????? ?????????? ???-
??????? ????? ????? ????????? ?????? ??????? ?????? ?????? ? ??????? ? ????. «?????????
???????. ????????????», ? ?? ??????
—
?????? ??????-
??? ??????, ? ??????? ??????????, ??? ??????????
??????????
????????, ??? ?????? ???????? ??????
???????? PDF-?????,
? ???????, ??????
?????? —
?? ?? ???. 9.23.
222 ?????? 9
???????? ???????? ????????
??? ??????? ?????????? ??????, ??? ? ???????????, ??? ??????, ????? ?????????? ????? ????????? ??
??????????? ?????? ?? Hot Wheels ??????? ??????- ?? ? ?????????? ?????? ????????????? ? ??????
??? ?????????, ???? ???????? ???????, ??? ???- ??????? ??????, ??? ???????? ?? ???. 9.25.
???? ?????????????. ? ???????, ?????????? ??????
?????????? ??????????, ? ?????? ????????????? ???????? ?????? ???? ?????????? ??????? ????-
????? ?????? ????????? ????? ??? ?????????.) ????? ?? ???????? ???????? ?? ????? ????? ?
???. 9.24. ???????? ?????? ????????????? ??? ?????? ???. 9.25. ??????????? ???????????? ? ???????? ??????
?????
???????????? ? ???????
?????????? Arduino ? ?????????? ??? ? ????-
???????, ??? ?????? ??? ??????? ?????????, ???? ????????? ???????. ??????? ?????? ??????
?????????? ?????? ???????? ?????? (??? ?? ?????, ????? Arduino, ????? ?????? ?????????? ?????? ?
??????? ??? ?????????????) ?? ?????? ???????? ?????? ??????. ???????? ???? ??????? ???????-
????????? ????????? ?????, ????? ??? ???????? ??? ?????????? ? ????????? ??? ?? ????????? ??-
224 ?????? 9
???? ??????...
??????? ??????? ?????? ??? ??????? ?? ??????? ?????????? ?????????? ??????? ?????? ? ????-
? ???????, ????????????? ????????, ??????????- ?????????? ????????? ?????? ?????. ??? ??? ??-
???? ????????? ????? ?????? ????? ?? ???? ????? ???????? ?? ??? ????????? ???????????????????,
0,5 ???????. ??????????????????? ? ??????? ???- ??? ????????? ?????? ????????? ?? ??????????-
??? ??????????????? ??? ?????????? ????? ???- ??? ?????? ?? ????? ??????????? ?? ????????
??? ? ??????????????, ??? ?????????? ???????. ??????.
???? ??????...
? ???? ??????? ?? ??????, ??? ???????????? ??? ?????? ???????????? SparkFun. ??????? ??? ???-
??? ??????????? ?????????? ??????????????? ?? ????? ??? ?????????? ??? ? ???????? ?????-
?? ?????? Arduino. ????? ?????????? ????????? ???????, ??? ????????? ?????? ? ????????, ????-
??????????? ?? ?????????? ??????? ???????- ??????? ????? ?? ??????????? ??????? ??????-
??? ?????????? ??????. ??????, ??? ????? ??? ?? ??????????????? ??????
??????? ??? ???? ?????, ???? ?? ? ??? ????.
?????? ??????, ????? ? ?????? ????? ??????????? ?? ?? ???. 9.28. ???? ????? ??????? ???????????-
??? ?????????? (???. 9.27). ?? ???????????? ? ???? ?????????????? ????-
???, ? ?????? —
TRACK #1 SENSOR
TRACK #2 SENSOR
???. 9.28. ?????????? ??????? ????????????? ??? ????????????? ????? ???? ???????????
226 ?????? 9
???? ??????...
?? ????? ????? ????. ????? ??? ???? ????????- Arduino (??. ???. 9.6).
??? (???? P9_TwoCarDragRaceTimer.ino) ???????-
?? ? ?????? ???????? ?????, ????????? ?? ??????: ????? ????????? ?????????? ??????? ??? ???-
https://www.nostarch.com/arduinoinventor/. ???????? ???, ????? ???????????? ????????-
??? ???????????? ?????? IIC/I2C (???. 9.29),
??????? ???? ????? ? ????? ?????????? Arduino ? ??????? ???????? ????? ??????? ????? ???
??? ? ????? ????????? ????????? ? ?????????? ? Arduino ?????????????? ?? ?????????????????
? ??????? ????????? ? ??? ??????????. ??????? ????????? I2C (Inter-Integrated Circuit). ? ???? ???-
? ??? ??????????? 4 ?????? Arduino:
????? ????????? ? ?????????? ??? ????? ????????????? ??????
??? ??????? ????????????? ???????? ?????: fin- GND («?????»), VCC (??????? +5V), ?4 (SDA, Serial
ishSensor2Pin ? finishSensor2. Data —
????? ??????. ???? ?????? ?????? ??????????, ???? IIC/I2C ??? ?????????? (???. 9.30).
?????? ?? ?????? ??????, ???????? ??????????
finishSensori ????? 0, ? ???????? ?????????? finish-
Sensor2 ??? ? ????????? 1. ? ???? ????? if() ?????-
????? ? ?????????? ????????? ?? ???, ? ????-
?????? ????????? finishFlag ????????????? ?????-
?? https://github.com/fdebrabander/Arduino-
LiquidCrystal-l2C-library. ?????????? ????????-
???? ????? ????? ? ??????? ZIP (???? Arduino-
LiquidCrystal-l2C-library-master.zip).
???. 9.31. ?????????????? ????? ??????????? ?????? ??? ??????????? ?????????? ? ????? ?????-
IIC/I2C ????? Arduino IDE ?????
???????? ??????? |
?????????? ?????????? | ???????? .ZIP ??-
????????? ????????? ????? ????????? ???????- ????????. •
(???. 9.33).
??????, ????? ?????????? ?? ???. 9.12, ?????? ??-
??????? ?????? ??? (???. 9.32). ???????? ? ???????? 9.2 ??? ?????? ?? ??????,
?????????? ? ???????? 9.3 ??????? ???????-
??? ????? ?? ?????, ? ??? ???????????? ? ?????- ??? ???????. ? ???? ??????? ?? ?????????? ??-
??? ??????? Arduino, ? ??????? ?? ????? ???- ??? ?????????? ?, ???????? ?????????? ????
??????? ?????? ??????????. LiquidCrystal_l2C ? ? ??????????????? ??? ©.
???. 9.32. ????? ????????? ????????????? ? ????? ??????? ?????? ? ???, ???????????? ? ??????? ?????? IIC/I2C
228 ?????? 9
???? ??????...
void loopQ
{
-????????? ??? ?????????-
? #include<LiquidCrystalJ2C.h>
#include<Servo.h>
????????, ? ????????-
startingGate.attach(servoPin, 1000,2000); 4
?? ???????? ??????? ? ??????? ??? ? ???????-
startingGate.write(O); ??? ???????? ?? ??????? 7, ??????? ????? ?????
•
?????????????????? ?????? (???-07950),
1 ??.;
??????????? ??????????
• ?? ??
??????????? ????????? ?????????
??? ?????????? ????? ??????? ??? ???????????
????? ?????? (PRT-11026).
????????? ?????????? (???. 10.2):
232 ?????? 10
??????????? ??????????, ??????????? ? ?????????
????????;
?????? ??????????? ? ?????????
???????? ???;
??? ?????????? ????? ??????? ??? ???????????
????????????? ???????;
????????? ??????????? ? ????????? (???. 10.3):
????? ???????????: ????????;
????? ??????????
??? ??????????? ?????, ? ???? ??????? ??????- ?????????, ??? ???????? ????????????? ??????-
?????? ??? ????? ??????????. ???? ?? ??? —
???-???? ?? ??? ?????. ?????? ????? ?????- ? ????????? ?? 0 ?? 10 ??? ? ??????????? ?? ????
???? —
?????????????????? ??????
?????????????????? ?????? (???. 10.6) ????? ??
??????????
???. 10.4. ?????????? ???????????? ?????? 50 ??
???????????
????
?????
234 ?????? ?
???????? ?????
???????? ?????? ????? ?????????????? ???? ?????? ???????? ?????? ?????????. ????? ?? ????-
??? ??????????????? ???. ?????? ?????? ?????- ??? ????? «??????» ? ???????? ? ???????? ?????
?????????? ??????? ????? ?????? ???????? ???- ??? ? ???????, ?? ?????? ????? ??? ??????? ?????
???????? ????????
—
??????????
?????? ? ????????? ???????????? SparkFun
? ???????????????? ???????? ?? ????????-
?????, ? ????????? ???????????????? ??-
????????? ??????. ??????? ?? ????? ????? ???. 10.7. ???????? ??????????? ???????????????????
???????? ???? ????????? ?????? ????????. ???????
???????? ?????
????? ????? ??????? ???????? ?????? ??? ??????????? ???? ????????? ? Arduino ????????
??????????? ??????????: ?????? ? ???????- ?? ???. 10.8, ? ?? ???. 10.9 ????????? ???????????-
??? ????????????. ?????????????? ????? ???? ????????? ?????.
5?
?
(??????????, ??????
? ????????? ???????)
-=- «?????» (0 ?)
???. 10.8. ?????????????? ????? ????????? ??????????? ??????? ???????????? ???????: ??????? (?????) ? ???????????
????????????? (??????)
???????? ?????? ? ???????? ?????, ????? ????- ???? ??? ???? ????????? ???. ??? ??? ??????
????, ??? ?????????? ????? ??? ???????? ?????? ?????????? ?????? ??????, ????? ??? ?????????
??????, ??? ?????????? ????? ?????? ????? ???- ? ???????? ????? ??????? ???????, ? ????????
?????
??? ?????????? ???????? ????? ???????? ????-
(«?????»), ? ??????????? —
? ?????? ?? ???????-
?????? ?????.
???????
236 ?????? 10
????????????? ??????????? ???????
??????? ?? ???????? ????????? ???????? ???- ????????? ??????? ???????. ???? ?????? ??????-
??, ???????? ???????? ????? ? ?????????????? ?? ???????? ????? ?????? ???????, ?????????-
????, ? ????? ?????????? ??? ????? ? ???? ????- ???? ? ??????? ??????, ??? ??????? ???? ???????-
???????? ???????? ??????????? ?????????????. ??? ???????. ????, ?????????? ???????? tone(),
????? ???????, ?????????? ????????? ? ??????? ??????????????? ? ??????? ????????? ???????,
???? ?????, ?? ?????? ?????????????? ?????? ??? ?? ?????????? ?????? ??????? tone() ? ??????
?????? ??? ?? ?????????? ?????????????, ??? ????????, ??? ?? ?????? ??????? ??????(), ???????
?? ????????? ???????. ?????????? ??????????????? ?????.
?? ??? ??????, ??? Arduino ????? ????????- ???????? ????? ????? ? ????? ?????????? Arduino
???? ??????????????? ???????? ? ??????????? ? ?????????? ? ???? ??? ?? ???????? 10.1. ?? ???-
?? ???????????? ??????? ??????. ?? ??????- ?? ?????? ??????? ??????? ????? ?? ?????? ??-
???? ??? ??????????? ??? ???????? ????????? ?????? ?????, ??????? ????? ????????? ?? ????-
?????? ? ???????????? ????????? ????????????? ??: https://www.nostarch.com/arduinoinventor/.
???????. ? ???? ??????? ?? ?????? ????????? ???????
????? ? ??????? ???????? ?????, ? ?????? ???-
??? tone() ??????? ?????? ????????????? ????? Serial.print("Playing note:"); //?????????? ???
???????? ??????? ?? ????????? ?????? ? ??????? //????????????
? delay(500); //????? ??? ??????????????? ???? ??????? ???? ????? ???????????????? ? ???????
?????? ??????? ??????????, ??? ???? ????? ????- <Ctrl>+<Shift>+<M> ??? ???????? ?????????-
????. ? ????? setup() ? ??????????? ???????????? ????????? ?????? Tools | Serial Monitor). ? ????
?????? 9 Arduino ??? ?????? ?????? (??????? ???????? ????? ???????? ?? ?????????? ??????
pinMode(9, OUTPUT)), ???????????????? ????? ??- ????? ?? ??????????? ?????? ???????? ????????
?????????????? ????? Arduino ? ??????????? ? ????? (? ?????? ?????? ???? ????) ? ????????
? ????????? ???????? ????????? ? ??????????? ????? No line ending (??? ??????? ?????????
?????, ? ????? 1???() ?????????? if(Serial.available() ???? ? ???, ??? ??? ???????? ?????? ????? ???-
> 0) ? ????????? ???????? ??????, ?????????? ?????? ???????????? ?????? ???????????? ????-
?? ???????? ????? ????????? ???????: ??????? ????? ?????? ????????? ??????, ???????????
Serial.availableQ ?????????? ?????????? ??????, ??- ?? ????? ?????????. ???????? ????? ??? ?????
???????? ?? ???????? ?????, ? ???????? if() ????- ?????? ??????? ????? ?????? ??? ???????? ??-
?????? ??? ???????? ? ?????. ???? ?????????? ?????. ???? ?? ???? ?????? ?? ?????, Arduino
?????? ?????? ????, ??? ????????, ??? ???? ??- ????????? ??? ??? ? ???? ????????? ????????.
?????? ??????, ? ????? ????????? ??? ?????? ©. ????????? ????? No line ending ?????????????
??????? Serial.parselnt() ??????????????? ????- ??????? ? ????????? ?????-???? ?????? ?????-
?????????.
????????? ??????: No line ending ???????? ?? ???????? ????? ????????? ??? ?? ???.
238 ?????? 10
????????????? ??????????? ???????
????????, ????? ? ??????? ????? ??????????? ??????? 10.1. ???? ?????? ?????? ?????
294
294,262,262, 330
??? ? ??????.
????????, ?? ????????, ??? ??????????? Arduino
? ???. ?????? ?????? ???????? 1 ???? ??????, ????? ?????? ??????? ???????????. ??? ?????-
? ???? ?????????? ???????? ?????? ??? 64 ???- ?????? ???, ??? Arduino ????? ???????? ?? ??-
???? (?????? ??????), ??? ?????? ????? ????? ???, ??????????? ????????, ?????? ?????? ???
??? ?????
???? ???
240 ?????? 10
????????????? ??????????? ???????
else
?????? ?? ?????
??????????-
//????? ???????
????????, ??? ????? ????? ??????? ??????? ???
??? ????????????
?????????? ??????: Q. ??? ????????????? ???-
? int frequencies!] =
{262,294,330,349,392,440,494,524}; ???? ?????? ???????? ?????? ???????? ????????
int sensorValue; ??? ????????:
?????????, ???????????
© byte note;
????????? ??????????[] =
{?????, ????1, ????2 ????1\1);
void setup() ? ???????? 10.3 ??????????? ?????? frequencies!]
{ ???????? ???? int, ??????? ???????? ?????? ??
????????, ???????? ? ?????????? ??????? ??- ??? ??????????? ???, ??? ??? ??????????????
??? ?????????? ????????. ????????? ????????? ?? ?????? ????????? ???????? ? ?????? ???????
?????? ??????? ?????????? ? 0, ????? ???????, ???() ????????? ? ??????????, ???????, ?????
?????? ?? ?????? ??????? ????? frequencies[O], ?? ???????? ?????? ?????????? ??????????????
?????? —
??????? 10.2. ???????? ??????? frequencies!] ????? ???????????? ???????? ?????????? ???-
? ?? ?????????? ????? ?? 0 ?? 7: ????? ???????? ???? ???? ????-
?????????? ??????????? ????????? 0, ? ?????
???????? ???? 7 ?????????????? ????????????
????????? 7.
?????????????. ????? ??????? ???() ? ????????- ???????? ???? ? ???? ???????? ????? ? ? ? ??-
???????? ??? ?????????????? ?????? ????????? ????????? ?????????, ? ????? ?? ???????? ???-
???????? ? ??????. ??? ????? ?? ?????? ????????- ?????, ?????? ?????? ?????????????? ??????
?? ? ?????????? ??????? ????????, ??????? ????- ????. ?????????? ?????? ??????? ?????-???? ??-
242 ?????? 10
???????? ????-???????
???????? ????-???????
????? ??????? ?? ?????? ????????? ????? ????- ???????, ????? ???????? ?????? ???????????
?????????? ???????, ????? ?????? ??????????? ????????????? ? ????????? ??????? ??????-
?????????? ???????????? ?? ??????? ??????- ???, ? ????? ?????? ?????? ? ???????, ?????????
????? ? ?????????? ?? ??? ???????. ?????? ?????????????. ??? ???? ????? ??????? ??
???????? ?????, ????????????? ???????? ?? ??? ?? ????????? ? ????? ??????? ??????????? ????
?????? ????????? ?? ????????? ????????? ?? ?????????? ????? ??????? (???. 10.12, ?????) ???
????? ??????, ??? ???????? ?? ???. 10.11. ???? ?? ??? ????????? ????? Arduino ? ????????
????? (???. 10.12, ??????).
???. 10.12. ??????????? ?????????? ???????????? ? ????????? ????? Arduino {?????) ??? ? ??????? ??????? {??????)
244 ?????? 10
???? ??????..
???? ??????-??
? ???? ?? ?????????????
??????? ??????????? ???????????? ????? ? ???
??????? ? ??????????? ?????????????. ?????
????? ??????? ?????? ????? ??????????, ??-
?????????? ????????? ??????????? ?? ???????-
??? ??????? ??????. ?????? ? ???? ?????? ???????????? ????? —
???
?????????? ??????????
??????????? ? ???? ???????????? 16 ??? ??????
? ???? ??????-
???????????????? ? ?????
???????? ??????? ???????? ????? (???. 10.15).
??????????????????? ? ?????, ????? ??????????,
????? ?????? ?????????? ????? ????? ????????. ??? ?????????? ??????? ???????????? ????? ?
????????, ??? ??????????????? ??? ? ?????? ????? ????? ???????? ????? ???? ????????? ??-
??????????? ??? ?????? ????? ????? ????????
??? ????? ????, ??????? ????? ??????????? ????-
? ??????? ???????.
?????? ????????? ??? ?????? ??????? ??????.
??????????
? ????. 10.3 ????????? ???? ? ????????? ??-
?????, ??????
G#3 ????????????? ???? ????
?????? 3-? ??????.
???. 10.15. ?????????? ?????? ?? ????? 2 ????? Arduino ??? ???????????? ?????
octaveMulitplier, ? ?????????? ???? ??????? ???? ??- ??????? 10.4. ?????????? ?????? ???????? ?????
????????.
??????? ???? ????????? ?????? ???????? ???- ????????, ?? ??? ?????????? ? ???? ?????????-
???. ??????? ??? ?????? ???????? ?????? ???? ?? ???????? ??????????????????, ??????? ????:
246 ?????? 10
???? ??????..
??????? ???????.
????????????? ????????? ? ??????? ???????????
??????. ??? ????? ?????? ?? ??? ????????, ??? ?????? ? ????? ?? ????????, ??? ? ?????????
??????, ????????? ???????? ????????? ??????- ???????????? ?????? ??????? ?????? ????-
??? ????????????? ?????, ? ?????? ???, ???????- ?????. ????????, ???? ????????? ?????? ????-
???, ????????????? ? ?????????????. ?? ?????????? ?? ???????????? ?????? 200 ?
(200 ??), ?? ???????????? ???????? ??????????
?????? ??????? ??????????, ??? ? ???????????? ? ????. ? ???? ????????? ?????????? ?? 2, 20 ???
????????. ??? ????????? ???????????? ?? ???- 200 ??, ?? ???????????? ???????? ??????????
?? ?????????? VC830L ???????? SparkFun (TOL- ? ????????.
?) ? ????????????? (? —
??).
?? ? ???? ?????. ????? ?????? ??????? ?????-
10? ??????????? ??? ??? ????????? ?????, ?????-
???? ???????? ????? ????????? ????????????? ?????? 200 ??.
????????? ????????????? ????: ??? (??), ?????-
????? (?) ??? ????????????? (??). ?????? ??- ??????????? ????? ??? ???????????? ????????
??? ????????? ?????? ?? ????????? ??????????
??????????? ???????? ???? «?????» ?? ?????, ??-
? ??????? ????????????? ??????????.
????? ??????????? ? ?????? ???????????. ??????
????? ???????????? ???? ?????????? ????????
?????????, ?? ????? ??????? ???? ? ???????
??????????? ?????????????
???????????
????? ?????? ???? ????? ????????? ???????????? ?? ??????-
?- «^^^ ?? ??????? ????? ????????, ?????????? ?? ???. ?.2.
?? COM mAVO
?????.
250 ??????????
????????????? ????????? ? ??????? ???????????
?????????? ?????? ????? ???????? ??????????? ?????????, ?? ??????? ???? ???? ????? ??-
???. ? ?????? ??????? ???????? ?????? ???? ??- ????????? ???????? ?? ?????? ???? ?? ? ????
??????????? ??????, ? ??????? ???????? ?? ?????- ?????????. ??? ? ?????? ?????? ?????????????
???????? ???? ? ???????????????? ?????? ????- ????????, ???????? ????? ??? ??????. ????? ??-
?????? ?????????? ???????????. ? ??????? ???? ?????? ??? ?????????????, ?????? ????????????
??????? ????? ?????????, ????? ?????? ???????? ??????? ????? ? ??? ???????. ??? ??, ??? ? ???
????? ????????? ????? ?????, ? ????? ???. ??????????? ????????????? ???????????, ??
???? ??????? ??????????? ? ?????? ?????, ? ??? ????????? ?????????? ? ??????? ???????????
? ???????? ??????????? ????????. ??? ??????? ?????????? ?????????. ????????, ????? ? ???-
????? ????? ???????????? ??? ??????????? ???- ?????? ???????? ????????????? ????????? ??-
???????? ?????, ????????? ???????? ? ???????- ???? ????????, ????????????? ??????? ???????
???????? ?????? ??????????. ??? ???????? ??-
?????????? ?? ????????? ?????? ?? ?????? ?????-
??????????? ???? ?? ????? ????????, ????? ??? ??? —
????????, ?? 200 Q.
?????????? ? ?????? ????? ????, ????????? ???-
???????? ???? ??? ???? ?????????? ???? ?????? ???? ?????????? ????????????? ???? ???????-
????? ????? ????????????. ??????? ????????????? ????????, ?? ???????
??????????? ????? ???????????? ??????? [1. ]
??? ?????. ? ????? ?????? ?????? ?????????? ????-
????????? ????????????? ????????? ?? ????????? ????? ??????? ??????
???? ????? ????????? ???????????? ?? ??????-
? ????????? ???????.
????? ????????, ?????????? ?? ???. ?.?.
?????????? ???????? ????????????? ??????-??-
????????? ?????? ??? ???????? ???? ?? ?????- ?? ?????????. ? ?????????, ?????????? ????????
???????? ????????, ?? ????, ????? ????????? ??- ????????????? ????????? ????????? 330 ??
???????????. ? ?????????, ?????? ?????? ? ??? (?????????, ????????? ? ?????????? ???????).
?????? ????????????? ??????????? ???????? ????? ????????? ? ??? ?????????? ?? ?????? ????-
????. ?? ????? ?????? ???????? ?????????????, ????????? ????????? ???????? ?????????????
?????? ?????????? ??????????? ? ????? ????- ???? ?????????? ?????????? ?? ?????????? ????-
??????? ????? ?????????? ?? ???? ?? ????? ? ??? ???????. ????? ?????? ?????? ??????????
??? ???? ????? ??????????? ?????????, ??? ?? ??- ???????? ????????????? ????????? ?? ??????-
???????? ???????? ??? ?????? ??????? ?? ????- ???? ????????????? ????????? ?? ?? ? ????????
???? ???????. ?????, ? ????? ????????? ???????? ????????????
?????? ???????? ????????????? ?????????????. ??? ? ??????, ????????????? GND («?????»). ?????
??? ???? ??????? ??? ?????????????? ???? ??? ????????? ??????? ????? ?????? ????? ?? ?????
??????? ?????????? ? ??????? ????????????? ??? ???????????? ????? ????? ??????? ? ??????-
?????????. ??? ????????????? ????. ???? ???? ????????????
??? ???????? ??????????? ??????? ?? ???? ? ??-
??, ????????, ???????? ????????, ??? ????? ??- ???????? ? ??????? (?). ????? ???????? ????????
??????? ?????????? ? ???????????????? ???- ??????????? ??????? ?, ????? ???????, ????-
???? ? ??????????? (?? ??????? ????, ? ?????- ?? ?? ???????? ? ??????????? ????????. ????
??? ???????????). ? ????????? ????? ?????????? ?????????, ??? ??? ? ????? ????????? ????? ????
?????????? ???, ???????? ???????? ????? ???- 200 ??, ?????????? ????????????? ?? ????????
???? ??? ? ????????????? ???? ?????? ????. ????? 10 ? ? ????? ???????? ??????? ??? ? ??????, ???-
???????, ??? ????????? ?????????? ????????- ????????? 10 ?. ???? ?? ?? ???????, ????? ?????
???? ??? ??????: ????? ????????? ??????????? ???? ???? ???? ? ?????????? ?????, ??? ????? ??-
?????????? ? ????? ????????? ??????????? ??- ??? ?????????? ????????, ? ???????? ????????
????????. ??? ??????????? ???????? ???? ????? ??? ??????? ???? ?? ?????????? ? ?????????,
????? ?????? ?????????? ????????? ????? ???- ???? ????? ???????? ? ?????? ???? ????? ???-
????? ? ???????? 20 ?, ????????? ??? ?????????? ???????? ? ??????????, ??? ???????? ?? ???. ?.?.
? Arduino ?? ????????? 5 ?. ??? ???? ???? ???? ?????? ????????? ????? ????-
??????. ????????? ??? ???????????????? ????,
??? ???????? ?????????? ???????? ?????????? ??? ????? ???????? ? ??????? ? ????? ?????
?? ????? Arduino. ??? ????? ?????????? ????? ????: ?? ??????????, ????? ?????????? ??? ?????
252 ??????????
?????? ? ??????????
?????? ? ??????????
??????? ?????? (???. ?.8) ???????????? ????? ??? ????? ????? ????? 20-25 ??
?????, ??????????? ?????? ???????? ??? ?????- ??? ????? ? ???????????? ? ????????????? ?????
?????? ????? 180 °?, ??? ?????????????? ????? ??????????????? ???????? ? ????? (???. ?.9).
??????????? ??? ??????? ???????. ???????????
???????, ???????????? ??? ????? ??????????? ?????????? ????? ?????? ????? ? ?????? ?????-
??????????????
???????
..
?????
????
???. ?.7. ????? ???. ?.9. ???????? ????????
??????????? ??????? ????. ??????????? ??- ?????????? ?? ????????? ????? ???????, ?????
????? ??????????? ???? ????????? ?????????? ???? ?? ???????? ????? ??? ?????? ???????????,
????? 345 °?. ??? ??????? ??????? ?????????- ?? ??????? ?? ?????????.
?? ???? ????? ?????? ?????????? ? ??????????-
??, ? ??? ??????? ?????? ??????????? ?????? ?????????? ?????????? ??????? ???????? ???-
?? ?????? ?????????. ??????? ??????????? ???- ??? ????? ??????? ??????. ????????? ???, ???-
???????? ???? ?????? ??? ??? ???????? ? ????? ??????? ??????? ?????? ???????? ????, ???????
?????????? ?????? ??????. ? ??? ???????. ??? ????? ??????? ??????? ????
??? ????? ??? ????? ?????? ??? ?????. ?????? ??????????? ?????? ??????, ????? ??????????
??? ?????????? ? ?????? ? ??????????, ?????? ???. ?????? ????? ?? ??????????? ????? ???????-
???????? ?????-???? ?????? ??? ????. ??????? ??? ?????????? ? ??????? ????? 2-3 ??????, ? ??-
?????? ? ???? ????? ???????? ?????? ???????- ??? ???????? ??????? ???????? ?????, ? ??????-
????????. ???? ??? ?????? ?????? ?????????, ?????????????
???? ???? ?? ???????????. ??????
??? ?????????? ??????, ????? ????????? ????
?????? ????????? ? ????????? ????? ? ??????? ??
?????. ??? ??? ????? ??????????? ?? ?? ???? ??- ????? ??????? ????? ??????????. ???? ???????
254 ??????????
?????? ? ??????????
?????, ????????? ???????? ????? ???????????, ????? ????? ??????? ??????? ? ?????????? ??-
???????????? ???????? ??????? ?????? ? ????- ?????? ????? ????? ???????? ??? ????? ???????
??????? ?????. ???????, ??? ????????????? ???- ??? ?????????? ???????? Hershey's kiss3. ?????
??? ????????? ? ????????? ?????. ????????? ?????? ?????, ?????????? ????????,
??????? ???? ???? ????? ?? ???????? ???????
????? ?????????? ???????? ?????????? ??????, ? ?????????, ?????????? ??? ??????? ????? ??-
??????? ????????? ??????, ?? ??????????? ???? ????????, ????? ????? ???? ?????? ?????????
?? ????? ??? ???? ???????. ??? ???????? ?????? ? ?????? ?? ???????, ??? ?? ???????? ??? ?????
?????????? ?????????????? ? ?????? ? ????? ???- ??????,
??. ??????? ???????? ?? ????? ????? ? ??????????
?? ??? ?? 1 ???????? ??????? ??????????? ???-
??? ??????? ?? ?????????.
???? ?????????? ? ????????? ????????????????
?????? ????? ? ????????? ??????? ?? ??????????,
??????????? ?????????? ?????? ? ??????? ???-
?? ?????? ???? ??????? ? ??????? ?????????, ?
?? https://en.wikipedia.org/wiki/Her$heyls_Kisses.
?????????? ?????. ?????? ???????? ?????????? ?? ????? ????? ?????? ????, ?????-
?????: ?????? ???????? ? ????? ??? ?????????? ????????? ???????? ?????, ?? ??-
???????: ???????? ???????? ??? ??????????: ??? ????? ??????, ??? ? ?????????? ???-
??????? ?????? ??????????, ????? ?????????? ??????? ??? ?????????? ??????, ? ???-
???. ?.11. ?????????? ?????? ?????????? ? ???????? ???????????????? ?????? ????? ? ??????? ?? ??????????
???? ?? ???????? ????????? ??????? ?????? ??- ?? ???. ?.12 ???????? ??? ????????? ??????? ??
???? ???????? ? ??????? ???? ???????? ? ??????? ?????? ???????????? ??? ??????
(????????? ??????? ?? ??????????? ????? ??? ??????????, ??? ? ?????? ???????-
???????????: ?? ????????????
?? ?????????? ????????, ???????? ???? ?????????
?????? ?? ???? ?????????, ??????
? ?????? ??? ?????? ? ??????? ? ??????????? ?
??? ????? ????? ?? ??????????.
??????? ????? 10-15 ??????, ????? ???? ???????
???????? ????????? ? ???????????. ????? ?????-
????????? ????????????, ????????????? ??????? ??? ???????? ?????. ?????????? ????? ????????-
??????? ??? ???????? ???????????? ?????? ???- ?????? «??????? ????», ?? ??????????? ?? ???
??????? ?? ?????????? ??????. ??? ??????????? ???????????? ????? ?????? ???? ??????? ????
???, ?? ????, ????? ??? ??????- ??? ?????????? ??? ?????????. ?????? ?????
????? ?????????? ???????, ? ?? ?????? ????? ?? «??????? ????» ??????? ?? ???. ?.13.
256 ??????????
?????????????? ??????????? ??? ???????? ?????
???.
??????????????. ?????? ?? ??? ???????? ?????-
?.13. «?????? ????» ? ?????????????? ??????? ? ?????-
?? ?? ?????? ?????? ????????, ?????????? ??
????? ??? ?????????
???. ?.15.
?????? ????????
???? ? ??????????. ? ????? ?????? ?????? ?????
???????? ??????? ?? ?????????? ??????????,
???? ?? ???? ?? ???????? ????????? ????? ???- ???????? ??????? ? ??????? ??.
??????????? ????????.
???. ?.14. ?????????? ? ??????????????? ?????? ???. ?.15. ??????? ??? ???????? ??????
??????? ?????? ?? ??????? ??????????? ??? ???? ?????? ?????? ?????? ? ??????? ???? ??
??? ???????, ? ??????? ??????????? ? ??????
??????????, ????????? ???????. ?????????????
????????? ????????. ??? ??????? ?? ?????? ????? ??????????? ??????? ???????????? ???-
???????????? ??????? ??? ???????????? ???- ????? ? ???????? ????????. ?????? ???????
???? ??????? ?????? ????? ??????????? ?????, ???????? ?????????????? ?????? ? ????, ????-
???????? ?????? ? ??????.
??? ????? ??????.
????????? ?????????
????????? ?????? ????? ?????? ?????????. ?? ?????? ??? ?????? ?????????? ??????? ????????,
??? ?????????? ????????????? ?????????, ???? ? ??????
—
?????? ????????? ????? ?????? ??? ???? ????- ????????. ???????? ???????, ?????????????? ??
??? ?????. ????????? ?????? ?????????? ??- ???. ?.16, ?????????? ?????? ?????????? 1, ? ???-
???????? ?????????? ? ????????? ???????????- ??? 0. ????? ???????, ??????? ???????? ????? 10.
???? ???????? ????????????? ????????? ?? ??- ?????? ??????, ?????????, ?????????? ??????? 3
?????????? ????????. ??????????? ?????????? ????????? 10, ?? ???? 103 ??? 1000. ??????? ??-
????? ?????? ????????? 5 ?????????, ??????? ????? ???????? 10 ?? ????????? 1000, ????????
???????????? ?????????? ???????. ??? ????????, 10 000 ?? ??? 10 ???. ???????, ????????? ??????,
??? ?????????????? ???????? ????????? ????? ??????????, ?????????? ?????? 5 ?????????.
??????????? ?? 5 ????????? ?? ?????????? ????-
????????? 10 ??? ? ???????? 5 ????????? ????? ????? ???????? ? ???????? ? ?????????? ?? ? ???-
???? ???-?? ? ????????? ?? 9,5 ?? 10,5 ???. ??? ??????????? ?????. ?? ?????????? —
?? ?? ???-
258 ??????????
????????? ?????????