  :  Arduino
 


   Arduino   .   ,        .   ,    ,   ,     .                  : , , , , ,     .





   :   Arduino



 



  , 2026



ISBN 978-5-0070-8049-1

     Ridero


   10    (  ,  ,  , )   4    (,  , ).

           , , ,     .

          .     ,       : .   .

  ,  ,              .

  :

     (16+);

      (     26      ).




 


        .         .     .        ( 10 )   ( 4 ) .


          :    ,          ,    ,      .

         .           .  ,   ,         .           ,      .

     : , , , , ,    ,      .

       Arduino.

Arduino   Wiring               .              ,   ,  C/C++, ,  ,      embedded-.

 :      , ,      :   ,     .

    ,        .          ,   ,     ,      Arduino.

    ?

     .

,     .

     .

   Wiring      C/C++.

   ,     .

 ,     .

  :

 ,   Arduino,     ,     ;

  ;

   ;

    embedded-;

 ,         ,    Arduino   AVR.



     !




1    



           ,      ,        .




1.1  


        (),      ( ).

   ,               Arduino.



          .

      .

        ,    (     7.1  ),         ,       .

    :

     ->   -> () ->   ->  .

    ->  .








 ,    ,   ,       ( ),    (      ,   ),       (  (-)   )    ( ).








            ( 4,5),   ( 9,      )  Arduino (  Arduino 5,  Arduino   ).



   :  

   Arduino



:

      .



:

      Arduino,       8.1   8.3  .

      Arduino IDE     (   8.3).

    ,           Arduino (    ).

   ,       Arduino Uno  Arduino Nano (    ,    Arduino Uno).      (          (      ).

       CH341.



:

     ,   -  ,   ,    .     ,     .

    ,     . ,     ,    ,   Arduino,    ,            (   , 213)       (    A).   (0-5)  ,   (213).

  ( /pin)  Arduino       (INPUT),              void setup  pinMode (pin, INPUT)        ,          .       (INPUT_PULLUP)     (OUTPUT),     .

 ,     ,       (INPUT),        ,        (OUTPUT),          Arduino (   ).

     Arduino,     pinMode (_,_),         Arduino,      .

 INPUT   0,      0 ,      ,    INPUT,        .

  pinMode (2,0);  pinMode (2,INPUT);      .

OUTPUT  1,   pinMode (2,1);  pinMode (2,OUTPUT);      .

,         Arduino,         : pinMode (3, OUTPUT);.

     .      ,   ,          .      ,      ,   ,    ,  ,                      ,       .

 ,     ,   digitalWrite (_, _),         ,     .

    HIGH (  ,  )   1,   LOW (  ,  )   0.



void setup () {

pinMode (3, OUTPUT);

digitalWrite (3, HIGH);

}

void loop () {

}

 Wiring (       Arduino IDE)     ,  void setup () {}  void loop () {}.

void setup () {}        ,      .     {}    ,     .  {     , }     .

     ,    void setup ().       void setup () ,      Arduino    ,       Arduino,    .     void setup   ,  , ,  .  pinMode (_, _)      void setup (),       void loop ().

 void setup ()    ,    ,       void loop (),      (   ,    ).    /    (     void loop ()  .

          , ,   digitalWrite (3, HIGH);. ,   ,              ,       void loop (),  ,            ,        ()   .

void loop ()    void setup ()  .      ,   void loop ()         , ,   , ,   ,  ,   ,           ,              ,  , ,    . ,  ,    void loop ()         ,     Arduino   .

     void setup ()  void loop ()   ,     ,         Arduino  .

     .   void loop ()  ,     ,       .

***      Arduino                      ,        1  3 .



     ,       .     ,   pinMode ()     DDR (   3.4  ),  digitalWrite ()   PORT (   3.5  ).

3  Arduino    D,    DDRD  PORTD.          (HIGH   )        .     ,   "<<"     D.  "|="    ,   .



void setup () {

DDRD |= (1 <<3);

PORTD |= (1 <<3);

}

void loop () {

}



 (1 <<3)   ,        (,  ,       D  ).

   ,        ,             .



void setup () {

pinMode (3, OUTPUT);

pinMode (4, OUTPUT);

digitalWrite (3, HIGH);

digitalWrite (4, HIGH);

}

void loop () {

}



   :



void setup () {

DDRD |= (1 <<3);

DDRD |= (1 <<4);

PORTD |= (1 <<3);

PORTD |= (1 <<4);

}

void loop () {

}



   :

      Wiring.

()     .

1.     2, 3  4  Arduino     .

2.   .    .  Arduino  .



     1.1:

1.   ;

2.    (     7.1);

3.    ;

4.  pinMode ()    ;

5.  digitalWrite ()    ;

6.  HIGH  LOW;

7.  void setup ();

8.      DDRD, PORTD (   3.4  3.5).




1.2  

   


  blink ( )  .

        Arduino (    ):    .

        ( ,    ,  ),     ( ),    .

       .

     (     Enable).

             .

      ,     Arduino IDE,  blink:

void setup () {

pinMode (13, OUTPUT);

}

void loop () {

digitalWrite (13, HIGH);

delay (300);

digitalWrite (13, LOW);

delay (300);

}

 Arduino Nano  Uno  13          L (     13        ).

      (  ):

void setup () {

pinMode (13, 1);

}

void loop () {

digitalWrite (13, 1);

delay (300);

digitalWrite (13, 0);

delay (300);

}

      ,      pinMode ()  void setup (),  digitalWrite ()  void loop ()    ,         void loop ():

void setup () {

}

void loop () {

pinMode (13, 1);

digitalWrite (13, 1);

delay (300);

digitalWrite (13, 0);

delay (300);

}

      ,   ?   ,       ,    ,  void loop ()  void setup ().     ,          ,     pinMode (13, 1);  void loop (),    ,         ,      .

   ,   ,        ( ),     :

void setup () {

pinMode (13, 1);

digitalWrite (13, 1);

delay (300);

digitalWrite (13, 0);

}

void loop () {

}

        ,  #define   Arduino   delTime   int    .

  13  Wiring  Arduino     (  LED_BUILTIN,       ,    #define     .

#define pinLed 13

int delTime = 300;

void setup () {

pinMode (pinLed, 1);

}

void loop () {

digitalWrite (pinLed, 1);

delay (delTime);

digitalWrite (pinLed, 0);

delay (delTime);

}

,     (    )    ,          .

#define pinLed 13

int delTime = 300;

char state = 0;

void setup () {

pinMode (pinLed, 1);

}

void loop () {

digitalWrite (pinLed, state);

delay (delTime);

state = 1;

digitalWrite (pinLed, state);

delay (delTime);

state = 0;

}

         (    ,   ),     char ( )   bool (   8.6),      :

#define pinLed 13

int delTime = 300;

bool state = LOW;

void setup () {

pinMode (pinLed, 1);

}

void loop () {

digitalWrite (pinLed, state);

delay (delTime);

state = HIGH;

digitalWrite (pinLed, state);

delay (delTime);

state = LOW;

}

     ,      .       ,       :

#define pinLed 13

int delTime = 300;

bool state = LOW;

void setup () {

pinMode (pinLed, 1);

}

void loop () {

digitalWrite (pinLed,!state);

delay (delTime);

}

     ,  bool    0  1,    .  0   1,  1   0.

   ,      .             (     ).

           ,         state.

  ,         digitalRead ().

      Arduino     ,   .

  Arduino  ,      digitalRead ()        .

  Arduino  ,      ,         ,    ,  ,        ( ,      ,        ,        ).

#define pinLed 13

int delTime = 300;

void setup () {

pinMode (pinLed, 1);

}

void loop () {

digitalWrite (pinLed,!digitalRead (pinLed));

delay (delTime);

}

   ,          (     )  ,  ,    ,     Arduino.

     Wiring    .

***      Arduino                      ,        1  3 .



 , Arduino IDE       Wiring,      C.     ,    Wiring                C,    ,           Arduino.

       -:

int delTime = 300;

void setup () {

DDRB |= (1 <<PB5); //  

}

void loop () {

PORTB |= (1 <<PB5); // 

delay (delTime);

PORTB &= ~ (1 <<PB5); // 

delay (delTime);

}

    ,     ,     ,       ,      digitalWrite ().

  :

int delTime = 300;

void setup () {

DDRB |= (1 <<PB5);

}

void loop () {

PORTB ^= (1 <<PB5);

/*  digitalWrite (pinLed,!digitalRead (pinLed));

 ^=     (XOR).    0,   1;   1   0.       . */

delay (delTime);

}

 ,         ,    .       :

void setup () {

DDRB |= (1 <<PB5);

}

void loop () {

PORTB ^= (1 <<PB5);

delay (300);

}

 Wiring             void setup ()  void loop (),     delay ().

  void setup ()  void loop ()    ,      Wiring         ,   .

   delay      ,          (    )    F_CPU    util/delay. h.

        :

#define F_CPU 16000000UL

#include <util/delay. h>

void setup () {

DDRB |= (1 <<PB5);

}

void loop () {

PORTB ^= (1 <<PB5);

_delay_ms (300);

}

      :

#include <util/delay. h>

void setup () {

DDRB |= (1 <<PB5);

}

void loop () {

PORTB ^= (1 <<PB5);

_delay_ms (300);

}

 F_CPU               (   Arduino IDE     ( Arduino UNO)   COM  .   Arduino UNO     16 ).

    void setup ()  void loop (),        :

#define F_CPU 16000000UL

#include <util/delay. h>

#include <avr/io. h>

int main (void) {

DDRB |= (1 <<PB5);

while (1) {

PORTB ^= (1 <<PB5);

_delay_ms (300);

}

}

        ,   (    )  .

            !

   ,   ,  ,    ,    .       ,            .

      ,            .



   :

      Wiring.

()     .

1.      (  ,      ,       ).

2.     .

3.    ,  .           Arduino.

*    ,  .          Arduino.

*    .         Arduino.



     1.2:

1.   ;

2.  delay ()    ;

3.  void loop ();

4.    ;

5.     ;

6.  digitalRead ();

7.   ;

8.     (^=)   (   3.3).




1.3       

       


    ,    ,   while () {} (   while ()   2.2.1).

while   ,   ( ,  ).     while () {}?    () (  )     (,    ).    ,     .

       while      .    ,       ,                     .

       ,     while    ,    .                   while  .  ,     }        .   ,             ,      }.  ,              .      .     .

     .   ,   Arduino       (OUTPUT).      ?

       Arduino.             .       ,       ,     ,      .       ,     .       5V Arduino,         Arduino ( 2  13 ). ,    2 ,    ,      , 5       2           .      ,        5   2 Arduino,      ,       (INPUT).

  void setup:

void setup () {

pinMode (2, INPUT); //      

pinMode (13, OUTPUT); //     

}

     ,     ,     digitalRead (pin);,   ,   ,            .        (   ),        .   ,    ,      .      .      :     ,   ,    ,    ,     . ?      .       ,         .      .     HIGH,  LOW,          bool.

(   while ()       2.2.1  ).

     (!  ):

void loop () {

bool button = digitalRead (2);

while (button == HIGH) {

digitalWrite (13, HIGH);

}

}

 ,       ,    .        ,       (   ),        :

void loop () {

bool button = digitalRead (2);

while (button == HIGH) {

digitalWrite (13, HIGH);

}

digitalWrite (13, LOW);

}

 ,        ,   ,    button  HIGH,          ,            .        ,         .

void loop () {

bool button = digitalRead (2);

while (button == HIGH) {

digitalWrite (13, HIGH);

button = digitalRead (2);

}

digitalWrite (13, LOW);

}

    ,       ,           void loop ()    :

void loop () {

bool button = digitalRead (2);

while (button == HIGH) {

digitalWrite (13, HIGH);

button = digitalRead (2);

delay (100);

}

digitalWrite (13, LOW);

}

     ,    ,   .           ,    ,     ,         .        ,   digitalRead (),      ,    HIGH.       :

void setup () {

pinMode (2, INPUT); //      

pinMode (13, OUTPUT); //     

}



void loop () {

while (digitalRead (2)) {

digitalWrite (13, HIGH);

delay (50);

}

digitalWrite (13, LOW);

}

        (2  13),     INPUT  INPUT_PULLUP.

     ,       .     ,      .            .    ,      Arduino     ( ,      ), ,     Arduino           .

     :   (       ,      ,    ,  ,    )        .

      ,       ( ),   ,    ( ).

        ,    ( )   ,     ,  .         INPUT  INPUT_PULLUP.  ,    INPUT_PULLUP  :    LOW,   HIGH.



      :



#define button 2

#define led1 13



void setup () {

pinMode (button, INPUT_PULLUP); //      

pinMode (led1, OUTPUT); //     

}

void loop () {

while (digitalRead (button) ==LOW) {

digitalWrite (led1, HIGH);

delay (50);

}

digitalWrite (led1, LOW);

}

***      Arduino                      ,        1  3 .



        Wiring,            DDR,     PORT.      PIN (   3.6  ).       :



void setup () {

DDRD &=~ (1 <<2); //     

PORTD |= (1 <<2); //    (pull-up)

DDRB |= (1 <<5); //     

}

void loop () {

while (! (PIND & (1 <<2))) {//  

PORTB |= (1 <<5); //  

delay (50);

}

PORTB &=~ (1 <<5); //  

}

     ,   PD2  2  PB5  5   .



   :

      Wiring.

()     .

1.      ,      .

2.      .

3.         .

4.       .

5.      .         ,         ,         .

6.      .        .         .          .



     1.3:

1.   ;

2.  while () (   2.2.1);

3.     digitalRead ();

4.   (==, HIGH, LOW);

5.  INPUT_PULLUP;

6.      .




1.4      

    


      ,     .

     Arduino    digitalWrite     ,  .                 .

,        ,        .             (     -   -  (),         ).      5 ,   1 ,  2 , 3 , 4       5        .     ,       .

        ,    ,     Arduino.

 Arduino      ,       .      (- ),          ,      (  ,       ).        (~).  Arduino Nano  Arduino UNO    (3, 5, 6, 9, 10, 11),   .     ,     (       (   ,  ),      (  , )),  ,    .

      Wiring   analogWrite (pin, state);

 pin    Arduino, state     0  255.  0      (    digitalWrite,  ),  255    (    digitalWrite,    ).

        .

void setup () {

pinMode (3, OUTPUT);

}

void loop () {

analogWrite (3,0);

delay (100);

analogWrite (3,50);

delay (100);

analogWrite (3,100);

delay (100);

analogWrite (3,150);

delay (100);

analogWrite (3,200);

delay (100);

analogWrite (3,255);

delay (100);

}

 ,       50,  1,            !

       analogWrite  delay.          for (     2.2.3).

void setup () {

pinMode (3, OUTPUT);

}

void loop () {

for (int i=0; i <=255; i = i+1) {

analogWrite (3,i);

delay (10);

}

}

        1.

        ,    255  0   .

for (int i=255; i> = 0; i = i-1) {

analogWrite (3,i);

delay (10);

}

              .  ,           ,    ,   delay.   :

void setup () {

pinMode (3, OUTPUT);

}

void loop () {

for (int i=0; i <=255; i = i+1) {

analogWrite (3,i);

delay (10);

}

delay (100);

for (int i=255; i> = 0; i = i-1) {

analogWrite (3,i);

delay (10);

}

delay (100);

}



***      Arduino                      ,        1  3 .

     Wiring    (   3.7  ).



void setup () {

DDRD |= (1 <<3); //  3   Arduino .

TCCR2A=0b00100011; //   3  Arduino

TCCR2B=0b00000011; //    3  Arduino  976 

}

void loop () {

for (int i=0; i <=255; i=i+1) {

OCR2B=i; //    3  Arduino

delay (10);

}

for (int i=255; i> = 0; i = i-1) {

OCR2B=i; //    3  Arduino

delay (10);

}

delay (100);

}

   :



      Wiring.

()     .

1.       ,  .    ,      .     ,    .      .

2.  .     ,    ,      ,    .     .

3.  .     ,    ,      ,    .    ,   Arduino   .



     1.4:

1. - ;

2.  analogWrite ();

3.  for (   2.2.3);

4.       (   3.7).




1.5      

 


 ,      .

      ,      ( 0  9)   .

       .

     ,      .

            .

     ,        .

    .








    . ,    2, B  3, C  4, D  5, E  6, F  7, G  8, dp  1.

 dp          .

    1?          (dp).   0  1    .     A,   2,      Arduino 2.   (3)   3   .       Arduino.        , , ,         Arduino.

,      ,     .

0: A (2),B (3),C (4),D (5),E (6),F (7).

1: B (3), C (4).

2: A (2), B (3), G (8), E (6), D (5).

3: A (2), B (3), G (8), C (4), D (5).

4: F (7), G (8), B (3), C (4).

5: A (2), F (7), G (8), C (4), D (5).

6: A (2), F (7), G (8), C (4), D (5), E (6).

7: A (2), B (3), C (4).

8: A (2), B (3), C (4), D (5), E (6), F (7), G (8).

9: A (2), B (3), C (4), D (5), F (7), G (8).

    ,    ,  ,    digitalWrite  delay ( !).



void loop () {

//0

digitalWrite (2,1);

digitalWrite (3,1);

digitalWrite (4,1);

digitalWrite (5,1);

digitalWrite (6,1);

digitalWrite (7,1);

delay (50);

//1

digitalWrite (3,1);

digitalWrite (4,1);

delay (50);

//2

digitalWrite (2,1);

digitalWrite (3,1);

digitalWrite (5,1);

digitalWrite (6,1);

digitalWrite (8,1);

delay (50);

//3

digitalWrite (2,1);

digitalWrite (3,1);

digitalWrite (4,1);

digitalWrite (5,1);

digitalWrite (8,1);

delay (50);

//4

digitalWrite (3,1);

digitalWrite (4,1);

digitalWrite (7,1);

digitalWrite (8,1);

delay (50);

//5

digitalWrite (2,1);

digitalWrite (4,1);

digitalWrite (5,1);

digitalWrite (7,1);

digitalWrite (8,1);

delay (50);

//6

digitalWrite (2,1);

digitalWrite (4,1);

digitalWrite (5,1);

digitalWrite (6,1);

digitalWrite (7,1);

digitalWrite (8,1);

delay (50);

//7

digitalWrite (2,1);

digitalWrite (3,1);

digitalWrite (4,1);

delay (50);

//8

digitalWrite (2,1);

digitalWrite (3,1);

digitalWrite (4,1);

digitalWrite (5,1);

digitalWrite (6,1);

digitalWrite (7,1);

digitalWrite (8,1);

delay (50);

//9

digitalWrite (2,1);

digitalWrite (3,1);

digitalWrite (4,1);

digitalWrite (5,1);

digitalWrite (7,1);

digitalWrite (8,1);

delay (50);

}

         , ,      0,    ,   0  .   1       0,       0.

      delay        :

digitalWrite (2,0);

digitalWrite (3,0);

digitalWrite (4,0);

digitalWrite (5,0);

digitalWrite (6,0);

digitalWrite (7,0);

digitalWrite (8,0);

    ,  .       ,   , , ,     0  9,    (  void loop   ).

  ,     ,    ,      ,       .

    :

void loop () {

//0

digitalWrite (2,1);

digitalWrite (3,1);

digitalWrite (4,1);

digitalWrite (5,1);

digitalWrite (6,1);

digitalWrite (7,1);

digitalWrite (8,0);

delay (50);

//1

digitalWrite (2,0);

digitalWrite (3,1);

digitalWrite (4,1);

digitalWrite (5,0);

digitalWrite (6,0);

digitalWrite (7,0);

digitalWrite (8,0);

delay (50);

//2

digitalWrite (2,1);

digitalWrite (3,1);

digitalWrite (4,0);

digitalWrite (5,1);

digitalWrite (6,1);

digitalWrite (7,0);

digitalWrite (8,1);

delay (50);

//3

digitalWrite (2,1);

digitalWrite (3,1);

digitalWrite (4,1);

digitalWrite (5,1);

digitalWrite (6,0);

digitalWrite (7,0);

digitalWrite (8,1);

delay (50);

//4

digitalWrite (2,0);

digitalWrite (3,1);

digitalWrite (4,1);

digitalWrite (5,0);

digitalWrite (6,0);

digitalWrite (7,1);

digitalWrite (8,1);

delay (50);

//5

digitalWrite (2,1);

digitalWrite (3,0);

digitalWrite (4,1);

digitalWrite (5,1);

digitalWrite (6,0);

digitalWrite (7,1);

digitalWrite (8,1);

delay (50);

//6

digitalWrite (2,1);

digitalWrite (3,0);

digitalWrite (4,1);

digitalWrite (5,1);

digitalWrite (6,1);

digitalWrite (7,1);

digitalWrite (8,1);

delay (50);

//7

digitalWrite (2,1);

digitalWrite (3,1);

digitalWrite (4,1);

digitalWrite (5,0);

digitalWrite (6,0);

digitalWrite (7,0);

digitalWrite (8,0);

delay (50);

//8

digitalWrite (2,1);

digitalWrite (3,1);

digitalWrite (4,1);

digitalWrite (5,1);

digitalWrite (6,1);

digitalWrite (7,1);

digitalWrite (8,1);

delay (50);

//9

digitalWrite (2,1);

digitalWrite (3,1);

digitalWrite (4,1);

digitalWrite (5,1);

digitalWrite (6,0);

digitalWrite (7,1);

digitalWrite (8,1);

delay (50);

}

   - ,     ,      ,        .   .

      ,      .         . , ,      5,      5.

       (  0  9)    (              ).

        if.

   0,      

   1,      

     :

   0,      :

    1,      :

   ,     (   0  9)   ,     ,    switch (     2.1.2).

Switch   ,  ,              .

  ,     ,      switch   :

switch (a)

  switch      :

switch (a) {

}

    switch   ,    a     ,      ( !):

switch (a) {

case 0 :

case 1:

case 2:

}

case      ,          .

      :

      :     0,       1,  

    case ,      ,    case ,     break;        ,           switch.

    :

switch (a) {

case 0 :

//  ,  ==0

break;

case 1:

//  ,  ==1

break;

case 2:

//  ,  ==2

break;



}

    ,                 .

       0,1,2    :

switch (a) {

case 0 :

digitalWrite (2,1);

digitalWrite (3,1);

digitalWrite (4,1);

digitalWrite (5,1);

digitalWrite (6,1);

digitalWrite (7,1);

digitalWrite (8,0);

delay (50);

break;

case 1:

digitalWrite (2,0);

digitalWrite (3,1);

digitalWrite (4,1);

digitalWrite (5,0);

digitalWrite (6,0);

digitalWrite (7,0);

digitalWrite (8,0);

delay (50);

break;

case 2:

digitalWrite (2,1);

digitalWrite (3,1);

digitalWrite (4,0);

digitalWrite (5,1);

digitalWrite (6,1);

digitalWrite (7,0);

digitalWrite (8,1);

delay (50);

break;

}



 ,  ,      ,          ,    ,      ,   default:,    else.

       .

switch (a) {

case 0 :

//  ,  ==0

break;

case 1:

//  ,  ==1

break;

case 2:

//  ,  ==2

break;



default:

break;

}

,   default:     ,     default ,       case.

 ,    - ,      case,      default:  break;

    default           .

    :

switch (a) {

case 0 :

//  ,  ==0

break;

case 1:

//  ,  ==1

break;

case 2:

//  ,  ==2




  .


   .

   ,     (https://www.litres.ru/pages/biblio_book/?art=74291443)  .

      Visa, MasterCard, Maestro,    ,   ,     ,  PayPal, WebMoney, ., QIWI ,       .


